章节摘要:动工之前先看地。本章回答一个问题:把一套 Dart 代码送上多个平台,这条路究竟靠什么走通。我们依次勘察三块地基——Flutter 在跨平台方案版图里的位置与它的真实代价、它"自绘界面"的落地原理(代码变成各端产物后到底发生了什么)、以及写这些代码所需的 Dart 语言切片和工具链。读完本章,你会立起一个能热重载的工程,并且清楚接下来每一章的代码会在哪些端上以什么形态运行。
读完本章,你应当能够:
一句话立住本章:跨平台框架的胜负手不在"能不能跑",而在"落地时省了多少事、留了多少坑"——勘察就是为了把坑提前看清楚。
01-1 为什么是 Flutter:先算三份代码、三批人马的真实成本,再看 Flutter 用自绘引擎换来了什么、付出了什么。本节给出版图与判断标准,是全书立论的起点。
01-2 落地原理:Dart 如何画成各端界面:拆开"一套代码多端运行"这句话——同一份 Dart 在 Android 上是 arm 机器码、在 Web 上是 JS 与画布,本节讲清这条转化链,以及热重载为什么因此成为可能。
01-3 Dart 最小核心与工具链就位:不为 Dart 学 Dart,只切出写业务必需的语言切片;然后立工程、装工具、跑通热重载,「轻记账」项目正式开工。
三节是一条"先决策、再懂理、后动手"的链:选型(01-1)决定了要不要往下走,原理(01-2)决定了遇到问题往哪查,工具(01-3)决定了能不能开工。跳过前两节直接写代码也能跑,但后面章节里"为什么掉帧""为什么产物这么大"的答案都埋在这里。
以下条目均可自测,答不出的就是没读透的位置:
[01-1 选型勘察] ──决定了──> [要不要用 Flutter] │ │ v v [01-2 落地原理] ──解释了──> [各端产物形态与性能直觉] │ v [01-3 语言与工具] ──产出──> [可热重载的轻记账工程]
前置:任意一门面向对象语言的基础(变量、类、函数、异步概念即可),不需要 Dart 经验;做过 Android 或 iOS 更好,但不做也完全能跟上。本章不假设你有移动上架经验。
阅读本章的时间分配建议:01-1 偏决策,适合与技术负责人一起读并当场过一遍选型清单;01-2 偏机制,第一遍只需建立"产物形态与宿主"的画面,细节(如着色器编译)可以在第 2 章遇到对应现象时回读;01-3 偏动手,务必边读边敲,热重载的体感比文字描述重要得多。
延伸:本章的"自绘"结论会在第 2 章展开成完整的渲染管线;01-3 立起的工程将在第 3 章长出第一屏界面;工具链里的 DevTools 与 flutter analyze 会在第 6 章的性能体检和测试防线里反复出场。勘察阶段的判断标准,也将在第 7 章 Web 与桌面落地时被再次检验——移动端的结论到了别的端未必成立,届时你会看到哪些成立、哪些要推翻。