一、基础入门
1.1 Flutter 简介与架构原理
- Flutter 的三层架构
- Framework 层(Dart)
- Engine 层(C++) :Skia 渲染引擎、Dart 运行时(AOT & JIT)
- Embedder 层(平台特定实现)
- Dart 与 Flutter 的关系
- Skia 渲染引擎原理
1.2 环境搭建与项目结构
- Flutter SDK 安装与配置
- 项目目录结构解析
- 常用命令与工具
flutter doctor/build/run
1.3 Dart 核心语言特性
- 空安全机制(Null-Safety)
- 异步编程
Future/Stream/async-await
- 面向对象
class、mixin、extension- 抽象类与接口
- 集合与泛型
List、Map、Set- 泛型约束与使用
- 高级特性
- Extension Methods
- Cascade Notation (
..) - Factory 构造函数
二、UI 组件与布局系统
2.1 Widget 基础
StatelessWidget与StatefulWidget- Widget 树与 Element 树
build()机制Key的作用(GlobalKey、ValueKey等)
- Widget 的生命周期与
build原理 - 组合优于继承
- Widget 组合模式
- 自定义 Widget 最佳实践
2.2 布局系统
- 基础布局 Widget
Container、Row、Column、Stack、Expanded、Flexible
- 高级布局
CustomMultiChildLayout、Flow、Table、GridView
- 约束系统(Constraints)
BoxConstraints、LayoutBuilder
- 自适应布局
MediaQuery、OrientationBuilderLayoutBuildervsMediaQuery
- 约束(Constraints)与渲染(
RenderObject)机制
2.3 组件复用与组合
- 组合与封装组件
- Slot 插槽设计模式(
children/builder)
2.4 绘制与动画
Canvas绘制与CustomPainter- 隐式动画
AnimatedContainer、AnimatedOpacity
- 显式动画
AnimationController、Tween、Curve
- 过渡动画
Hero、PageRouteBuilderAnimatedBuilder、AnimatedWidget
- 高级动画
- Flare / Rive
- Lottie 动画集成
三、状态管理(State Management)
3.1 状态管理概述
- 局部状态 vs 全局状态
3.2 原生方案
setState:局部状态管理InheritedWidget进阶:跨组件共享数据- Provider 体系
ChangeNotifier+ProviderConsumer、Selector
3.3 第三方框架
- GetX
Get.put、Get.findObx响应式
- Riverpod(推荐)
ProviderScope@riverpod注解StateNotifier、AsyncNotifier
- Bloc / Cubit
BlocProvider、BlocBuilder- 事件驱动架构
- Redux / FishRedux
Store、Middleware
3.4 状态同步与生命周期管理
- 控制器封装(Controller)
- 生命周期事件(
onInit/onClose)
四、路由与导航
4.1 Navigator 与 Route
- Navigator 1.0
push、pop、pushNamed
- Navigator 2.0
Router、RouteInformationParser- 声明式导航
MaterialPageRoute与自定义Route- 路由栈管理
4.2 命名路由与参数传递
4.3 第三方路由
- GoRouter(推荐)
AutoRoute、Beamer- GetX 路由管理
4.4 动态与嵌套路由
WebView/Tab/BottomNavigationBar场景- 深链(Deep Linking)
Uni LinksApp Links
五、网络与数据
5.1 HTTP 与网络请求
http包- Dio
- 拦截器、取消请求
- 拦截器与全局异常处理
5.2 JSON 与序列化
json_serializablefreezed- 手动 vs 自动序列化对比
5.3 本地存储
shared_preferenceshive、sqfliteisar(高性能 NoSQL)- 文件读写与缓存策略
六、主题与国际化(i18n)
6.1 主题与暗色模式
ThemeData动态切换- 自定义颜色与字体系统
6.2 国际化
flutter_localizationsMaterialLocalizations
- arb 文件
intl、flutter_gen
Flutter Intl/easy_localization- 动态语言切换
七、性能优化
7.1 Flutter 性能模型
- Frame 渲染流程
- Build → Layout → Paint → Composite
- Jank 与帧丢失原因分析
7.2 性能调试工具
- Flutter DevTools / Timeline
- Performance Overlay
7.3 优化实践
- 渲染性能
const构造函数RepaintBoundary
- 布局性能
- 避免频繁
build Sliver系列优化长列表
- 避免频繁
- 内存管理
Image.cache、dispose()
- 图片与缓存优化
- 异步与内存优化
八、工程化与模块化
8.1 模块化与依赖管理
- 多模块 Flutter 工程结构
- 包管理与私有仓库(
pub.dev)
8.2 配置管理
- 环境变量与多环境打包(
dev/prod)--dart-define
- Flavor 配置(iOS Scheme / Android Product Flavors)
8.3 日志与调试
logger/sentry集成- 错误上报与异常捕获
九、平台交互(Platform Integration)
9.1 平台通道(Platform Channel)
- Flutter ↔ Android ↔ iOS 通信机制
MethodChannel/EventChannel/BasicMessageChannel
9.2 原生插件开发
- 自定义插件(
flutter_plugin) - 使用已有插件原理解析
Pigeon(类型安全通信)
9.3 多端支持
- 桌面支持
- Flutter Desktop(Windows / macOS / Linux)
- Window Manager、菜单栏、托盘
- Flutter Web
- 渲染与适配
- 平台视图
AndroidView、UiKitView
十、测试与发布
10.1 单元测试与组件测试
test包flutter_test框架find.byType、pumpWidget
mock与依赖注入测试
10.2 集成测试(Integration Test)
integration_test包- 自动化 UI 测试
- CI/CD 集成
- Flutter Driver(旧)
10.3 构建与发布
- 构建命令
flutter build apk --releaseflutter build ios --releaseflutter build web
- 代码混淆与优化
--obfuscate --split-debug-info
- App Bundle(AAB)
- 动态交付
- 打包(
apk/ipa/exe/web) - 签名与渠道管理
十一、进阶与原理解析
11.1 Flutter 渲染原理
LayerTree与合成流程- Engine 与 Skia 工作机制
11.2 Dart VM 与 AOT/JIT 编译机制
11.3 自定义 RenderObject 与绘制优化
11.4 Flutter 动画与物理模拟系统
11.5 高级主题
- Isolate 与计算
compute()函数Isolate.spawn
- FFI(Foreign Function Interface)
dart:ffi调用 C 库
十二、实战项目与最佳实践
12.1 架构设计模式
- MVC / MVVM / Clean Architecture
12.2 大型项目结构实践
- 分层架构(
data/domain/ui) - 依赖注入与全局单例
12.3 多端统一与适配
- 响应式布局与屏幕适配(
flutter_screenutil) - 多语言、多主题支持
12.4 插件生态与工具链
- 常用第三方库精选
- 代码生成
build_runnerjson_serializable、freezed
- 自动化与构建工具
melos
- IDE 支持
- VS Code + Dart/Flutter 插件
- Android Studio / IntelliJ