Flutter要运行在所有能显示的设备上。
密歇根大学人机交互博士、Google Flutter团队高级研究员 董韬 如是说。
《Flutter:最新进展和未来展望》的学习笔记。
今天的学习内容,并不高深,都是一些基础知识,但是学到了几个非常实用的语法,也促使我要好的看一下Dart的各个版本更新内容文档了!
Flutter基本介绍和在中国的发展状况
- 什么是Flutter
- 18年 Flutter Live 发布1.0版本
- 特点
- 美观、快速、高效、开放
- 非常受开发者欢迎
- 在中国的发展
- 闲鱼的一位开发者提交的PR数量超过了Google专职Flutter开发的工程师的个人提交数量 (震惊)
- Flutter多平台:Mobile、Web、Desktop、Enbedded
多平台远景:Flutter for Web
- 代码库已合并到Flutter主SDK中
- SDK
- 和移动端最大条件的复用 Flutter framework in Dart(widgets, gestures, etc)
- Flutter Web engine 类似原生的 C++ Flutter engine
- Flutter Web engine
- HTML + CSS 来绘制图形
- 利用浏览器自身的性能优化
- 不担心尺寸兼容
- Canvas 2D 备用绘图选项
- 性能和缩放问题
- 未来计划 CSS Paint API 代替 Canvas以提高性能,不过浏览器支持不太好
- 依赖Flutter框架
- Dart2js compiler
- 在Google应用广泛 :Google广告业务体系等
- 高效、成熟
- HTML + CSS 来绘制图形
- 应用场景
- 作为移动应用的配套程序
- 先体验后下载
- 覆盖更多用户
- 使用桌面端的输入输出需求
- 高度交互元素复用
- 性能
- 桌面浏览器 60FPS以上
- 移动浏览器
- 一般手机 60FPS
- 差手机 达不到60FPS
- 开发体验
- Widget API 和移动端一致
- 局限和后续研发
- 合并到Flutter SDK
- 保证所有widgets正确渲染
- 性能优化
- 完善对浏览器无障碍功能的支持
- 添加插件系统来使用现有的JS库
- 加强开发调试工具的可用性
生态建设:与社区共建的状态管理解决方案
开发体验:“UI as Code” - 编程语言和IDE的改进
-
Dart代码编写Flutter UI的优点和改进空间
-
声明式UI
-
改进空间
- 复杂UI逻辑会使用命令式语法,打破代码结构和UI视觉结构的一致性
- 死亡嵌套!
-
-
新语法
-
Controll Flow Elements in Collections
在集合中使用
if和for来操作UI -
Spread Operator‘…’ - 展开操作符
构建集合时,可以更方便的将小集合动态组合起来,非常实用
-
-
IDE优化
- UI Guides
- child 和children的缩写优化探索
-
以往的改进
- new关键字非必须
- UI as Code
- UI Guides
Flutter/Dart近期展望
- 改进Flutter和原生混编的机制和开发体验(add-to-app)
- Dart语言演进 non-nullable, extension methods, Dart runtime增加FFI(C/C++ interop)
- 更容易理解的报错信息
- Flutter Web性能优化,Flutter Desktop功能完善,FLutter路线图