Skip to content

Flutter Setup

TL;DR / when to use this: Flutter is my mobile stack for the Wildium apps. This is the evergreen setup reference — project creation, Android build config, and the widget/state model that the blog posts accumulated into.

Creating a project

flutter create --org com.wildetechsolutions myapp

Check build-mode compatibility across platforms:

flutter doctor --verbose

Widgets can be prototyped in the browser at dartpad.dev.

Android build config

The versions that work together (from my android/build.gradle):

ext.kotlin_version = '1.8.10'
classpath 'com.android.tools.build:gradle:8.1.0'
  • gradle-wrapper.properties → gradle 8.1
  • Pin the JDK in gradle.properties (Flutter defaulted to 21; I set 17):
org.gradle.java.home=/Library/Java/JavaVirtualMachines/amazon-corretto-17.jdk/Contents/Home

Widget model worth remembering

  • Container is the most basic element (like an HTML div); right-click any widget to refactor to another type.
  • Row/Column for layout, Stack like a StackPane, Hero animates between pages.
  • Future = one-time async value (single read); Stream = multiple async values (real-time updates).
  • Stateful widgets get messy when they share data with children or mix logic with UI — use the provider package to separate business logic from widgets and feed stateless widgets through the widget tree.

See also