Skip to Content
Flutter📁 Cấu trúc dự án

Cấu trúc dự án Flutter

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.md

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/ # Utilities

main.dart

import 'package:flutter/material.dart'; void main() { runApp(const MyApp()); // Entry point }

3. File pubspec.yaml - Dependencies

name: my_app description: 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

# Thêm package flutter pub add http # Cập nhật dependencies flutter pub get

4. Thư mục Platform-specific

android/

android/ ├── app/ │ ├── build.gradle # App config │ └── src/main/ │ ├── AndroidManifest.xml │ ├── kotlin/ # Native Kotlin code │ └── res/ # Resources └── build.gradle # Project config

Khi nào sửa:

  • Thêm permissions
  • Cấu hình signing
  • Native Android integrations

ios/

ios/ ├── Runner/ │ ├── Info.plist # App config │ ├── AppDelegate.swift # Native Swift code │ └── Assets.xcassets/ # App icons ├── Podfile # CocoaPods └── Runner.xcworkspace # Xcode project

Khi nào sửa:

  • Thêm permissions
  • Cấu hình App Store
  • Native iOS integrations

5. Thư mục test/

test/ ├── widget_test.dart # Widget tests └── unit_test.dart # Unit tests

Chạy tests:

flutter test

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.ttf

Khai báo trong pubspec.yaml:

flutter: assets: - assets/images/ fonts: - family: Roboto fonts: - asset: assets/fonts/Roboto.ttf

Sử dụng trong code:

Image.asset('assets/images/logo.png')

7. File quan trọng khác

FileMục đích
pubspec.lockLock versions, commit vào git
analysis_options.yamlCấu hình linter
.gitignoreFiles không commit
.metadataFlutter metadata

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

Thư mục/FileVai trò
lib/Code Dart chính
lib/main.dartEntry point
pubspec.yamlDependencies
android/, ios/Native code
test/Unit & widget tests
assets/Hình ảnh, fonts
Last updated on