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

四、路由与导航

4.1 Navigator 与 Route

  • 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
posted @ 2025-12-10 11:11  gccbuaa  阅读(10)  评论(0)    收藏  举报