Flutter核心技术目录
一、基础入门
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、OrientationBuilder
-LayoutBuildervsMediaQuery - 约束(Constraints)与渲染(
RenderObject)机制
2.3 组件复用与组合
- 组合与封装组件
- Slot 插槽设计模式(
children/builder)
2.4 绘制与动画
Canvas绘制与CustomPainter- 隐式动画
-AnimatedContainer、AnimatedOpacity - 显式动画
-AnimationController、Tween、Curve - 过渡动画
-Hero、PageRouteBuilder
-AnimatedBuilder、AnimatedWidget - 高级动画
- Flare / Rive
- Lottie 动画集成
三、状态管理(State Management)
3.1 状态管理概述
- 局部状态 vs 全局状态
3.2 原生方案
setState:局部状态管理InheritedWidget进阶:跨组件共享数据- Provider 体系
-ChangeNotifier+Provider
-Consumer、Selector
3.3 第三方框架
- GetX
-Get.put、Get.find
-Obx响应式 - 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 Links
-App 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_localizations
-MaterialLocalizations- 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、pumpWidgetmock与依赖注入测试
10.2 集成测试(Integration Test)
integration_test包- 自动化 UI 测试
- CI/CD 集成
- Flutter Driver(旧)
10.3 构建与发布
- 构建命令
-flutter build apk --release
-flutter build ios --release
-flutter 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_runner
-json_serializable、freezed - 自动化与构建工具
-melos - IDE 支持
- VS Code + Dart/Flutter 插件
- Android Studio / IntelliJ
