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
  • 面向对象
    • classmixinextension
    • 抽象类与接口
  • 集合与泛型
    • ListMapSet
    • 泛型约束与使用
  • 高级特性
    • Extension Methods
    • Cascade Notation (..)
    • Factory 构造函数

二、UI 组件与布局系统

2.1 Widget 基础

  • StatelessWidgetStatefulWidget
  • Widget 树与 Element 树
    • build() 机制
    • Key 的作用(GlobalKeyValueKey 等)
  • Widget 的生命周期与 build 原理
  • 组合优于继承
    • Widget 组合模式
    • 自定义 Widget 最佳实践

2.2 布局系统

  • 基础布局 Widget
    • ContainerRowColumnStackExpandedFlexible
  • 高级布局
    • CustomMultiChildLayoutFlowTableGridView
  • 约束系统(Constraints)
    • BoxConstraintsLayoutBuilder
  • 自适应布局
    • MediaQueryOrientationBuilder
    • LayoutBuilder vs MediaQuery
  • 约束(Constraints)与渲染(RenderObject)机制

2.3 组件复用与组合

  • 组合与封装组件
  • Slot 插槽设计模式(children / builder

2.4 绘制与动画

  • Canvas 绘制与 CustomPainter
  • 隐式动画
    • AnimatedContainerAnimatedOpacity
  • 显式动画
    • AnimationControllerTweenCurve
  • 过渡动画
    • HeroPageRouteBuilder
    • AnimatedBuilderAnimatedWidget
  • 高级动画
    • Flare / Rive
    • Lottie 动画集成

三、状态管理(State Management)

3.1 状态管理概述

  • 局部状态 vs 全局状态

3.2 原生方案

  • setState:局部状态管理
  • InheritedWidget 进阶:跨组件共享数据
  • Provider 体系
    • ChangeNotifier + Provider
    • ConsumerSelector

3.3 第三方框架

  • GetX
    • Get.putGet.find
    • Obx 响应式
  • Riverpod(推荐)
    • ProviderScope
    • @riverpod 注解
    • StateNotifierAsyncNotifier
  • Bloc / Cubit
    • BlocProviderBlocBuilder
    • 事件驱动架构
  • Redux / FishRedux
    • StoreMiddleware

3.4 状态同步与生命周期管理

  • 控制器封装(Controller)
  • 生命周期事件(onInit / onClose

四、路由与导航

  • Navigator 1.0
    • pushpoppushNamed
  • Navigator 2.0
    • RouterRouteInformationParser
    • 声明式导航
  • MaterialPageRoute 与自定义 Route
  • 路由栈管理

4.2 命名路由与参数传递

4.3 第三方路由

  • GoRouter(推荐)
  • AutoRouteBeamer
  • 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
  • hivesqflite
  • isar(高性能 NoSQL)
  • 文件读写与缓存策略

六、主题与国际化(i18n)

6.1 主题与暗色模式

  • ThemeData 动态切换
  • 自定义颜色与字体系统

6.2 国际化

  • flutter_localizations
    • MaterialLocalizations
  • arb 文件
    • intlflutter_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.cachedispose()
  • 图片与缓存优化
  • 异步与内存优化

八、工程化与模块化

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
    • 渲染与适配
  • 平台视图
    • AndroidViewUiKitView

十、测试与发布

10.1 单元测试与组件测试

  • test
  • flutter_test 框架
    • find.byTypepumpWidget
  • 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_serializablefreezed
  • 自动化与构建工具
    • melos
  • IDE 支持
    • VS Code + Dart/Flutter 插件
    • Android Studio / IntelliJ
相关推荐
apigfly4 小时前
Flutter,Compose,Web 在Android平台上从布局到屏幕的机制探究
android·flutter·webview
勇气要爆发7 小时前
【第二阶段-Flutter入门】第四章:常用布局Widget
flutter
QuantumLeap丶7 小时前
《Flutter全栈开发实战指南:从零到高级》- 13 -状态管理GetX
android·flutter·ios·前端框架
woshijunjunstudy10 小时前
Flutter .obx 与 Rxn<T>的区别
flutter·getx
初遇你时动了情15 小时前
flutter vscode 终端无法使用fvm 版本切换、项目运行
ide·vscode·flutter
一叶难遮天1 天前
Dart语言之面向对象
flutter·面向对象·dart·方法·mixins·泛型·抽象类
汤面不加鱼丸1 天前
flutter实践:DropdownButton2使用示例
flutter
心随雨下1 天前
Flutter Material 3设计语言详解
javascript·flutter·设计语言
猫林老师1 天前
Flutter for HarmonyOS开发指南(六):测试、调试与质量保障体系
flutter·华为·harmonyos