flutter-developer

flutter-developer is a skill for Claude Code, Codex from m3taz-ahmed/ai-globals. It costs 48 tokens per session (2,893 once invoked), scanned A, original, MIT.

A guide for building the behind-the-scenes parts of Flutter mobile apps with Dart, such as app structure, data handling, testing, and connections to phone features.

In plain words
What is it for?
Use it when building or reviewing Flutter app architecture, state handling, APIs, local storage, tests, release automation, performance, security, or native platform integrations.
Why use it?
It helps organize complex app code and handle common production needs such as saved data, network access, security, offline use, and performance checks.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it when building or reviewing Flutter app architecture, state handling, APIs, local storage, tests, release automation, performance, security, or native platform integrations.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/m3taz-ahmed/ai-globals/flutter-developer
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add m3taz-ahmed/ai-globals --skill flutter-developer
Clone the repo
git clone --depth 1 https://github.com/m3taz-ahmed/ai-globals

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for flutter-developer

README.md
[![agentmods](https://agentmods.dev/badge/skills/m3taz-ahmed/ai-globals/flutter-developer.svg)](https://agentmods.dev/skills/m3taz-ahmed/ai-globals/flutter-developer)
Your own site
<a href="https://agentmods.dev/skills/m3taz-ahmed/ai-globals/flutter-developer"><img src="https://agentmods.dev/badge/skills/m3taz-ahmed/ai-globals/flutter-developer.svg" alt="Measured on agentmods" height="20"></a>
Per session 48 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,893 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00048 $0.02893
Opus 5 $0.00024 $0.01447
Sonnet 5 $0.00010 $0.00579
Haiku 4.5 $0.00005 $0.00289

Measured 8d ago against content hash 1a6e2d61c091, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-07, from the pricing page.

Security

Grade A, and why

flutter-developer scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/flutter-developer/SKILL.md · 93 lines

How it starts

The opening of the file, as written. The whole thing — 93 lines — stays where its author put it; the contents beside it link to each section on GitHub.

[SKILL] flutter-developer [OBJ] Engineer the non-visual layer of production Flutter apps — architecture, state management, networking, persistence, testing, CI/CD, performance profiling, security, and native platform integration. [PERSONA] MOBILE (primary), DEV (secondary), ARCH (secondary), QA (secondary). [PARENT] flutter-architect (visual layer -> flutter-design).

[RULES]

  1. [CMD] Context7 IDs: Dart /dart-lang/site-www; Riverpod /riverpod/riverpod; BLoC /felangel/bloc; Freezed /rrousselGit/freezed; Drift /simolus3/drift; Dio /cfug/dio; go_router /flutter/packages; flutter_dotenv /jonataslaw/dotenv; flutter_secure_storage /mogol/flutter_secure_storage; mocktail /mocktail/mocktail; Fastlane /fastlane/docs.
  2. [REQ] [VER-01] Pin to pubspec.lock exact versions. Reference baseline: Flutter 3.47 / Dart 3.13 (Aug 2026). Use Dart 3 features: records, patterns, sealed classes, exhaustive switch; Dart 3.13 primary constructors (lang version >= 3.1) for concise data classes. Enable language: 3.13 in pubspec.yaml environment: sdk:.
  3. [REQ] Architecture (feature-first + clean layers):
    • lib/features/<feature>/{data,domain,presentation}/ + lib/core/ (shared: error, network, theme, constants, utils) + lib/config/ (env, router, di) + lib/main.dart (< 30 lines, entry only).
    • Domain: entities (freezed), repository interfaces (abstract), usecases (callable classes). No Flutter imports. No BuildContext.
    • Data: models (freezed + json_serializable), datasources (remote dio / local drift), repository impls. Maps DTO <-> entity.
    • Presentation: widgets/pages (dumb) + controllers/notifiers (smart, Riverpod Notifier/AsyncNotifier or BLoC). Controllers hold state + call usecases; widgets ref.watch/BlocBuilder.
    • Dependency rule: presentation -> domain <- data. Domain depends on nothing app-internal.
  4. [REQ] Dependency injection: Riverpod providers (@riverpod code-gen via riverpod_generator preferred) OR get_it + injectable for non-Riverpod. Never Provider.of deep chains; never service-locator in widgets (inject via constructor / ref).
  5. [REQ] State management (decision tree):
    • Widget-local ephemeral -> setState / ValueNotifier.
    • Scoped shared, reactive -> Riverpod: Notifier/AsyncNotifier + ref.watch (rebuild) / ref.read (one-shot) / ref.listen (side-effects). Use AsyncValue for async state (loading/data/error). Prefer code-gen @riverpod for type-safety + auto-dispose. Avoid StateProvider/ChangeNotifierProvider for complex state.
    • Event-driven, strict separation, large teams -> BLoC: Bloc/Cubit + events/states (freezed). Cubit for simple, Bloc for complex event-driven.
    • NEVER setState for app-wide state. NEVER InheritedWidget manual. NEVER mix stores. Keep state close to where it's used; hoist only when shared.
  6. [REQ] Immutability & models: freezed for all domain/data models + union/sealed states; @freezed + @JsonSerializable + fromJson; copyWith for updates; const constructors; @immutable. Use Dart 3 sealed + pattern matching for exhaustive state handling (switch (state) { case Loading(): ... case Data(:final data): ... }).
  7. [REQ] Networking:
    • dio for non-trivial (interceptors: auth-token attach, logging, retry, error-mapping); http for trivial only.
    • Deserialize via freezed + json_serializable; never hand-parse Map<String,dynamic> in widgets.
    • Repository pattern: abstract class XRepo (domain) + XRepoImpl (data) wrapping XRemoteDatasource + XLocalDatasource.
    • Error handling: typed Result<T> / Either<Failure, T> (fpdart or custom sealed) OR Riverpod AsyncValue.guard; never swallow exceptions; map HTTP errors to domain Failure enum/sealed.
    • Cancel in-flight on dispose (CancelToken); debounce search.
  8. [REQ] Persistence:
    • Relational -> drift (typed SQLite, migrations, streaming queries via Stream<List<T>>).
    • KV / object -> hive (binary) or isar (query-able, fast).
    • Primitives -> shared_preferences ONLY.
    • Sensitive -> flutter_secure_storage (Keychain/Keystore).
    • Offline-first: local DB as source of truth; sync queue + conflict resolution (last-write-wins / server-wins / CRDT) on reconnect; connectivity_plus for network events; workmanager for background sync.
  9. [REQ] Routing: go_router (declarative). GoRoute + ShellRoute (nested nav bars); typed extra args (define arg classes); redirect for auth/feature-flags; StatefulShellRoute.indexedStack for bottom-nav with state preservation; PopScope for predictive back (Android 14+). Never Navigator.push for complex apps; never raw Map route args.
  10. [REQ] Error handling architecture: global runZonedGuarded + FlutterError.onError -> report to Sentry/Crashlytics; per-feature Failure sealed types; presentation maps Failure -> user message + retry CTA. Never expose stack traces / internal codes to users [SEC-04].
  11. [REQ] Testing two-tier [TEST-07]:
  • FAST: flutter test test/path/touched_test.dart (~5s). Mark slow (integration, golden, platform-channel) with @Tags(['slow']) + --exclude-tags=slow.
  • FULL (before done): flutter test --coverage (>= 80% logic, >= 70% total) + flutter test integration_test/ on device/emulator.
  • Unit: test() for usecases/repos/services; mock deps with mocktail (no annotation boilerplate, Dart-friendly) — when(() => mock.x()).thenReturn(...); registerFallbackValue for non-nullable args.
  • Widget: testWidgets() + WidgetTester; pumpWidget + pump + pumpAndSettle; assert with find.byType/find.text/find.byKey; wrap in MaterialApp + ProviderScope/BlocProvider. Test behavior, not implementation.
  • Integration: integration_test/ package on real device/emulator; IntegrationTestWidgetsFlutterBinding.
  • Golden tests: matchesGoldenFile for pixel-regression (regenerate with --update-goldens).
  • AAA pattern; one behavior per test; factories not hardcoded IDs/dates [TEST-03].
  1. [REQ] CI/CD:
  • GitHub Actions / Codemagic / Fastlane. Pin action SHAs [GIT-05].
  • Pipeline: dart format --set-exit-if-changed lib/ test/ -> flutter analyze --fatal-infos -> flutter test -> flutter build (per platform) -> sign -> deploy.
  • Android: AAB (flutter build appbundle), Play App Signing, fastlane supply for upload; target latest Play API level.
  • iOS: flutter build ipa / xcarchive, App Store Connect API key, fastlane pilot for TestFlight, deliver for App Store.
  • Obfuscate release: flutter build appbundle --obfuscate --split-debug-info=build/symbols (keep symbols for symbolication; upload to Sentry/Crashlytics).
  • OIDC keyless auth where supported; SBOM + Cosign [GIT-05].
  1. [REQ] Performance engineering:
  • Budget: 60 FPS / 16.6 ms frame. Profile with Flutter DevTools (Performance tab: timeline, jank, shader compile jank; CPU profiler; Memory tab).
  • Reduce rebuilds: const widgets; scope Consumer/BlocBuilder to smallest subtree; Selector/ref.watch of granular providers; ProviderScope/BlocSelector.
  • Lists: ListView.builder/SliverList.builder + itemExtent/prototypeItem; AutomaticKeepAliveClientMixin only when needed.
  • Repaint: RepaintBoundary around animations / heavy static subtrees.
  • Shaders: pre-warm shader compile jank with SkSL warmup (legacy) or rely on Impeller (default on iOS since 3.10, Android since 3.16 — verify in pubspec/platform).
  • Images: cached_network_image + cacheWidth/cacheHeight to downscale decode; precacheImage for critical.
  • Avoid Opacity widget (use FadeTransition/AnimatedOpacity); avoid heavy work in build().
  1. [REQ] Platform channels & native:
  • Method channels for sync native calls; Event channels for streams; FFI (dart:ffi) for perf-critical; Pigeon for type-safe channel codegen (preferred over hand-written).
  • Plugins: prefer first-party (flutter/packages) + federated platform implementations; check pub points >= 80 + popularity + last-updated before adding [VER-01].
  • Permissions: permission_handler + declare in Info.plist / AndroidManifest.xml with usage strings (App Store / Play review requirements).
  1. [REQ] Security [SEC-01..10]:
  • Input validation: Form + validators; DTOs for API payloads; never trust client.
  • Secrets: .env + flutter_dotenv / --dart-define-from-file; NEVER commit secrets [SEC-04].
  • Transport: HTTPS only; certificate pinning (dio_certificate_pinning) for sensitive.
  • Storage: flutter_secure_storage for tokens; encrypt local DB (drift with SQLCipher / isar encryption).
  • Release: --obfuscate --split-debug-info; root/jailbreak detection (flutter_jailbreak_detection); Play Integrity (Android) / DeviceCheck (iOS) for anti-tamper.
  • No PII in logs/analytics [SEC-04].
  1. [REQ] Observability: package:sentry_flutter or firebase_crashlytics for crashes; package:analytics / Firebase Analytics for product events; OpenTelemetry (opentelemetry pub) for distributed tracing; structured logs (never print() in release — use logging package with levels).
  2. [REQ] Background work: workmanager (Android WorkManager / iOS BGTaskScheduler) for periodic sync; flutter_background_service for long-running; declare background modes in manifests; request battery-optimization exemptions only when justified.
  3. [REQ] Code quality [CODE-01..05]: files < 300 lines, methods < 30; strict typing (no dynamic in public APIs — use Object? + pattern match or sealed); enums/constants over magic strings; SOLID + DRY; no inline await import() (not applicable in Dart but no dynamic imports); no TODO/FIXME without ticket tag.
  4. [REQ] Concurrency: Future/async-await for IO; Isolate.run / compute() for CPU-heavy (parse, crypto, image) to avoid jank; Stream for reactive sequences; never block the UI isolate with heavy sync work.
  5. [REQ] Query Context7 for ANY Dart/Flutter/package API before implementation. Run flutter analyze + dart format + targeted tests during iteration; FULL suite + coverage before done. Test on physical devices (iOS + Android) before release.

Read the full file on GitHub · 93 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 8d ago First seen · 93 lines · 48 tokens per session scan A 1a6e2d61c091

Subscribe to this mod's changes

flutter-developer is a skill published in the GitHub repository m3taz-ahmed/ai-globals (5 stars, last pushed yesterday), licensed MIT. It adds 48 tokens to every session and 2,893 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

orca-emulator-android

Android device and emulator control from inside Orca over adb, with the live device view in Orca's emulator pane. Use when driving an adb-connected emulator or phone on Windows, Linux, or macOS: booting AVDs, taps, swipes, typing, hardware buttons, rotation, app install and launch, runtime permissions, the…

stablyai/orca · 102 tokens

android-tombstone-symbolication

Symbolicate the .NET runtime frames in an Android tombstone file. Extracts BuildIds and PC offsets from the native backtrace, downloads debug symbols from the Microsoft symbol server, and runs llvm-symbolizer to produce function names with source file and line numbers. USE FOR triaging a .NET MAUI or Mono Android app…

dotnet/skills · 176 tokens

dogfood

Systematically explore and test a mobile app on iOS/Android with agent-device to find bugs, UX issues, and other problems. Use when asked to dogfood, QA, exploratory test, find issues, bug hunt, or test this app on mobile.

callstack/agent-device · 55 tokens

winapp-maui

Package and sign .NET MAUI Windows apps with winapp, resolving the resizetizer manifest dependency. Use when packaging or signing a .NET MAUI Windows app, building a MAUI MSIX or signed unpackaged build in CI, or fixing 'manifest contains unresolved placeholders ($placeholder$)' errors from winapp package.

microsoft/winappCli · 71 tokens

apple-search-ads

When the user wants to set up, optimize, or scale Apple Search Ads (ASA) campaigns — including keyword bidding, match types, campaign structure, Creative Product Sets, CPP routing, and ROAS optimization. Use when the user mentions "Apple Search Ads", "ASA", "Search Ads", "Search tab ads", "Today tab ads", "CPT"…

Eronred/aso-skills · 127 tokens

android-pentest

A guide for authorized security testing of Android apps, covering APK inspection, runtime testing, traffic capture, code review, and function hooking. An APK is the installable package used by an Android app.

Netw0rkNoob/VulnClaw · 32 tokens