Today's Objective
By the end of this lesson you will understand build and deploy deeply enough to apply it immediately in real projects.
# Build release Android APK
flutter build apk --release
# or split by ABI (smaller files):
flutter build apk --split-per-abi
# Build Android App Bundle (required for Play Store)
flutter build appbundle --release
# Build iOS (requires Mac + Xcode)
flutter build ios --release
# pubspec.yaml — app identity
name: my_app
description: A new Flutter project.
version: 1.0.0+1 # version+buildNumber
flutter:
uses-material-design: true
assets:
- assets/images/
fonts:
- family: DM Sans
fonts:
- asset: assets/fonts/DMSans-Regular.ttf
# Build and upload to Firebase App Distribution (for testing)
flutter pub add --dev firebase_app_distribution
flutter build apk --release
firebase appdistribution:distribute build/app/outputs/flutter-apk/app-release.apk \
--app YOUR_APP_ID \
--groups "testers"
Tip: Use flutter build --obfuscate --split-debug-info=./debug-info to shrink and protect your release binary.
Exercise: Publish to the Play Store
- Run flutter build appbundle --release
- Open Google Play Console and create a new app
- Upload the .aab file to Internal Testing track
- Fill in store listing: icon, screenshots, description
- Promote to Production after testing
Day 5 Summary
- version: 1.0.0+1 maps to versionName+versionCode
- App Bundle (.aab) is smaller than APK for Play Store
- iOS requires a Mac with Xcode and an Apple account
- Obfuscation hides class/method names in release builds
- Firebase App Distribution is free for beta testing
← Previous
HTTP and JSON
Course Complete 🎉
Back to Flutter in 5 Days
Course Complete
Completing all five days means having a solid working knowledge of Flutter. The skills here translate directly to real projects. The next step is practice — pick a project and build something with what was learned.
Supporting Videos & Reading
Go deeper with these external references.
Day 5 Checkpoint
Before moving on, verify you can answer these without looking:
- What is the core concept introduced in this lesson, and why does it matter?
- What are the two or three most common mistakes practitioners make with this topic?
- Can you explain the key code pattern from this lesson to a colleague in plain language?
- What would break first if you skipped the safeguards or best practices described here?
- How does today's topic connect to what comes in Day the final lesson?
Live Bootcamp
Learn this in person — 2 days, 5 cities
Thu–Fri sessions in Denver, Los Angeles, New York, Chicago, and Dallas. $1,490 per seat. June–October 2026.
Reserve Your Seat →
Back to Course
Flutter — Full Course Overview
→