最后核验: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 发布流程。

“中国大陆优先”不等于只写国产服务。选择依据仍是可用性、维护状态、隐私与合规要求、三端兼容性和可验证结果。

课程结构

第一部分:先把应用跑起来

  1. Flutter 是什么:一份代码能共享什么,不能共享什么
  2. 三端支持现状:iOS、Android 与 Flutter-OH 的真实边界
  3. Mac 开发环境:Flutter、Xcode、Simulator 和原生依赖工具
  4. 第一个 iOS 应用:运行、热重载、日志与调试

第二部分:补齐开发环境

  1. VS Code 的 Flutter 开发配置、运行与断点调试
  2. Android Studio、Android SDK、模拟器与构建流程差异
  3. DevEco Studio、Flutter-OH 与大陆下载环境
  4. 两条 SDK 轨道:上游 Flutter 与 Flutter-OH 如何切换
  5. 认识 Flutter 项目:lib、ios、android、ohos 和 pubspec.yaml

第三部分:只学够用的 Dart

  1. 变量、类型、空安全与不可变数据
  2. 函数、类、构造函数和命名参数
  3. 集合、模式匹配与数据转换
  4. Future、async、await 与异步错误
  5. Stream:什么时候需要,什么时候不需要
  6. 用测试验证 Dart 业务逻辑

第四部分:理解 Flutter UI

  1. Widget、Element、RenderObject:建立正确心智模型
  2. 布局约束:为什么会溢出、为什么尺寸不听话
  3. 列表、滚动、懒加载与 Key
  4. iOS 风格页面:CupertinoApp、导航栏和 Tab
  5. 表单、焦点、键盘和输入校验
  6. 动画、转场与 Hero
  7. 深色模式、动态字体、无障碍和本地化

第五部分:从页面拼装进入应用开发

  1. 状态到底是什么:局部状态与应用状态
  2. 状态管理选型:先理解问题,再选择工具
  3. 路由、页面参数、返回结果和 Deep Link
  4. 数据模型、Repository 与业务层
  5. 本地持久化和数据迁移边界
  6. 网络请求、国内外服务可达性、序列化与错误处理
  7. 加载、空数据、失败与重试状态

第六部分:三端适配专题

  1. 平台自适应架构:共享内容,替换外壳和交互
  2. iOS 体验精修:返回手势、安全区、Tab、弹窗和触觉
  3. Android 适配:系统返回、Material 行为和权限
  4. 鸿蒙适配:ohos 工程、构建流程和 ArkTS 桥接
  5. 插件与服务兼容矩阵:三端支持、GMS 依赖和自建适配
  6. Platform Channel:Swift、Kotlin、ArkTS 三端最小实现

第七部分:质量与工程化

  1. 单元测试、Widget 测试和关键流程测试
  2. 性能分析:构建、重绘、列表和图片
  3. 三端构建、签名、国内分发与发布前检查

贯穿项目:Spark

Spark 是一个离线优先的灵感与任务管理应用。它提供足够完整的真实场景,又不会让后端建设抢走 Flutter 教学重点。

功能按课程推进:

  1. 静态列表和详情页面。
  2. 新建、编辑、删除与完成状态。
  3. 标签、搜索和筛选。
  4. 本地持久化。
  5. 网络同步与错误恢复。
  6. 图片附件、本地通知和 Deep Link。
  7. 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 级:只支持部分平台,需要能力降级或自行适配。

单篇模板

每篇正文固定包含:

  1. 本篇结论。
  2. 学习目标。
  3. 问题场景与概念解释。
  4. 最小可运行步骤。
  5. 预期结果。
  6. 三端差异。
  7. 必要的网络、账号与服务前提,写入对应操作步骤;没有相关前提时不单列固定专节。
  8. 常见问题。
  9. 完成检查。
  10. 一手来源和核验日期。

主要来源