📦 Build & Deploy
Học cách đóng gói và phân phối ứng dụng Flet. ⏱️ 20 phút
🎯 Mục tiêu
Phần tiêu đề “🎯 Mục tiêu”Nắm vững:
- Build cho desktop (Windows, macOS, Linux)
- Build cho mobile (Android, iOS)
- Build cho web
- Deploy options
📦 Flet CLI
Phần tiêu đề “📦 Flet CLI”Flet cung cấp CLI để build ứng dụng:
# Xem các commandsflet --help
# Build commandsflet build --help💻 Build Desktop App
Phần tiêu đề “💻 Build Desktop App”Windows (.exe)
Phần tiêu đề “Windows (.exe)”flet build windowsOutput: build/windows/ chứa file .exe
macOS (.app)
Phần tiêu đề “macOS (.app)”flet build macosOutput: build/macos/ chứa .app bundle
Linux
Phần tiêu đề “Linux”flet build linux🌐 Build Web App
Phần tiêu đề “🌐 Build Web App”flet build webOutput: build/web/ chứa static files để deploy
Options phổ biến
Phần tiêu đề “Options phổ biến”flet build web --base-url /my-app/flet build web --web-renderer canvaskit # Hoặc html📱 Build Mobile App
Phần tiêu đề “📱 Build Mobile App”Android (.apk / .aab)
Phần tiêu đề “Android (.apk / .aab)”Yêu cầu:
- Java JDK (11+)
- Android SDK
# APK để testflet build apk
# AAB cho Google Playflet build aabiOS (.ipa)
Phần tiêu đề “iOS (.ipa)”Yêu cầu:
- macOS
- Xcode
- Apple Developer account
flet build ipa⚙️ Build Options
Phần tiêu đề “⚙️ Build Options”Thông tin ứng dụng
Phần tiêu đề “Thông tin ứng dụng”flet build windows \ --product "My App" \ --org "com.mycompany" \ --build-number 1 \ --build-version "1.0.0"# Tạo file assets/icon.png (1024x1024)flet build windows --icon assets/icon.pngSplash Screen (Mobile)
Phần tiêu đề “Splash Screen (Mobile)”flet build apk \ --splash assets/splash.png \ --splash-color "#ffffff"📁 Cấu trúc dự án được khuyến nghị
Phần tiêu đề “📁 Cấu trúc dự án được khuyến nghị”my-flet-app/├── main.py # Entry point├── assets/ # Tài nguyên│ ├── icon.png # App icon (1024x1024)│ ├── splash.png # Splash screen│ └── images/├── pyproject.toml # Dependencies└── .gitignorepyproject.toml
Phần tiêu đề “pyproject.toml”[project]name = "my-flet-app"version = "1.0.0"dependencies = [ "flet[all]>=0.80.0",]
[tool.flet]app = "main.py"product = "My App"org = "com.mycompany"🚀 Deploy Options
Phần tiêu đề “🚀 Deploy Options”Web Hosting
Phần tiêu đề “Web Hosting”Static hosting (sau khi flet build web):
- Cloudflare Pages
- Netlify
- Vercel
- GitHub Pages
# Ví dụ: Deploy với Cloudflare Pagescd build/webnpx wrangler pages deploy .Server-side Flet App
Phần tiêu đề “Server-side Flet App”Nếu cần server-side rendering:
# Chạy như web serverflet run --web --host 0.0.0.0 --port 8080 main.pyDeploy trên:
- Docker + VPS
- Cloud Run
- Heroku
Docker Example
Phần tiêu đề “Docker Example”FROM python:3.11-slim
WORKDIR /appCOPY . .RUN pip install flet[all]
CMD ["flet", "run", "--web", "--host", "0.0.0.0", "--port", "8080", "main.py"]📲 Publish to Stores
Phần tiêu đề “📲 Publish to Stores”Google Play Store
Phần tiêu đề “Google Play Store”- Build:
flet build aab - Tạo Google Play Developer account ($25 one-time)
- Upload .aab file lên Play Console
- Điền thông tin app, screenshots
- Submit for review
Apple App Store
Phần tiêu đề “Apple App Store”- Build:
flet build ipa - Tạo Apple Developer account ($99/year)
- Mở Xcode để archive và submit
- Dùng App Store Connect
🔧 Troubleshooting
Phần tiêu đề “🔧 Troubleshooting”Common Issues
Phần tiêu đề “Common Issues”| Issue | Solution |
|---|---|
| “Python not found” | Đảm bảo Python trong PATH |
| “Flutter SDK not found” | Cài Flutter, thêm vào PATH |
| Android build fails | Kiểm tra JAVA_HOME và ANDROID_HOME |
| iOS build fails | Xcode updated, certificates valid |
Checking Prerequisites
Phần tiêu đề “Checking Prerequisites”# Kiểm tra Flutter (Flet sử dụng Flutter)flutter doctor
# Kiểm tra Pythonpython --version📋 Build Commands Summary
Phần tiêu đề “📋 Build Commands Summary”| Command | Output |
|---|---|
flet build windows |
.exe |
flet build macos |
.app |
flet build linux |
executable |
flet build web |
static HTML/JS |
flet build apk |
.apk (Android) |
flet build aab |
.aab (Play Store) |
flet build ipa |
.ipa (iOS) |
🎉 Chúc mừng!
Phần tiêu đề “🎉 Chúc mừng!”Bạn đã hoàn thành chuỗi tutorial về Flet! 🎊
Tổng kết những gì bạn đã học:
- ✅ Cài đặt và cấu trúc Flet
- ✅ Declarative UI với Components, Observables, Hooks
- ✅ Layouts và Controls
- ✅ Event handling
- ✅ Navigation và Theming
- ✅ File operations và Async
- ✅ Build và Deploy
📚 Tài nguyên thêm
Phần tiêu đề “📚 Tài nguyên thêm”- Docs chính thức: docs.flet.dev
- Examples: github.com/flet-dev/flet/examples
- Discord: discord.gg/flet
Chúc bạn xây dựng được nhiều ứng dụng tuyệt vời với Flet! 🚀