📁 Cấu trúc dự án
1. Tổng quan cấu trúc
Phần tiêu đề “1. Tổng quan cấu trúc”Khi tạo project Flutter mới, bạn sẽ thấy cấu trúc sau:
my_app/├── android/ # Native Android code├── ios/ # Native iOS code├── lib/ # Dart code (chính)│ └── main.dart # Entry point├── test/ # Unit tests├── web/ # Web support├── linux/ # Linux desktop├── macos/ # macOS desktop├── windows/ # Windows desktop├── pubspec.yaml # Dependencies├── pubspec.lock # Lock file├── analysis_options.yaml└── README.md2. Thư mục lib/ - Code chính
Phần tiêu đề “2. Thư mục lib/ - Code chính”Đây là thư mục quan trọng nhất, chứa toàn bộ Dart code:
lib/├── main.dart # Entry point├── screens/ # Các màn hình├── widgets/ # Custom widgets├── models/ # Data models├── services/ # API, database└── utils/ # Utilitiesmain.dart
Phần tiêu đề “main.dart”import 'package:flutter/material.dart';
void main() { runApp(const MyApp()); // Entry point}3. File pubspec.yaml - Dependencies
Phần tiêu đề “3. File pubspec.yaml - Dependencies”name: my_appdescription: A new Flutter project.version: 1.0.0+1
environment: sdk: '>=3.0.0 <4.0.0'
dependencies: flutter: sdk: flutter http: ^1.1.0 # HTTP client provider: ^6.0.0 # State management
dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^3.0.0
flutter: uses-material-design: true assets: - assets/images/Thêm package mới
Phần tiêu đề “Thêm package mới”# Thêm packageflutter pub add http
# Cập nhật dependenciesflutter pub get4. Thư mục Platform-specific
Phần tiêu đề “4. Thư mục Platform-specific”android/
Phần tiêu đề “android/”android/├── app/│ ├── build.gradle # App config│ └── src/main/│ ├── AndroidManifest.xml│ ├── kotlin/ # Native Kotlin code│ └── res/ # Resources└── build.gradle # Project configKhi nào sửa:
- Thêm permissions
- Cấu hình signing
- Native Android integrations
ios/├── Runner/│ ├── Info.plist # App config│ ├── AppDelegate.swift # Native Swift code│ └── Assets.xcassets/ # App icons├── Podfile # CocoaPods└── Runner.xcworkspace # Xcode projectKhi nào sửa:
- Thêm permissions
- Cấu hình App Store
- Native iOS integrations
5. Thư mục test/
Phần tiêu đề “5. Thư mục test/”test/├── widget_test.dart # Widget tests└── unit_test.dart # Unit testsChạy tests:
flutter test6. Thư mục assets/
Phần tiêu đề “6. Thư mục assets/”Tạo thư mục assets/ cho hình ảnh, fonts, v.v:
my_app/├── assets/│ ├── images/│ │ └── logo.png│ └── fonts/│ └── Roboto.ttfKhai báo trong pubspec.yaml:
flutter: assets: - assets/images/ fonts: - family: Roboto fonts: - asset: assets/fonts/Roboto.ttfSử dụng trong code:
Image.asset('assets/images/logo.png')7. File quan trọng khác
Phần tiêu đề “7. File quan trọng khác”| File | Mục đích |
|---|---|
pubspec.lock |
Lock versions, commit vào git |
analysis_options.yaml |
Cấu hình linter |
.gitignore |
Files không commit |
.metadata |
Flutter metadata |
8. Cấu trúc khuyến nghị cho dự án lớn
Phần tiêu đề “8. Cấu trúc khuyến nghị cho dự án lớn”lib/├── main.dart├── app.dart # MaterialApp setup├── core/│ ├── constants/│ ├── theme/│ └── utils/├── features/│ ├── auth/│ │ ├── screens/│ │ ├── widgets/│ │ └── providers/│ └── home/│ ├── screens/│ ├── widgets/│ └── providers/├── models/├── services/└── shared/ └── widgets/📝 Tóm tắt
Phần tiêu đề “📝 Tóm tắt”| Thư mục/File | Vai trò |
|---|---|
lib/ |
Code Dart chính |
lib/main.dart |
Entry point |
pubspec.yaml |
Dependencies |
android/, ios/ |
Native code |
test/ |
Unit & widget tests |
assets/ |
Hình ảnh, fonts |