一、新年寄语
又到年底了,不知道你们有没有觉得,自从过了某个年龄以后,时间好像就开始过的越来越快了。
不知不觉,新冠疫情发生已经有 2 年多了,从疫情最开始的人心惶惶,再到我们国人万众一心抗疫,这场苦难好像无形中也增加了民族的凝聚力。
如果可以许下一个愿望,希望在新的 2022,我们可以早日战胜新冠。
二、引言
全职使用 Flutter 开发也有 2 年多的时间了,从 Flutter 发布之初,我就一直在关注,但那时主要在用 React Native,就觉得同样是跨平台技术,没有必要在为了解决同一个问题上,再多学一个效果差不多的工具。 因为当时主要还是观望的心态,再加上在 RN 上已经有一些技术积累,所以对学习 Flutter 的兴趣不是很大。
但是 2019 年,因为一个项目的契机,我第一次在线上的项目里用 Flutter 开发,那个时候 Flutter 1.0 已经正式发布,也就是从那个项目以后,我后面的项目就开始陆续切换到 Flutter 了。
先容我说一句,Flutter YYDS!
虽然它现在也有很多不足,比如 debug 模式在 vivo 某些机型会白屏,比如 release 模式下冷启动会有一定概率白屏(黑屏)等等,但是光是稳定的 HotReload 就足以让人觉得它瑕不掩瑜。
回顾一下过去这一年的 Flutter 发展,无论是对自己以后的学习,还是对想要学习 Flutter 的朋友,应该都会有一些帮助。
三、版本历史
版本发布频率是一个框架活跃度的重要体现之一,所以我们先来回顾一下,2021 年,Flutter 的版本发布历史情况:
2021
这一年,
Flutter 共更新74
个版本
平均6.17
个/月,1.54
个/周
稳定版18
个,平均1.5
个/月,频率蛮高
较重要的有4
个,分别是:2.0
,2.2
,2.5
,2.8
21 年的第一个版本是1.25.0-8.2.pre
截止发文,最后一个版本是2.9.0-0.1.pre
。
2
月份发布次数最多,共11
个版本。
11
月发布最少,为2
个版本。
从年初的 1.22.6 到年底的 2.8.0,不得不说 Flutter 的版本推进的很快。照这个推进的速度,明年应该至少能上到 4.0 版本。
四、重大更新
虽然今年版本发布了 70 多个,稳定版也有 10 多个,但实际上比较重要的版本也就 4 个,其他版本基本都是在修修补补,所以我们就主要来看下比较重要的这几个版本。
2.0.0
Flutter for Web
稳定版发布,已高度可用- 引入
Null Safety
空安全- 加入多个
Cupertino
风格组件- 更多设备的支持:桌面,平板,折叠设备等
- 新增 Widget:
Autocomplete
和ScaffoldMessenger
- 与原生混合开发支持添加多个 Flutter 页面,并显著降低内存占用。参考:《 多个 Flutter 页面或视图 》
Flutter fix
命令的引入,可以快速帮助修复问题- 更强大的
Flutter DevTools
工具DartPad
升级到支持Flutter 2
2.2.0
Dart 2.13
版本支持Flutter Web
加强了调试和无障碍支持- 提高
iOS
页面转场动画,缩短iOS
应用安装时间- 更完善的自适应应用的支持,参考: 《 构建自适应的应用 》
- 更多
Material
图标,总数突破7000
个- 优化桌面端在文本输入时的体验,提供更符合桌面端的操作逻辑
- 优化滚动条在桌面端的表现
TextSpan
支持mouseCursor
,还支持onEnter
和onExit
- 预览版:
Android
支持延迟加载组件,可显著减小安装包。更多>> 《 延迟加载组件 》
2.5.0
Dart 2.14
版本支持- 改进着色器,内存回收,优化
iOS
性能表现- 降低
Dart
与原生之间通信的延迟,最高达50%
- 支持
M1
芯片构建的应用直接在ARM
架构的iOS
模拟器上运行flutter create
命令创建项目会自动加入flutter lints
支持- 解决
Android
全屏模式的一些问题,就是沉浸效果那些- 加入
Material You
设计规范的支持- 优化滚动事件的触发通知,桌面端调整窗口大小时,即使不滚动,也可以收到通知
ScaffoldMessenger
增加了Material
横幅的支持- 增加一个新的创建项目模板:
flutter create -t skeleton my_app
- 帮助
pub
插件开发者提高效率的工具:【 查看>> Pigeon 1.0 】- 推荐使用
fluttercommunity.dev
社区维护的plus
组件代替官方组件,【 访问社区>> 】
2.8.0
- 优化了启动性能,尤其在低端设备上的表现
- 优化
Android
设备上的内存占用Flutter Devtools
加入一些新功能PlatformView for Web
,显著提升 Web 性能webview_flutter 3.0
发布了大量更新- 更好,更方便的使用
Firebase
Flutter for Desktop
加了对国际化过本地化的支持- 移除
flutter sdk
的dev channel
,因为用的人太少
PS:从 2.8.0 以后,官方正式弃用了 dev channel ,如果你还在用 dev 包,可以切换到早点切换到其他渠道了。免得后面版本跨度太大,切换起来问题多。
五、多版本管理 - fvm
随着 Flutter 的不断更新,不同项目之间的 SDK 版本难免会出现差异,这个时候我们就需要用到一个版本管理工具 fvm
,来帮助我们来管理 Flutter SDK 的版本。
具体的使用,和其他的如 nvm, gvm 等都类似,只需要安装 fvm,然后将项目的 flutter sdk 地址指向 fvm 下的 Flutter 即可。
如果你也面临着跨多个版本维护项目的问题,不妨试试 fvm,因为篇幅有限,我就不赘述了。
六、总结
通过 Flutter 这一年的更新,我们可以看到 Flutter 的社区正在日益壮大,也有越来越多的大厂加入到开源社区的贡献中来。而 Flutter Team 也在努力将 Flutter 的稳定好用扩展到所有平台上来,让 Flutter 可以真正的实现跨全平台开发。
如果 2019 年不觉得 Flutter 不过如此,那么 2021 年的下一个项目,你真的可以试一试 Flutter 了。希望可以有越来越多的人加入到 Flutter 社区中来,贡献一份自己的力量。
最后,新年的第一个项目,就让我们从 Flutter 开始吧!分享给大家这份阿里大佬整理的《Flutter内核解析与项目实战》,内容在GitHub上标星已经8k了,薅过来分享给大家。
第一章 混合工程
- Flutter 工程体系
- 混合工程改造实践
- 混合工程与持续集成
- 快速完成混合工程搭建
- 使用混合栈框架开发
第二章 能力增强
1.基于原生能力的插件扩展
2.基于外接纹理的同层渲染
3.多媒体能力扩展实践
4.富文本能力应用实践
第三章 业务架构设计
1.应用框架设计实践
2.轻量级动态化渲染引擎的设计
3.面向切面编程的设计实践
4.高性能的动态模板渲染实践
第四章 数据统计与性能
1.数据统计框架的设计
2.性能稳定性监控方案的设计
3.高可用框架的设计与实践
4.跨端方案性能对比实践
第五章 企业级应用实战
1.基于Flutter的端架构演进与创新
2.Flutter与 FaaS云端一体化架构
朋友们如果需要这份完整版的《Flutter内核解析与项目实战》,微信扫描下方CSDN官方认证二维码【免费获取
】。
“有时候,你选择一个方向,不是因为它一定会成为未来,而是它有可能成为不一样的未来。”