- 16 Sections
- 320 Lessons
- 30 Weeks
Expand all sectionsCollapse all sections
- Chương 1 - Làm quen với FlutterMục tiêu: Hiểu Flutter là gì, cài được môi trường và chạy được ứng dụng đầu tiên.15
- 1.1Bài 1.1. Flutter là gì?
- 1.2Bài 1.2. Flutter hoạt động như thế nào?
- 1.3Bài 1.3. Flutter vs Native vs React Native
- 1.4Bài 1.4. Cài Flutter SDK
- 1.5Bài 1.5. Cài Android Studio / VS Code
- 1.6Bài 1.6. Cấu hình Android Emulator
- 1.7Bài 1.7. Tạo Flutter project đầu tiên
- 1.8Bài 1.8. Cấu trúc một Flutter project
- 1.9Bài 1.9. main() và runApp()
- 1.10Bài 1.10. Widget là gì?
- 1.11Bài 1.11. StatelessWidget
- 1.12Bài 1.12. Build method
- 1.13Bài 1.13. Hot Reload & Hot Restart
- 1.14Bài 1.14. Debug Flutter App
- 1.15Bài 1.15. Những lỗi thường gặp khi mới học Flutter
- Chương 2 - Dart từ Zero đến đủ dùngMục tiêu: Có nền tảng Dart cần thiết để học Flutter mà không bị mắc ở ngôn ngữ.36
- 2.1Bài 2.1. Dart là gì?
- 2.2Bài 2.2. Các biến trong Dart
- 2.3Bài 2.3. var, final vs const
- 2.4Bài 2.4. Các kiểu dữ liệu trong Dart
- 2.5Bài 2.5. String
- 2.6Bài 2.6. Number
- 2.7Bài 2.7. Boolean
- 2.8Bài 2.8. List
- 2.9Bài 2.9. Set
- 2.10Bài 2.10. Map
- 2.11Bài 2.11. Các toán tử
- 2.12Bài 2.12. Cấu trúc if-else
- 2.13Bài 2.13. Cấu trúc switch
- 2.14Bài 2.14. Cấu trúc lặp for
- 2.15Bài 2.15. Cấu trúc lặp while
- 2.16Bài 2.16. Functions
- 2.17Bài 2.17. Parameters
- 2.18Bài 2.18. Optional & Named Parameters
- 2.19Bài 2.19. Null Safety
- 2.20Bài 2.20. Nullable & Non-nullable
- 2.21Bài 2.21. Null-aware operators
- 2.22Bài 2.22. Class & Object
- 2.23Bài 2.23. Constructor
- 2.24Bài 2.24. Named Constructor
- 2.25Bài 2.25. Getter và Setter
- 2.26Bài 2.26. Inheritance
- 2.27Bài 2.27. Abstract Class
- 2.28Bài 2.28. Interface
- 2.29Bài 2.29. Mixin
- 2.30Bài 2.30. Enum
- 2.31Bài 2.31. Extension
- 2.32Bài 2.32. Exception Handling
- 2.33Bài 2.33. Async/Await
- 2.34Bài 2.34. Future
- 2.35Bài 2.35. Stream
- 2.36Bài 2.36. Generics
- Chương 3 - Flutter UI nền tảngMục tiêu: Biết xây giao diện Flutter từ những widget cơ bản.30
- 3.1Bài 3.1. Widget Tree
- 3.2Bài 3.2. MaterialApp
- 3.3Bài 3.3. Scaffold
- 3.4Bài 3.4. AppBar
- 3.5Bài 3.5. Text
- 3.6Bài 3.6. Icon
- 3.7Bài 3.7. Image
- 3.8Bài 3.8. Container
- 3.9Bài 3.9. SizedBox
- 3.10Bài 3.10. Padding
- 3.11Bài 3.11. Center
- 3.12Bài 3.12. Row
- 3.13Bài 3.13. Column
- 3.14Bài 3.14. Expanded
- 3.15Bài 3.15. Flexible
- 3.16Bài 3.16. Stack
- 3.17Bài 3.17. Positioned
- 3.18Bài 3.18. Divider
- 3.19Bài 3.19. Card
- 3.20Bài 3.20. Button
- 3.21Bài 3.21. TextButton
- 3.22Bài 3.22. ElevatedButton
- 3.23Bài 3.23. IconButton
- 3.24Bài 3.24. FloatingActionButton
- 3.25Bài 3.25. Widget composition
- 3.26Bài 3.26. Reusable Widget
- 3.27Bài 3.27. Theme cơ bản
- 3.28Bài 3.28. Color
- 3.29Bài 3.29. Typography
- 3.30Bài 3.30. 1. Asset management
- Chương 4 - Layout & Responsive UIMục tiêu: Có thể xây giao diện giống app thực tế và chạy tốt trên nhiều kích thước màn hình.20
- 4.1Bài 4.1. Flutter layout system
- 4.2Bài 4.2. Constraints
- 4.3Bài 4.3. Tìm hiểu BoxConstraints
- 4.4Bài 4.4. Main Axis / Cross Axis
- 4.5Bài 4.5. ListView
- 4.6Bài 4.6. ListView.builder
- 4.7Bài 4.7. GridView
- 4.8Bài 4.8. GridView.builder
- 4.9Bài 4.9. SingleChildScrollView
- 4.10Bài 4.10. Wrap
- 4.11Bài 4.11. LayoutBuilder
- 4.12Bài 4.12. MediaQuery
- 4.13Bài 4.13. Responsive UI
- 4.14Bài 4.14. Adaptive UI
- 4.15Bài 4.15. Orientation
- 4.16Bài 4.16. SafeArea
- 4.17Bài 4.17. Nested scrolling
- 4.18Bài 4.18. Slivers
- 4.19Bài 4.19. CustomScrollView
- 4.20Bài 4.20. Responsive design patterns
- Chương 5 - Navigation, Form & User InputMục tiêu: Xây được flow nhiều màn hình và xử lý input từ người dùng.22
- 5.1Bài 5.1. Navigation là gì?
- 5.2Bài 5.2. Navigator
- 5.3Bài 5.3. Push / Pop
- 5.4Bài 5.4. Named Routes
- 5.5Bài 5.5. Route arguments
- 5.6Bài 5.6. Passing data giữa màn hình
- 5.7Bài 5.7. Returning data
- 5.8Bài 5.8. Bottom Navigation
- 5.9Bài 5.9. Tab Navigation
- 5.10Bài 5.10. Drawer
- 5.11Bài 5.11. Deep link cơ bản
- 5.12Bài 5.12. TextField
- 5.13Bài 5.13. TextEditingController
- 5.14Bài 5.14. FocusNode
- 5.15Bài 5.15. Form
- 5.16Bài 5.16. Form validation
- 5.17Bài 5.17. Input formatting
- 5.18Bài 5.18. Keyboard handling
- 5.19Bài 5.19. Date Picker
- 5.20Bài 5.20. Time Picker
- 5.21Bài 5.21. Dialog
- 5.22Bài 5.22. Bottom Sheet
- Chương 6 - Quản lý trạng thái trong FlutterMục tiêu: Hiểu state và biết quản lý trạng thái trong ứng dụng thực tế.18
- 6.1Bài 6.1. State là gì?
- 6.2Bài 6.2. Local State
- 6.3Bài 6.3. Callback setState()
- 6.4Bài 6.4. Vòng đời Widget
- 6.5Bài 6.5. StatefulWidget
- 6.6Bài 6.6. Lifting State Up
- 6.7Bài 6.7. Sharing State
- 6.8Bài 6.8. Prop Drilling
- 6.9Bài 6.9. InheritedWidget
- 6.10Bài 6.10. ValueNotifier
- 6.11Bài 6.11. ChangeNotifier
- 6.12Bài 6.12. Provider
- 6.13Bài 6.13. Dependency Injection cơ bản
- 6.14Bài 6.14. State đang tải
- 6.15Bài 6.15. State lỗi
- 6.16Bài 6.16. State rỗng
- 6.17Bài 6.17. State bất đồng bộ
- 6.18Bài 6.18. Các mẫu quản lý State
- Chương 7 - REST API & NetworkingMục tiêu: Kết nối Flutter với backend/API.24
- 7.1Bài 7.1. API là gì?
- 7.2Bài 7.2. HTTP
- 7.3Bài 7.3. REST API
- 7.4Bài 7.4. GET
- 7.5Bài 7.5. POST
- 7.6Bài 7.6. PUT
- 7.7Bài 7.7. PATCH
- 7.8Bài 7.8. DELETE
- 7.9Bài 7.9. JSON
- 7.10Bài 7.10. Tuần tự hoá
- 7.11Bài 7.11. Giải tuần tự hoá
- 7.12Bài 7.12. Gói http
- 7.13Bài 7.13. Dio
- 7.14Bài 7.14. Request headers
- 7.15Bài 7.15. Query parameters
- 7.16Bài 7.16. Request body
- 7.17Bài 7.17. HTTP status codes
- 7.18Bài 7.18. API error handling
- 7.19Bài 7.19. Timeout
- 7.20Bài 7.20. Retry
- 7.21Bài 7.21. Phân trang
- 7.22Bài 7.22. Kéo để làm mới
- 7.23Bài 7.23. API tìm kiếm
- 7.24Bài 7.24. Loading / Error / Empty states
- Chương 8 - Lưu trữ dữ liệu cục bộ và databaseMục tiêu: lưu trữ dữ liệu trên thiết bị cài đặt ứng dụng16
- 8.1Bài 8.1. Local storage là gì?
- 8.2Bài 8.2. SharedPreferences
- 8.3Bài 8.3. Key-value storage
- 8.4Bài 8.4. Secure Storage
- 8.5Bài 8.5. JSON local storage
- 8.6Bài 8.6. SQLite
- 8.7Bài 8.7. Database concepts
- 8.8Bài 8.8. Table
- 8.9Bài 8.9. Primary Key
- 8.10Bài 8.10. CRUD
- 8.11Bài 8.11. Queries
- 8.12Bài 8.12. Drift / database abstraction
- 8.13Bài 8.13. Repository pattern
- 8.14Bài 8.14. Local cache
- 8.15Bài 8.15. Offline-first basics
- 8.16Bài 8.16. Sync local & remote data
- Chương 9 - AuthenticationMục tiêu: Hiểu và triển khai authentication flow thực tế.16
- 9.1Bài 9.1. Authentication vs Authorization
- 9.2Bài 9.3. Register
- 9.3Bài 9.2. Login
- 9.4Bài 9.4. Logout
- 9.5Bài 9.5. Password handling
- 9.6Bài 9.6. Token
- 9.7Bài 9.7. Access token
- 9.8Bài 9.8. Refresh token
- 9.9Bài 9.9. Secure storage
- 9.10Bài 9.10. Authentication state
- 9.11Bài 9.11. Protected routes
- 9.12Bài 9.12. Session management
- 9.13Bài 9.13. Forgot Password
- 9.14Bài 9.14. Reset Password
- 9.15Bài 9.15. Email verification
- 9.16Bài 9.16. Social login concepts
- Chương 11 - Kiến trúc ứng dụng và Clean codeMục tiêu: Chuyển từ "code chạy được" sang "code có thể maintain".18
- 10.1Bài 10.1. Vì sao cần state management nâng cao?
- 10.2Bài 10.2. Riverpod architecture
- 10.3Bài 10.3. Provider
- 10.4Bài 10.4. StateProvider
- 10.5Bài 10.5. FutureProvider
- 10.6Bài 10.6. StreamProvider
- 10.7Bài 10.7. Notifier
- 10.8Bài 10.8. AsyncNotifier
- 10.9Bài 10.9. Provider dependencies
- 10.10Bài 10.10. Provider family
- 10.11Bài 10.11. Auto dispose
- 10.12Bài 10.12. State caching
- 10.13Bài 10.13. Authentication state
- 10.14Bài 10.14. API state
- 10.15Bài 10.15. Form state
- 10.16Bài 10.16. Error handling
- 10.17Bài 10.17. Loading state
- 10.18Bài 10.18. Testing providers
- Chương 10 - Quản lý trạng thái trong Flutter nâng caoMục tiêu: Sử dụng một architecture state management phù hợp cho production.23
- 11.1Bài 11.1. Vì sao architecture quan trọng?
- 11.2Bài 11.2. Separation of Concerns
- 11.3Bài 11.3. Feature-based architecture
- 11.4Bài 11.4. Layered architecture
- 11.5Bài 11.5. Presentation Layer
- 11.6Bài 11.6. Domain Layer
- 11.7Bài 11.7. Data Layer
- 11.8Bài 11.8. Repository
- 11.9Bài 11.9. Data Source
- 11.10Bài 11.10. Model
- 11.11Bài 11.11. Entity
- 11.12Bài 11.12. Use Case
- 11.13Bài 11.13. Dependency Injection
- 11.14Bài 11.14. SOLID
- 11.15Bài 11.15. Single Responsibility
- 11.16Bài 11.16. Dependency Inversion
- 11.17Bài 11.17. DTO
- 11.18Bài 11.18. Mapper
- 11.19Bài 11.19. Error abstraction
- 11.20Bài 11.20. Result pattern
- 11.21Bài 11.21. Code organization
- 11.22Bài 11.22. Naming conventions
- 11.23Bài 11.23. Refactoring
- Chương 12 - Sử dụng FirebaseMục tiêu: Biết xây backend nhanh bằng Firebase.17
- 12.1Bài 12.1. Firebase là gì?
- 12.2Bài 12.2. Firebase project
- 12.3Bài 12.3. Firebase setup
- 12.4Bài 12.4. Firebase Authentication
- 12.5Bài 12.5. Cloud Firestore
- 12.6Bài 12.6. Firestore structure
- 12.7Bài 12.7. CRUD
- 12.8Bài 12.8. Các truy vấn
- 12.9Bài 12.9. Phân trang
- 12.10Bài 12.10. Update realtime
- 12.11Bài 12.11. Firebase Storage
- 12.12Bài 12.12. Upload image
- 12.13Bài 12.13. Push Notification
- 12.14Bài 12.14. Firebase Cloud Messaging
- 12.15Bài 12.15. Security Rules
- 12.16Bài 12.16. Firebase Analytics
- 12.17Bài 12.17. Crashlytics
- Chương 13 - Animation & UXMục tiêu: Tạo app có UX tốt hơn thay vì chỉ "đúng chức năng".17
- 13.1Bài 13.1. Animation fundamentals
- 13.2Bài 13.2. Implicit Animation
- 13.3Bài 13.3. AnimatedContainer
- 13.4Bài 13.4. AnimatedOpacity
- 13.5Bài 13.5. Explicit Animation
- 13.6Bài 13.6. AnimationController
- 13.7Bài 13.7. Tween
- 13.8Bài 13.8. Hero Animation
- 13.9Bài 13.9. Page Transition
- 13.10Bài 13.10. Lottie
- 13.11Bài 13.11. Shimmer
- 13.12Bài 13.12. Skeleton loading
- 13.13Bài 13.13. Micro interaction
- 13.14Bài 13.14. Haptic feedback
- 13.15Bài 13.15. Accessibility
- 13.16Bài 13.16. Dark mode
- 13.17Bài 13.17. UX patterns
- Chương 14 - Kiểm thử và Gỡ lỗiMục tiêu: Có khả năng kiểm thử và tìm lỗi trong app.16
- 14.1Bài 14.1. Vì sao cần testing?
- 14.2Bài 14.2. Debugging mindset
- 14.3Bài 14.3. Flutter DevTools
- 14.4Bài 14.4. Debug console
- 14.5Bài 14.5. Breakpoint
- 14.6Bài 14.6. Widget Inspector
- 14.7Bài 14.7. Unit Test
- 14.8Bài 14.8. Widget Test
- 14.9Bài 14.9. Integration Test
- 14.10Bài 14.10. Mocking
- 14.11Bài 14.11. Repository testing
- 14.12Bài 14.12. API testing
- 14.13Bài 14.13. Provider testing
- 14.14Bài 14.14. Golden Test
- 14.15Bài 14.15. Test coverage
- 14.16Bài 14.16. Common Flutter bugs
- Chương 15 - Hiệu năng và ProductionMục tiêu: Biết đưa Flutter app từ development lên production.24
- 15.1Bài 15.1. Flutter performance fundamentals
- 15.2Bài 15.2. Build method optimization
- 15.3Bài 15.3. Rebuild là gì?
- 15.4Bài 15.4. Const optimization
- 15.5Bài 15.5. List performance
- 15.6Bài 15.6. Image optimization
- 15.7Bài 15.7. Memory
- 15.8Bài 15.8. Network optimization
- 15.9Bài 15.9. Caching
- 15.10Bài 15.10. Lazy loading
- 15.11Bài 15.11. Pagination
- 15.12Bài 15.12. App size
- 15.13Bài 15.13. Release mode
- 15.14Bài 15.14. Build APK
- 15.15Bài 15.15. Build AAB
- 15.16Bài 15.16. iOS build
- 15.17Bài 15.17. Environment variables
- 15.18Bài 15.18. Development / Staging / Production
- 15.19Bài 15.19. App signing
- 15.20Bài 15.20. App icon
- 15.21Bài 15.21. Splash screen
- 15.22Bài 15.22. App versioning
- 15.23Bài 15.23. Crash reporting
- 15.24Bài 15.24. CI/CD concepts
- Chương 16 - Dự án cuối khoá họcMục tiêu: Bạn áp dụng tất cả kiến thức và kĩ năng hiện có để build một app hoàn chỉnh từ đầu đến cuối.8
Phase 7: Kiểm thử
Trước
