▶️ Chạy ứng dụng
1. Kiểm tra thiết bị có sẵn
Phần tiêu đề “1. Kiểm tra thiết bị có sẵn”flutter devicesKết quả ví dụ:
3 connected devices:
iPhone 15 Pro (mobile) • iOS SimulatorAndroid SDK (mobile) • Android EmulatorChrome (web) • chromemacOS (desktop) • macos2. Chạy trên Emulator/Simulator
Phần tiêu đề “2. Chạy trên Emulator/Simulator”iOS Simulator (macOS only)
Phần tiêu đề “iOS Simulator (macOS only)”# Mở Simulatoropen -a Simulator
# Chạy appflutter runHoặc từ Xcode: Open Xcode → Open Developer Tool → Simulator
Android Emulator
Phần tiêu đề “Android Emulator”# Liệt kê AVDsflutter emulators
# Khởi động emulatorflutter emulators --launch <emulator_id>
# Chạy appflutter runHoặc từ Android Studio: Open AVD Manager → Launch
3. Chạy trên thiết bị thật
Phần tiêu đề “3. Chạy trên thiết bị thật”Android
Phần tiêu đề “Android”-
Bật Developer Options trên thiết bị:
- Vào Settings → About Phone
- Tap Build Number 7 lần
-
Bật USB Debugging:
- Settings → Developer Options → USB Debugging
-
Kết nối USB và chạy:
Terminal window flutter run
- Kết nối iPhone qua USB
- Trust máy tính trên iPhone
- Mở Xcode, đăng nhập Apple ID
- Cấu hình Signing trong Xcode
- Chạy:
Terminal window flutter run
4. Chạy trên Web
Phần tiêu đề “4. Chạy trên Web”flutter run -d chromeHoặc chỉ định browser:
flutter run -d web-server --web-port 80805. Chạy trên Desktop
Phần tiêu đề “5. Chạy trên Desktop”# macOSflutter run -d macos
# Windowsflutter run -d windows
# Linuxflutter run -d linux6. Các lệnh hữu ích khi chạy
Phần tiêu đề “6. Các lệnh hữu ích khi chạy”| Phím | Tác dụng |
|---|---|
r |
Hot Reload - reload code, giữ state |
R |
Hot Restart - restart app, reset state |
h |
Hiển thị help |
d |
Detach (giữ app chạy) |
c |
Clear console |
q |
Quit |
7. Chọn thiết bị cụ thể
Phần tiêu đề “7. Chọn thiết bị cụ thể”# Liệt kê device IDsflutter devices
# Chạy trên device cụ thểflutter run -d <device_id>
# Ví dụflutter run -d iPhone\ 15\ Proflutter run -d emulator-5554flutter run -d chrome8. Chạy với các flags
Phần tiêu đề “8. Chạy với các flags”# Debug mode (default)flutter run
# Profile mode (performance testing)flutter run --profile
# Release modeflutter run --release
# Verbose outputflutter run -v9. Hot Reload vs Hot Restart
Phần tiêu đề “9. Hot Reload vs Hot Restart”| Feature | Hot Reload | Hot Restart |
|---|---|---|
| Phím | r |
R |
| Tốc độ | ~1 giây | ~5 giây |
| State | Giữ nguyên | Reset |
| Use case | Thay đổi UI | Thay đổi logic |
Hot Reload hoạt động với:
- Thay đổi widget build()
- Thêm/sửa functions
- Thay đổi styles
Cần Hot Restart khi:
- Thay đổi main()
- Thay đổi initState()
- Thêm biến global
- Thay đổi enum values
10. Xử lý lỗi thường gặp
Phần tiêu đề “10. Xử lý lỗi thường gặp”“No connected devices”
Phần tiêu đề ““No connected devices””# Kiểm tra lạiflutter devices
# Khởi động emulatorflutter emulators --launch <name>“Gradle build failed” (Android)
Phần tiêu đề ““Gradle build failed” (Android)”cd android./gradlew cleancd ..flutter run“Xcode build failed” (iOS)
Phần tiêu đề ““Xcode build failed” (iOS)”cd iospod installcd ..flutter run📝 Tóm tắt
Phần tiêu đề “📝 Tóm tắt”| Platform | Command |
|---|---|
| Default (auto-detect) | flutter run |
| iOS Simulator | flutter run -d iPhone |
| Android Emulator | flutter run -d emulator |
| Chrome | flutter run -d chrome |
| macOS | flutter run -d macos |
| Thiết bị cụ thể | flutter run -d <device_id> |
Nhớ:
r= Hot Reload (nhanh, giữ state)R= Hot Restart (chậm hơn, reset state)q= Quit