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
相关推荐
程序员老刘7 分钟前
一杯奶茶钱,PicGo + 阿里云 OSS 搭建永久稳定的个人图床
flutter·markdown
奋斗的小青年!!3 小时前
OpenHarmony Flutter 拖拽排序组件性能优化与跨平台适配指南
flutter·harmonyos·鸿蒙
小雨下雨的雨5 小时前
Flutter 框架跨平台鸿蒙开发 —— Stack 控件之三维层叠艺术
flutter·华为·harmonyos
行者966 小时前
OpenHarmony平台Flutter手风琴菜单组件的跨平台适配实践
flutter·harmonyos·鸿蒙
小雨下雨的雨7 小时前
Flutter 框架跨平台鸿蒙开发 —— Flex 控件之响应式弹性布局
flutter·ui·华为·harmonyos·鸿蒙系统
cn_mengbei7 小时前
Flutter for OpenHarmony 实战:CheckboxListTile 复选框列表项详解
flutter
cn_mengbei7 小时前
Flutter for OpenHarmony 实战:Switch 开关按钮详解
flutter
奋斗的小青年!!8 小时前
OpenHarmony Flutter实战:打造高性能订单确认流程步骤条
flutter·harmonyos·鸿蒙
Coder_Boy_8 小时前
Flutter基础介绍-跨平台移动应用开发框架
spring boot·flutter
cn_mengbei8 小时前
Flutter for OpenHarmony 实战:Slider 滑块控件详解
flutter