Sample Flutter projects covering typical combinations of platform targets, project types, and Flutter version management setups used in real-world CI/CD pipelines.
| Directory | Project type | Package Manager | Testing | Version Management |
|---|---|---|---|---|
| flutter-ios-android | App · iOS + Android | pub | flutter_test (widget) | none |
| flutter-package | Dart package | pub | flutter_test (unit) | none |
| flutter-plugin | Plugin · Android + iOS · with example app | pub | flutter_test (unit, in root + example) | none |
| flutter-web | App · Web (canvaskit) | pub | flutter_test (unit + widget) | .fvmrc (fvm) |
| flutter-ios-android-web | App · iOS + Android + Web | pub | flutter_test (widget) | .tool-versions (asdf/mise) |
Stack: Flutter · Dart · iOS · Android · flutter_test · pub
What it demonstrates:
- Flutter app targeting both iOS and Android platforms
- Widget test with flutter_test
- Scanner detects:
ios/Runner.xcworkspace+android/build.gradle.kts+test/*_test.dart
How to run:
cd flutter-ios-android
flutter pub get
flutter testStack: Flutter · Dart package · flutter_test · pub
What it demonstrates:
- Dart/Flutter package (no native platform code)
- Unit test with flutter_test
- Scanner detects:
test/*_test.dart, no iOS/Android dirs → primary-only workflow
How to run:
cd flutter-package
flutter pub get
flutter testStack: Flutter · plugin (Android + iOS) · example app · flutter_test · pub
What it demonstrates:
- Flutter plugin with a separate
example/app (twopubspec.yamlfiles → two projects detected) - Root plugin:
android/build.gradle.ktspresent, noios/Runner.xcworkspace, hastest/*_test.dart→test+androidconfig - Example sub-project:
ios/Runner.xcworkspace+android/build.gradle.kts+test/*_test.dart→test+bothconfig - Scanner detects two
pubspec.yamlfiles → two separate configs generated
How to run:
# Root plugin tests
cd flutter-plugin
flutter pub get
flutter test
# Example app tests
cd flutter-plugin/example
flutter pub get
flutter testStack: Flutter Web · Dart · canvaskit renderer · flutter_test · pub
What it demonstrates:
- Flutter web application (web target only, no iOS/Android)
- Unit tests for a
Counterclass with flutter_test - Widget test for the counter UI
- Flutter version pinned via
.fvmrc(used by fvm)
How to run:
# Install fvm (one-time setup)
dart pub global activate fvm
export PATH="$PATH":"$HOME/.pub-cache/bin"
cd flutter-web
fvm install # installs the Flutter version declared in .fvmrc
fvm flutter pub get
fvm flutter testStack: Flutter · Dart · iOS · Android · Web · flutter_test · pub
What it demonstrates:
- Flutter app targeting iOS, Android, and Web simultaneously
ios/,android/, andweb/directories all present- Flutter version pinned via
.tool-versions(used by asdf and mise) - Scanner detects:
ios/Runner.xcworkspace+android/build.gradle.kts+web/index.html+test/*_test.dart
How to run:
# Optional: install asdf or mise and run `asdf install` / `mise install`
# to get the exact Flutter version declared in .tool-versions
cd flutter-ios-android-web
flutter pub get
flutter test