# main(), runApp và ráp toàn bộ app

> main() load dữ liệu trước runApp, năm màn nối nhau ra sao, cây thư mục khi mọi thư mục đã có lý do, và checklist ranh giới tầng kiểm được bằng lệnh.

- URL: https://dantech.academy/courses/flutter-mobile-101/06-full-app/lesson-02-assemble-the-app
- Khóa học: [Flutter Mobile 101](https://dantech.academy/courses/flutter-mobile-101.md)
- Module: Ráp App Hoàn Chỉnh
- Thời lượng: 18 phút
- Độ khó: beginner
- Truy cập: Dành cho học viên

## Mục tiêu

- Nhìn được toàn bộ app như một bản đồ và giải thích lý do tồn tại của từng thư mục
- Rà soát toàn app bằng checklist ranh giới tầng, mỗi dòng kiểm được bằng một lệnh

## Nội dung bài học

1. Bức Tranh Tổng
2. main() Load Trước runApp
3. TicTacApp Chỉ Là Composition Root
4. Năm Màn Nối Nhau Thế Nào
5. Checklist Ranh Giới Tầng

## Học cùng AI agent

Toàn bộ bài học dành cho học viên của khóa. Học viên mở bài trên web và bấm nút **Markdown** để copy toàn bài, rồi dán vào Claude, ChatGPT, Cursor hoặc agent bạn đang dùng. Nhanh hơn: tạo token ở `/profile/ai-agents` và agent đọc bài trực tiếp qua MCP.

- [Đăng ký khóa học](https://dantech.academy/flutter-mobile-101/checkout)

---

- Bài trước: [SharedPreferencesAsync và repository pattern](https://dantech.academy/courses/flutter-mobile-101/06-full-app/lesson-01-local-persistence-repository.md)
- Bài tiếp theo: [ColorScheme, debug và flutter build](https://dantech.academy/courses/flutter-mobile-101/06-full-app/lesson-03-theme-debug-and-ship.md)
