我们的宗旨是,做最好的移动软件开发方案。
小学没毕业就出国了的 Google Flutter 团队高级工程师 于潇 如是说。
学习《使用 Flutter 快速构建集美观与高性能于一体的移动应用》笔记。
学习地址:https://time.geekbang.org/dailylesson/detail/100016434
当前移动软件开发中的阻碍
- 开发太贵
- 开发太慢
- 高质量太难
- 工程资源太难共享
Flutter 的研发设计路线
- 跨平台
- 高开发效率
- 简单地表达出 UI 设计师期望的效果
- 不牺牲原生的运行速度
Flutter 的性能与特点
- Hot Reload(热重载)
作为一名 Android 开发人员,非常能体会到,等待代码编译的过程是多么让人无奈…… 想象一下,现在是晚上九点钟,今晚必须上线,测试小伙伴坐在你旁边,等待着你修复最后一个 Bug,你的 Wife 还在不停地 Call 你回家恰饭,你飞速地浏览代码、定位问题、思考逻辑、敲击键盘、完成修改、点击 Run,一气呵成,接下来就是长达8分钟的等待…… 编译完成后,测试小伙伴飞速复测,发现还是有问题,继续修改…… 这一来一回,十多分钟过去了,修改 bug 的时间成本太高了!
保守估计,用上热重载功能的话,能够提高原生客户端开发效率10%以上。
- 声明式+响应式开发模式
具体场景:原生开发中,很多运行时异常不做特殊处理的话,会直接 Crash 掉,我们需要分析 Crash log,修改代码,再重新编译运行来测试;而有了这个功能之后,异常只影响错误的部分,修改掉错误代码后,通过 Hot Reload 功能,快速应用到已运行的程序中,既不会 Crash,又不需要重新编译运行,这是 APP 开发前所未有的体验!
- 组合性 API
“万物皆 Widget”,提供了一套强大的可特制设计的 UI 系统
内置 Material 和 Cupertino 风格设计组件
直接 GPU 渲染
系统架构
其它跨平台方案架构性能链路

原生平台本身的性能很好,但是跨平台代码和原生交互时,链路很长,性能很差。
Flutter 架构性能链路

Flutter 的代码执行链路非常简单,执行效率高。
性能优化 - 布局

由于 Flutter 的单个 Element 是比较简单的,可以从上到下,单次布局,加快运行速度。
Flutter 的使用体验
闲鱼移动团队分享 Flutter 的使用体验,实现了 Flutter 和原生 APP 的混合开发。
社区支持
- Github:https://github.com/flutter/flutter
- Flutter 官网: https://flutter.dev
- Flutter 国内社区: https://flutter.cn
版本计划
- Flutter : Release 1.12
- Flutter Web : Beta 阶段
- Flutter Desktop : Dev 阶段
由于本视频是2018年 GMTC 的,时间比较久了,直到现在(2020年2月10日),Flutter 又有了长足的发展,项目应用也越来越成熟,希望感兴趣的同学多多关注。
2018年 GMTC 视频 PPT 下载:https://con.infoq.cn/archives/?conf=gmtc