# A Production Readiness Checklist — Flutter

Source: https://www.skillbyai.com/en/flutter/p-checklist

> Pulling the course together.

## Before you ship

A Flutter app is ready when: the layout works on small phones, tablets and with large text scale; light and dark themes use the colour scheme; navigation handles back, deep links and signed-out users; state lives in one consistent approach; network calls handle errors, timeouts and offline cases; secrets are in secure storage and API keys are not hard-coded; permissions are declared and explained; `flutter analyze` is clean and unit, widget and key integration tests pass in CI; performance has been checked in profile mode; and release builds are signed, versioned, obfuscated with symbols kept, and crash reporting and analytics are in place.

## A CI pipeline in a few steps

Commands a CI job typically runs.

```bash
flutter pub get
dart format --output=none --set-exit-if-changed .
flutter analyze
flutter test --coverage
flutter build appbundle --release --flavor prod \
  --obfuscate --split-debug-info=build/symbols
```

## Accessibility is part of done

Add Semantics labels to icon-only buttons, keep contrast high, support text scaling and test with TalkBack and VoiceOver.

**Quiz:** Which practice belongs on a Flutter release checklist?

- [ ] Hard-code API secrets in Dart files
- [ ] Ship debug builds to the stores
- [x] Run analysis and tests in CI and build signed, versioned releases
- [ ] Skip testing large text sizes

*Answer:* Run analysis and tests in CI and build signed, versioned releases. Automated checks and proper signing make releases repeatable and safe.
