README.md

September 30, 2023 ยท View on GitHub

This repo aims at training yourself and others by practicing/reading Flutter the ClojureDart way. You will find listed below in the Sample section all of the current samples, and what do they cover.

Run a sample

clj -M:cljd init
clj -M:cljd flutter

A native application will be created. If you want to test it on mobile, please follow those instructions.

Samples

Animated container

  • state with :state

  • Particular widgets

    • AnimatedContainer
    • BoxDecoration
    • FloatingActionButton

Counter

  • state with :state

  • Widget.of(context) with :inherit

  • nested widgets

  • Particular widgets

    • Column
    • FloatingActionButton
    • Theme / ThemeData

DataTable

  • stateless

  • Particular widgets

    • SingleChildScrollView
    • DataTable

Drawer

  • stateless

  • Navigator in Scaffold widget with :inherit

  • Particular widgets

    • Navigator
    • ListView
    • ListTile

Fab

  • BuildContext with :context

  • key with :key

  • state with :state

  • Theme.of(context) with :inherit

  • :ticker

  • dispose/init ressources with :with

  • Particular widgets

    • Theme / ThemeData
    • InkWell
    • AnimatedContainer
    • AnimatedOpacity
    • SizedBox
    • Icon
    • Stack
    • AnimatedBuilder
    • FadeTransition
    • BoxDecoration
    • Container
    • FloatingActionButton

Fade Widget

  • state with :state

  • Particular widgets

    • AnimatedOpacity
    • FloatingActionButton

Form - handle change TextField

  • state with :state

  • :controller

  • dispose/init ressources with :with

  • Particular widgets

    • TextField

Form - Retrieve Input

  • :controller

  • dispose/init ressources with :with

  • Particular widgets

    • AlertDialog
    • FloatingActionButton

Form - with validation

  • ScaffoldMessenger.of(context) with :get

  • cljd.string/blank?

  • GlobalKey<FormState> with #/(m/GlobalKey m/FormState)

  • Particular widgets

    • TextFormField
    • ScaffoldMessenger
    • SnackBar

Gesture Detector

  • state with :state

  • anonymous class extention with reify :extends

  • Particular widgets

    • CustomPaint
    • CustomPainter
    • Canvas
    • GestureDetector
    • Offset
    • Paint

GridList

  • stateless
  • Particular widgets
    • GridView

Hero animations

  • Navigator in Scaffold widgets with :inherit

  • Particular widgets

    • Navigator
    • GestureDetector
    • Hero
  • Navigator in Scaffold widgets with :inherit

  • Particular widgets

    • Navigator
    • ElevatedButton

Physics simulation

  • BuildContext with :context

  • key with :key

  • state with :state

  • MediaQuery.of(context) with :inherit

  • :ticker

  • dispose/init ressources with :with

  • Particular widgets

    • GestureDetector
    • SpringDetection
    • SpringSimulation
    • Align
    • Card

Snackbar

  • ScaffoldMessenger.of(context) with :inherit

  • Particular widgets

    • ElevatedButton
    • SnackBar
    • SnackBarAction

Tabs

  • stateless

  • Particular widgets

    • DefaultTabController
    • TabBar
    • TabBarView

Two counters

  • closure with :bind

  • Theme.of(context) with :inherit

  • Particular widgets

    • Center
    • Row
    • ElevatedButton