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
    • LayoutBuilder vs MediaQuery
  • 约束(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)

四、路由与导航

  • 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_serializable
  • freezed
  • 手动 vs 自动序列化对比

5.3 本地存储

  • shared_preferences
  • hive、sqflite
  • isar(高性能 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、pumpWidget
  • mock 与依赖注入测试

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
相关推荐
陆断枫13 小时前
Flutter 3.47 动画引擎盘点:Impeller 全平台,和那些"新特性"
flutter
程序员老刘14 小时前
Flet 1.0 思路很好,可惜来晚了
flutter·ai编程·客户端
m0_7381858220 小时前
Flutter 鸿蒙化实战:qr_code_scanner_plus 适配 OpenHarmony,二维码扫描
flutter·华为·harmonyos·鸿蒙
恋猫de小郭20 小时前
Flutter + EmbeddingGemma 2,谷歌发布完全端侧的 AI Edge Foresight
android·前端·flutter
君赏2 天前
基于 FlutterPatch 快速接入 Flutter 热更新
flutter
律宏阔2 天前
Dart FFI 内存管理:用 using + Arena 替代嵌套 try-finally
前端·flutter
律宏阔2 天前
Flutter 调用 Go:从 c-shared + ffigen 到 @Native + Native Assets 踩坑记录
前端·flutter
律宏阔2 天前
Dart FFI 回调无法使用局部变量?使用 NativeCallable.isolateLocal
前端·flutter
天空之城--2 天前
Android一周动态:AI编程、Compose与车载生态新信号
android·flutter
码林鼠2 天前
Flutter之Widget/State 入门文档
flutter