> For the complete documentation index, see [llms.txt](https://wong-coupon.gitbook.io/flutter/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wong-coupon.gitbook.io/flutter/my-flutter.md).

# My Flutter

- [My Flutter](https://wong-coupon.gitbook.io/flutter/my-flutter/flutter.md): Practical Flutter lessons on architecture, realtime systems, security, quality, and production operations.
- [Foundations & Clean Code](https://wong-coupon.gitbook.io/flutter/my-flutter/foundations.md): Tools, habits, and Dart foundations for writing Flutter code quickly without sacrificing maintainability.
- [Tip Code Faster](https://wong-coupon.gitbook.io/flutter/my-flutter/foundations/tip-code-faster.md)
- [FVM](https://wong-coupon.gitbook.io/flutter/my-flutter/foundations/fvm.md): Fix Flutter version for your team with FVM
- [Make](https://wong-coupon.gitbook.io/flutter/my-flutter/foundations/make.md): Use Make to run many Flutter commands with one short command
- [Easy Maintain](https://wong-coupon.gitbook.io/flutter/my-flutter/foundations/easy-maintain.md): Reducing Maintenance and Sustaining Code
- [Mason](https://wong-coupon.gitbook.io/flutter/my-flutter/foundations/mason.md): Code Flutter Faster with Mason
- [Log Color](https://wong-coupon.gitbook.io/flutter/my-flutter/foundations/log-color.md): Setting Up Colored Logs and Saving Logs to Device Storage
- [Activity Diagram](https://wong-coupon.gitbook.io/flutter/my-flutter/foundations/activity-diagram.md)
- [Clean code](https://wong-coupon.gitbook.io/flutter/my-flutter/foundations/clean-code.md): Best Practices for Writing Clean and Understandable Code in Flutter Team Development
- [Coverage](https://wong-coupon.gitbook.io/flutter/my-flutter/foundations/coverage-codecov.md): Upload Flutter test coverage to Codecov and show a badge in README
- [Git hook](https://wong-coupon.gitbook.io/flutter/my-flutter/foundations/git-hook.md): Run commands automatically when using Git commands
- [Enum](https://wong-coupon.gitbook.io/flutter/my-flutter/foundations/enum.md): The Power of Enums in Simplifying Code
- [Architecture & State](https://wong-coupon.gitbook.io/flutter/my-flutter/architecture-state.md): Application architecture, package boundaries, migration, and state management for Flutter at scale.
- [Plugin](https://wong-coupon.gitbook.io/flutter/my-flutter/architecture-state/plugin.md): Plugin: Communicating with Native Code for Efficient Flutter App Maintenance
- [Flutter Clean Architecture](https://wong-coupon.gitbook.io/flutter/my-flutter/architecture-state/flutter-clean-architecture.md): Easier Maintenance and Expansion of Flutter Code with Clean Architecture
- [Base Project](https://wong-coupon.gitbook.io/flutter/my-flutter/architecture-state/base-project.md): Creating a Base Project in Flutter
- [Flavor](https://wong-coupon.gitbook.io/flutter/my-flutter/architecture-state/flavor.md): Set up 3 environments (dev, staging, production) for mobile in Flutter (3 separate mobile apps)
- [Package](https://wong-coupon.gitbook.io/flutter/my-flutter/architecture-state/package.md): Package - Store the Best of Your Code for Your Projects
- [Dart Workspace and Melos](https://wong-coupon.gitbook.io/flutter/my-flutter/architecture-state/dart-workspace-melos.md): Use Dart Workspace for consistent dependency resolution and Melos to orchestrate commands in a Flutter monorepo
- [Context Anywhere](https://wong-coupon.gitbook.io/flutter/my-flutter/architecture-state/context-anywhere.md): Guide to Setting Up and Accessing BuildContext Anywhere in a Flutter Project
- [Bloc](https://wong-coupon.gitbook.io/flutter/my-flutter/architecture-state/bloc.md)
- [ChangeNotifier](https://wong-coupon.gitbook.io/flutter/my-flutter/architecture-state/changenotifier.md): Controlling Widgets with ChangeNotifier
- [Redux/Flutter Redux at Scale](https://wong-coupon.gitbook.io/flutter/my-flutter/architecture-state/redux-flutter-redux-large-app.md): Organize Redux and Flutter Redux by feature so a global store remains manageable as the application grows
- [Redux Epics and RxDart](https://wong-coupon.gitbook.io/flutter/my-flutter/architecture-state/redux-epics-rxdart.md): Choose the correct concurrency strategy in Redux Epics to prevent duplicate requests and stale results from overwriting state
- [Redux Persist and State Migration](https://wong-coupon.gitbook.io/flutter/my-flutter/architecture-state/redux-persist-state-migration.md): How I limit persisted Redux state, migrate versioned schemas, and stop saving until storage loads successfully
- [Incremental Fish Redux Migration](https://wong-coupon.gitbook.io/flutter/my-flutter/architecture-state/incremental-fish-redux-migration.md): How I migrate Fish Redux screens to Flutter Redux while preserving routes, arguments, deep links, and the back stack
- [Systems & Realtime](https://wong-coupon.gitbook.io/flutter/my-flutter/systems-realtime.md): APIs, networking, realtime systems, lifecycle, and navigation boundaries in production Flutter apps.
- [MQTT and App Lifecycle](https://wong-coupon.gitbook.io/flutter/my-flutter/systems-realtime/mqtt-realtime-app-lifecycle.md): How I organize MQTT when the app enters the background, preserve subscriptions, and restore data when it returns to the foreground
- [Typed Realtime with Protobuf and Nakama](https://wong-coupon.gitbook.io/flutter/my-flutter/systems-realtime/nakama-protobuf-market-realtime.md): How I use topics as schema contracts, separate state from events, and keep Nakama outside the market gateway so realtime data stays typed
- [Aggregating Realtime Data with Reactive Streams](https://wong-coupon.gitbook.io/flutter/my-flutter/systems-realtime/reactive-realtime-aggregation-flutter.md): Design derived realtime state with a typed adapter, freshness gates, immutable snapshots, and a testable lifecycle in Flutter
- [Production HTTP Client for Flutter](https://wong-coupon.gitbook.io/flutter/my-flutter/systems-realtime/production-http-client.md): How I attach a 401 failure to the request auth context so a stale response cannot log out a newer session, while also standardizing JWT handling and HTTP failures
- [Flutter Connectivity and Network Failures](https://wong-coupon.gitbook.io/flutter/my-flutter/systems-realtime/connectivity-offline-ux-vpn.md): How I separate transport, Internet reachability, timeouts, service errors, captive portals, and VPNs so offline UX does not report the wrong cause
- [Multi-Source Deep Links in Flutter](https://wong-coupon.gitbook.io/flutter/my-flutter/systems-realtime/deep-link-app-links-adjust-onesignal.md): How I route App Links, Adjust, and OneSignal through a typed pipeline that validates input, prevents duplicate navigation, and waits for app readiness
- [UI & Media](https://wong-coupon.gitbook.io/flutter/my-flutter/ui-media.md): UI, WebViews, charts, cameras, media, and server-driven content in Flutter.
- [FFmpeg Flutter](https://wong-coupon.gitbook.io/flutter/my-flutter/ui-media/ffmpeg-flutter.md): Handling Video with FFmpeg in Flutter
- [Secure Documents and Attachments](https://wong-coupon.gitbook.io/flutter/my-flutter/ui-media/secure-documents-attachments-flutter.md): How I put pickers, downloads, exports, and media through one policy before previewing, uploading, saving, opening, or sharing
- [Dark Mode](https://wong-coupon.gitbook.io/flutter/my-flutter/ui-media/dark-mode.md): Setting Up Light/Dark Mode and Fonts in a Flutter App
- [TradingView in a Flutter WebView](https://wong-coupon.gitbook.io/flutter/my-flutter/ui-media/tradingview-webview-javascript-bridge.md): How to package TradingView in a Flutter WebView with local assets, a versioned JavaScript bridge, and safe Android/iOS lifecycle handling
- [Choosing a Financial Chart Renderer](https://wong-coupon.gitbook.io/flutter/my-flutter/ui-media/financial-chart-renderer.md): How to choose among FL Chart, ECharts, and an MPChart-style renderer based on capabilities, realtime updates, gestures, testing, and WebView cost
- [Building a Custom Trading Keyboard in Flutter](https://wong-coupon.gitbook.io/flutter/my-flutter/ui-media/custom-trading-keyboard.md): Build a custom numeric keyboard in Flutter with a controller, active binding, formatters, focus, and accessibility instead of only drawing a key grid
- [Safe QR/Barcode Scanning](https://wong-coupon.gitbook.io/flutter/my-flutter/ui-media/qr-barcode-scanner-camera-permission.md): Build a Flutter QR/barcode scanner with explicit permissions, serialized camera lifecycle, and a pipeline that treats raw payloads as untrusted input
- [Rendering Server-Driven HTML Safely in Flutter](https://wong-coupon.gitbook.io/flutter/my-flutter/ui-media/safe-server-driven-html-flutter.md): How to design bounded ingress, a policy compiler, and typed intents for rendering server-managed HTML without giving network or navigation authority to the widget
- [Responsive](https://wong-coupon.gitbook.io/flutter/my-flutter/ui-media/responsive.md): Responsive Screen Guide in Flutter
- [Multi-Language](https://wong-coupon.gitbook.io/flutter/my-flutter/ui-media/multi-language.md): Language Switching in Flutter Without Third-Party Packages
- [Core UI](https://wong-coupon.gitbook.io/flutter/my-flutter/ui-media/core-ui.md): Reusing the UI You Have Built
- [Security & Observability](https://wong-coupon.gitbook.io/flutter/my-flutter/security-observability.md): Protecting identity and data while observing crashes, traces, analytics, configuration, and engagement safely.
- [Salt](https://wong-coupon.gitbook.io/flutter/my-flutter/security-observability/salt.md): Password Security in Flutter Apps: AES Encryption with Salt and IV
- [Secure Storage: Keychain and Keystore](https://wong-coupon.gitbook.io/flutter/my-flutter/security-observability/secure-storage-keychain-keystore.md): How I preserve the old state when iOS Keychain is temporarily unavailable and prevent a Secure Storage write from destroying data
- [Biometric Authentication with local\_auth](https://wong-coupon.gitbook.io/flutter/my-flutter/security-observability/biometric-authentication-local-auth.md): How I use local\_auth as a local gate before the real sign-in, make fallback explicit, and keep transient errors from destroying user preferences
- [Smart OTP/TOTP Architecture in Flutter](https://wong-coupon.gitbook.io/flutter/my-flutter/security-observability/smart-otp-totp-flutter-architecture.md): How I separate enrollment, secrets, time sources, and server verification so TOTP in Flutter has clear replay protection and failure paths
- [Secure Multi-Provider eKYC in Flutter](https://wong-coupon.gitbook.io/flutter/my-flutter/security-observability/secure-multi-provider-ekyc-flutter.md): How I separate camera, QR, MRZ, NFC, consent, liveness, and backend verification into explicit boundaries when integrating multiple eKYC providers in Flutter
- [Screenshot Detection and Background Privacy in Flutter](https://wong-coupon.gitbook.io/flutter/my-flutter/security-observability/screenshot-background-privacy-flutter.md): How I separated screenshot detection, screen recording, Android capture prevention, and app-switcher privacy into testable Flutter contracts
- [Device Integrity and App Shielding in Flutter](https://wong-coupon.gitbook.io/flutter/my-flutter/security-observability/device-integrity-app-shielding-flutter.md): How I separate root and jailbreak signals, app shielding, Play Integrity, App Attest, and backend policy into testable Flutter contracts
- [Google and Apple Sign-In in Flutter](https://wong-coupon.gitbook.io/flutter/my-flutter/security-observability/google-apple-sign-in-flutter.md): Design a Google and Apple flow where Flutter only receives a provider credential, the backend verifies it, and only then issues an application session
- [reCAPTCHA Enterprise Token Lifecycle in Flutter](https://wong-coupon.gitbook.io/flutter/my-flutter/security-observability/recaptcha-enterprise-token-lifecycle-flutter.md): How I separate the RecaptchaClient lifecycle, one-shot tokens, submit idempotency, and backend assessment into testable Flutter contracts
- [Sentry for Crashes and Tracing](https://wong-coupon.gitbook.io/flutter/my-flutter/security-observability/sentry-flutter-crash-http-navigation-tracing.md): How I assign ownership for Sentry crashes, HTTP, navigation, and transaction tracing while controlling sampling and data in Flutter
- [Multi-Provider Analytics in Flutter](https://wong-coupon.gitbook.io/flutter/my-flutter/security-observability/multi-provider-analytics-flutter.md): How I put Firebase Analytics, Snowplow, and Adjust behind a typed gateway to control events, consent, identity, and delivery evidence in Flutter
- [Firebase Remote Config and feature flags](https://wong-coupon.gitbook.io/flutter/my-flutter/security-observability/firebase-remote-config-feature-flags.md): How I turn Firebase Remote Config into a typed snapshot, keep safe fallbacks, and control real-time updates in Flutter
- [Firebase Performance and Custom Traces](https://wong-coupon.gitbook.io/flutter/my-flutter/security-observability/firebase-performance-custom-trace.md): How I design Firebase Performance custom traces per operation while separating readiness, collection, sampling, and runtime evidence in Flutter
- [OneSignal Push and iOS NSE](https://wong-coupon.gitbook.io/flutter/my-flutter/security-observability/onesignal-push-ios-notification-service-extension.md): How I organize OneSignal around app and user lifecycles, permission handling, click routing, and an iOS Notification Service Extension in Flutter
- [Quality & Delivery](https://wong-coupon.gitbook.io/flutter/my-flutter/quality-delivery.md): Testing, benchmarking, CI/CD, code signing, and release operations for Flutter.
- [BDD with Flutter Gherkin](https://wong-coupon.gitbook.io/flutter/my-flutter/quality-delivery/bdd-flutter-gherkin.md): How I keep Gherkin feature files while migrating BDD flows from Flutter Driver to integration\_test and WidgetTester
- [Widget Tests and Golden Regression](https://wong-coupon.gitbook.io/flutter/my-flutter/quality-delivery/widget-test-golden-regression.md): How I combine widget tests with golden PNGs, stabilize rendering, and review visual regressions without hiding failures behind update-goldens
- [Mock Web Server for Service/API Tests](https://wong-coupon.gitbook.io/flutter/my-flutter/quality-delivery/mock-web-server-service-api-test.md): How I use a local HTTP server to verify request/response contracts, timeouts, and service error mapping without calling a real backend
- [Blocking Missing Translations with a Slang i18n Guard in CI](https://wong-coupon.gitbook.io/flutter/my-flutter/quality-delivery/slang-i18n-guard-missing-translations-ci.md): How I separate the Slang missing report, translator-MR policy, and semantic tests so CI blocks missing keys even when the app falls back to its base locale
- [Benchmarking Startup and Scrolling Performance](https://wong-coupon.gitbook.io/flutter/my-flutter/quality-delivery/startup-scrolling-performance-benchmark.md): How I separate startup traces, scrolling timelines, and runtime telemetry, then turn artifacts into fail-closed quality gates on real Flutter devices
- [Tracking APK/IPA Size in CI](https://wong-coupon.gitbook.io/flutter/my-flutter/quality-delivery/automated-apk-ipa-size-tracking.md): How I measure exact bytes for release APKs and IPAs, block regressions with budgets, and retain metric artifacts when GitLab CI fails
- [A Safe In-App Network Inspector](https://wong-coupon.gitbook.io/flutter/my-flutter/quality-delivery/safe-in-app-network-inspector.md): How I gate a network inspector at compile time, preserve HTTP transport, and retain only typed projections with safe memory and TTL limits
- [GitLab CI for a Flutter Monorepo](https://wong-coupon.gitbook.io/flutter/my-flutter/quality-delivery/gitlab-ci-flutter-monorepo.md): Separate GitLab CI, Makefile, and Melos responsibilities to validate a Flutter monorepo consistently while preserving exit codes and reports on failure
- [Fastlane iOS, Code Signing, and TestFlight](https://wong-coupon.gitbook.io/flutter/my-flutter/quality-delivery/fastlane-ios-code-signing-testflight.md): Separate code signing, IPA building, and TestFlight upload in Fastlane so an iOS pipeline uses the right artifact, fewer privileges, and accurate status reporting
- [Sonar Quality Gate for Flutter Monorepo](https://wong-coupon.gitbook.io/flutter/my-flutter/quality-delivery/sonar-quality-gate-flutter.md): Turn Sonar analysis into a required quality gate for a Flutter monorepo using commit-specific LCOV, gate waiting, and GitLab merge policy
- [Release Orchestration and Scheduled Go-Live for Android and iOS](https://wong-coupon.gitbook.io/flutter/my-flutter/quality-delivery/release-orchestration-scheduled-golive-android-ios.md): Orchestrate Android and iOS releases with immutable artifacts, protected environments, scheduled gates, and explicit store states
- [Fastlane - Google Play](https://wong-coupon.gitbook.io/flutter/my-flutter/quality-delivery/fastlane-google-play.md): Build Flutter apps and automatically upload to Google Play with Fastlane (free)
- [Firebase App Distribution (Android)](https://wong-coupon.gitbook.io/flutter/my-flutter/quality-delivery/firebase-app-distribution.md): Upload Flutter Android apps to Firebase App Distribution for manual and automated testing with GitHub Actions
- [Pain Points](https://wong-coupon.gitbook.io/flutter/my-flutter/pain-points.md): Real-world pain points and methods for defining the problem boundary before changing code.
- [Web](https://wong-coupon.gitbook.io/flutter/my-flutter/pain-points/web.md): Flutter Web Issues: Performance, SEO, and More
