最后核验:2026-08-30
课程目标
读者完成课程后,应能独立开发一个具有 iOS 原生体验的 Flutter 应用,理解同一份核心业务代码面向 Android 时的工具链与平台差异,并使用 Flutter-OH 适配 HarmonyOS NEXT/OpenHarmony。
这里的“三端覆盖”有明确边界:
- iOS:每章运行,最终完成 Archive。
- Android:作为 Flutter 官方支持的副平台,在工具链、首次运行、平台适配和发布构建等阶段门完成实际验证;不要求像 iOS 一样逐章重复截图,但未经运行或构建的能力不得写成已经通过。
- 鸿蒙:使用 Flutter-OH 完成 HAP 构建与核心流程真机验证。
- 共享层:Dart 业务逻辑只维护一份,并在两条 SDK 轨道上通过测试。
默认学习环境
教程默认读者位于中国大陆,并据此设计主路径:
- 不假设读者具有稳定的国际网络访问条件。
- 不假设设备提供 Google Play 服务。
- 不假设读者拥有境外手机号、境外支付方式或海外开发者账号。
- Flutter SDK、Dart 包和原生构建产物必须提供可信下载来源与网络排查方法。
- 地图、推送、登录、支付、统计和云服务先验证大陆可用方案,再说明海外方案。
- 应用分发分别讨论 App Store 中国大陆区、国内 Android 渠道与华为生态,不用 Google Play 代表全部 Android 发布流程。
“中国大陆优先”不等于只写国产服务。选择依据仍是可用性、维护状态、隐私与合规要求、三端兼容性和可验证结果。
课程结构
第一部分:先把应用跑起来
- Flutter 是什么:一份代码能共享什么,不能共享什么
- 三端支持现状:iOS、Android 与 Flutter-OH 的真实边界
- Mac 开发环境:Flutter、Xcode、Simulator 和原生依赖工具
- 第一个 iOS 应用:运行、热重载、日志与调试
第二部分:补齐开发环境
- VS Code 的 Flutter 开发配置、运行与断点调试
- Android Studio、Android SDK、模拟器与构建流程差异
- DevEco Studio、Flutter-OH 与大陆下载环境
- 两条 SDK 轨道:上游 Flutter 与 Flutter-OH 如何切换
- 认识 Flutter 项目:
lib、ios、android、ohos和pubspec.yaml
第三部分:只学够用的 Dart
- 变量、类型、空安全与不可变数据
- 函数、类、构造函数和命名参数
- 集合、模式匹配与数据转换
Future、async、await与异步错误Stream:什么时候需要,什么时候不需要- 用测试验证 Dart 业务逻辑
第四部分:理解 Flutter UI
- Widget、Element、RenderObject:建立正确心智模型
- 布局约束:为什么会溢出、为什么尺寸不听话
- 列表、滚动、懒加载与 Key
- iOS 风格页面:
CupertinoApp、导航栏和 Tab - 表单、焦点、键盘和输入校验
- 动画、转场与 Hero
- 深色模式、动态字体、无障碍和本地化
第五部分:从页面拼装进入应用开发
- 状态到底是什么:局部状态与应用状态
- 状态管理选型:先理解问题,再选择工具
- 路由、页面参数、返回结果和 Deep Link
- 数据模型、Repository 与业务层
- 本地持久化和数据迁移边界
- 网络请求、国内外服务可达性、序列化与错误处理
- 加载、空数据、失败与重试状态
第六部分:三端适配专题
- 平台自适应架构:共享内容,替换外壳和交互
- iOS 体验精修:返回手势、安全区、Tab、弹窗和触觉
- Android 适配:系统返回、Material 行为和权限
- 鸿蒙适配:
ohos工程、构建流程和 ArkTS 桥接 - 插件与服务兼容矩阵:三端支持、GMS 依赖和自建适配
- Platform Channel:Swift、Kotlin、ArkTS 三端最小实现
第七部分:质量与工程化
- 单元测试、Widget 测试和关键流程测试
- 性能分析:构建、重绘、列表和图片
- 三端构建、签名、国内分发与发布前检查
贯穿项目:Spark
Spark 是一个离线优先的灵感与任务管理应用。它提供足够完整的真实场景,又不会让后端建设抢走 Flutter 教学重点。
功能按课程推进:
- 静态列表和详情页面。
- 新建、编辑、删除与完成状态。
- 标签、搜索和筛选。
- 本地持久化。
- 网络同步与错误恢复。
- 图片附件、本地通知和 Deep Link。
- iOS 体验精修及 Android、鸿蒙适配。
双 SDK 策略
Track A:Flutter upstream
Targets:iOS + Android
Track B:Flutter-OH
Target:HarmonyOS NEXT / OpenHarmony
Flutter 官方支持列表包含 iOS 与 Android,不包含 OpenHarmony。Flutter-OH 由 CPF-Flutter 维护,并按独立节奏适配上游版本。因此,课程使用共享源码和两套工具链,而不是假设一套 SDK 同时负责三端。
依赖按三级管理:
- A 级:纯 Dart 包,优先使用。
- B 级:iOS 与 OpenHarmony 已实际验证,并有插件维护方的一手资料说明 Android 支持;Android 不记为实际验证通过。
- C 级:只支持部分平台,需要能力降级或自行适配。
单篇模板
每篇正文固定包含:
- 本篇结论。
- 学习目标。
- 问题场景与概念解释。
- 最小可运行步骤。
- 预期结果。
- 三端差异。
- 必要的网络、账号与服务前提,写入对应操作步骤;没有相关前提时不单列固定专节。
- 常见问题。
- 完成检查。
- 一手来源和核验日期。