【Flutter】Flutter项目整体架构
·
项目结构概览
my_flutter_app/
├── android/ # Android平台特定代码
├── ios/ # iOS平台特定代码
├── lib/ # 主要的Dart代码(核心业务逻辑)
├── web/ # Web平台特定代码
├── test/ # 测试代码
├── assets/ # 静态资源文件
├── build/ # 构建输出目录
└── 配置文件们 # 各种配置文件
核心目录和文件详解
1. lib/ – 主要Dart代码目录
lib/
├── main.dart # 应用入口点
├── models/ # 数据模型类
├── services/ # 业务逻辑服务
├── providers/ # 状态管理
├── screens/ # 页面/屏幕
├── widgets/ # 可复用组件
├── utils/ # 工具类
└── constants/ # 常量定义
2. android/ – Android平台代码
android/
├── app/
│ ├── src/
│ │ └── main/
│ │ ├── java/ # Java/Kotlin代码
│ │ ├── res/ # Android资源文件
│ │ ├── AndroidManifest.xml # Android应用配置
│ │ └── kotlin/
│ └── build.gradle # Android构建配置
├── gradle/
└── build.gradle # 项目级Gradle配置
3. ios/ - iOS平台代码
ios/
├── Runner/
│ ├── Assets.xcassets/ # iOS资源文件
│ ├── Base.lproj/ # 界面文件
│ ├── AppDelegate.swift # iOS应用委托
│ └── Info.plist # iOS应用配置
├── Runner.xcodeproj/ # Xcode项目文件
├── Runner.xcworkspace/ # Xcode工作空间
└── Podfile # CocoaPods依赖管理
核心配置文件说明
1. pubspec.yaml – 项目主配置文件
name: my_flutter_app # 应用名称
description: "A Flutter application" # 应用描述
publish_to: 'none' # 发布设置
version: 1.0.0+1 # 版本号 (版本名+构建号)
environment:
sdk: '>=3.0.0 <4.0.0' # Dart SDK版本约束
dependencies: # 生产环境依赖
flutter:
sdk: flutter
cupertino_icons: ^1.0.2
http: ^1.1.0
provider: ^6.0.0
dev_dependencies: # 开发环境依赖
flutter_test:
sdk: flutter
flutter_lints: ^3.0.0
flutter:
uses-material-design: true # 使用Material设计
assets: # 静态资源声明
- assets/images/
- assets/icons/
fonts: # 字体配置
- family: Roboto
fonts:
- asset: assets/fonts/Roboto-Regular.ttf
2. analysis_options.yaml – 代码分析配置
include: package:flutter_lints/flutter.yaml
analyzer:
exclude: # 排除分析的文件
- build/**
- lib/generated_**
strong-mode:
implicit-casts: false
implicit-dynamic: false
linter:
rules: # Lint规则配置
- always_declare_return_types
- avoid_empty_else
- prefer_const_constructors
主要代码文件详解
1. lib/main.dart – 应用入口点
import 'package:flutter/material.dart';
import 'app.dart';
void main() {
runApp(const MyApp());
}
// 或者带有配置的启动
void main() {
// 确保Widgets绑定初始化
WidgetsFlutterBinding.ensureInitialized();
// 初始化服务
setupLocator();
// 设置屏幕方向
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
]);
runApp(const MyApp());
}
2. lib/app.dart – 应用根组件
分层架构
lib/
├── data/ # 数据层
│ ├── models/ # 数据模型
│ ├── repositories/ # 数据仓库
│ └── datasources/ # 数据源(本地、网络)
├── domain/ # 领域层
│ ├── entities/ # 业务实体
│ ├── repositories/ # 抽象仓库接口
│ └── usecases/ # 用例
└── presentation/ # 表现层
├── screens/ # 页面
├── widgets/ # 组件
├── providers/ # 状态管理
└── utils/ # 工具类
更多推荐
所有评论(0)