mobile-flutter.md 4.8 KB


name: mobile-flutter category: mobile public: true database: optional hosting_hints:

  • app-store
  • play-store
  • huawei-appgallery
  • web-hosting
  • desktop-distribution audit_stack:
  • analyze
  • code-clean
  • design-review
  • perf
  • cso
  • a11y
  • doc plugins: context7: optional ui-ux-pro-max: yes gstack: no ---

Mobile Flutter

Application Flutter (Dart) cible iOS + Android + Web + Desktop. Widgets tree, state management variable (Provider / Riverpod / Bloc / GetX).

Detection signals

Strong signals (×3)

  • FILE: pubspec.yaml
  • FILE: pubspec.lock
  • DIR: lib/ AVEC fichiers .dart
  • FILE: lib/main.dart

Medium signals (×2)

  • DIR: android/
  • DIR: ios/
  • FILE: analysis_options.yaml
  • DIR: test/ AVEC .dart
  • DEP dans pubspec.yaml: "flutter_bloc", "provider", "riverpod", "get"

Weak signals (×1)

  • DIR: web/, macos/, linux/, windows/ (multi-plateforme)
  • FILE: l10n.yaml (i18n)
  • DIR: assets/images/, assets/fonts/
  • FILE: .flutter-plugins, .flutter-plugins-dependencies

Counter-signals (exclusion)

  • DEP pubspec contient "dart_sdk" uniquement sans "flutter" → projet Dart pur (CLI / server), pas Flutter

Implications

  • Distribution : App Store / Play Store / AppGallery (Huawei) / Web (Flutter Web) / Desktop (macOS/Win/Linux via Flutter desktop)
  • Base de données : locale (sqflite / Hive / Isar / Drift) + backend (Firebase / Supabase / API custom)
  • SEO/GEO : PARTIEL si Flutter Web — Flutter Web rend en canvas/HTML, SEO limité même en HTML renderer
  • Surface sécurité : GRANDE — shared_preferences non chiffré, secrets dans bundle, deep links
  • UI/UX : CRITIQUE — design system Material/Cupertino + custom

Typical pain points

  • Secrets / API keys dans pubspec.yaml ou lib/config.dart committés
  • shared_preferences pour tokens → pas chiffré (doit être flutter_secure_storage)
  • State management non cohérent (mélange setState + Provider + Bloc dans même app)
  • Rebuild excessif (pas de const widgets, pas de Selector, pas de keys)
  • Performances listes : pas de ListView.builder (rend tout d'un coup)
  • Images non optimisées (pas de cached_network_image, pas de compression)
  • Pas de splash screen natif (flash blanc au démarrage)
  • Permissions iOS/Android demandées sans justification → reject App Store
  • Pas de crash reporting (Sentry / Firebase Crashlytics absents)
  • Deep links non configurés / uni_links / go_router mal configurés
  • Pas de tests unitaires / widget tests
  • Pas de tests E2E (integration_test / Patrol / Maestro)
  • Flutter SDK obsolète (cycle release rapide)
  • flutter pub outdated ignoré → deps avec failles
  • Accessibilité : Semantics widget pas utilisé, focus order incorrect
  • Dark mode : ThemeMode.system pas supporté ou mal
  • i18n : strings hardcodées au lieu de .arb files
  • Platform channels pas testés (plugins natifs)
  • Code generation (build_runner) pas dans CI → fichiers générés commités
  • App bundle size énorme (pas de --split-per-abi Android, pas de tree shaking)

Interview questions (adaptive)

En plus du set minimum business :

  • State management : Provider / Riverpod / Bloc / GetX / Cubit / vanilla ?
  • Flutter SDK / Dart version ?
  • Targets : iOS / Android / Web / macOS / Windows / Linux ?
  • Navigation : Navigator 1.0 / go_router / auto_route / beamer ?
  • Backend : Firebase / Supabase / API custom / GraphQL ?
  • Auth : provider + storage (flutter_secure_storage obligatoire pour tokens) ?
  • Database locale : sqflite / Hive / Isar / Drift / SharedPreferences ?
  • Push notifications : FCM / OneSignal / Notifee / aucun ?
  • Crash reporting : Firebase Crashlytics / Sentry / aucun ?
  • Analytics : Firebase / Amplitude / PostHog / aucun ?
  • Tests : unit / widget / integration / Patrol ?
  • CI/CD : Codemagic / Bitrise / GitHub Actions / Fastlane / aucun ?
  • Code generation : build_runner / freezed / json_serializable / riverpod_generator ?
  • i18n : flutter_localizations + .arb ?
  • Design system : Material 3 / Cupertino / custom tokens ?
  • Dark mode supporté ?
  • Accessibilité : Semantics widgets + testé VoiceOver / TalkBack ?
  • App bundle size cible ?
  • App Store Review : première soumission / rejet déjà eu / actif ?

Plugin recommendations

  • context7 : OPTIONAL — ON pour Flutter 3.x récent (Impeller, Material 3, Riverpod 2+)
  • ui-ux-pro-max : ON
  • gstack : OFF

Example project layout

pubspec.yaml
pubspec.lock
analysis_options.yaml
lib/
  main.dart
  app.dart
  core/
    theme.dart
    constants.dart
  features/
    auth/
      data/
      domain/
      presentation/
    home/
      data/
      domain/
      presentation/
  shared/
    widgets/
    services/
test/
  widget_test.dart
  features/
    auth_test.dart
integration_test/
  app_test.dart
assets/
  images/
  fonts/
android/
ios/
web/
l10n.yaml