Flutter 2020春季更新,你还不来看看?是不是又变了!
Flutter 的现状和数据
Flutter 的使用率仍在快速增长当中。自它初次发布以来已经过了 16 个月时间,有超过 200 万开发人员用过了 Flutter。虽然行业在 2020 年遇到了前所未有的局面,但在 3 月份 Flutter 依旧获得了 10% 的环比增长,并且每月活跃的开发人员数量有将近 50 万。
其他一些有趣的统计数据:
- 60%的 Flutter 开发人员使用 Windows 开发,27%的开发人员使用 macOS,13%的人员使用 Linux。
- 有 35%的开发人员为初创公司工作,26%的开发者为企业开发人员,19%则是个体经营者,还有 7%的用户为设计机构工作。
- 78%的 Flutter 开发人员使用稳定版渠道,11%的用户使用 Beta 版,11%的用户使用 dev 或 master 版。
- Flutter 使用量排名前五的地区分别是印度、中国、美国、欧盟和巴西。
- 谷歌 Play 商店中大约发布了 50,000 个 Flutter 应用,仅在上个月就上传了 10,000 个。
- Flutter 应用中最流行的框架包有 http、shared_preferences、intl、meta、path_provider 和 pedantic。
- Flutter 应用中最受欢迎的第三方包有 provider、rxdart、cached_network_image、sqflite、font_awesome_flutter 和 flutter_launcher_icons。
Flutter 在企业中的表现
Flutter 在企业客户中的增长尤其迅速。许多大型公司之所以会选择 Flutter 的关键原因,是因为它能够提供多平台支持,同时提供高水准的产品体验。最近的一个例子是 Nubank,它是亚洲以外最大的数字银行,拥有超过 2000 万客户。Nubank 在对他们的应用程序开发选项进行了详细的调查和分析之后,最终选择了 Flutter;之后他们的前端开发团队就统一在了一个框架上,也因此能够在 iOS 和 Android 平台上同时发布新的软件功能。
下面这段视频介绍了他们的开发故事,其中说明了他们在 Flutter 上看到的一些好处:
企业的一项常见需求是专业组件。谷歌与 SyncFusion 展开了合作,后者的 Essential Studio 产品现在包含了一系列高质量的 Flutter 组件,包括图表、PDF 操作和条形码生成等。在他们的 2020.1 版本中,所有组件均直接支持 Android、iOS 和 Web 平台,并且具有基于 Web 的控件预览:
https://flutter.syncfusion.com/#/
更新版本发布流程
在谷歌开发新的 Flutter 稳定版本时,他们对原有的发布模型做出了一些更改,以进一步提高发布的稳定性和可预测性。
谷歌原来的发布流程的设计目标是简洁和低维护成本。但随着开发团队的规模不断增大,谷歌遇到了一些会影响到 Flutter 贡献者和开发人员的问题,具体包括:
- 不清楚何时发布什么版本,以及其中包含什么样的代码;
- 缺乏对分支的测试,结果要重复发布修复程序。
从 4 月的 Flutter 版本开始,谷歌将转向一个 beta 和稳定版本固定间隔发布的分支模型。现在谷歌将在每月初发布 beta 版,然后精选(cherrypick)出重要的补丁来稳定该版本。大约每季度一次,当前的 beta 分支将升级到稳定版本。如有必要,谷歌将继续修复此版本。现在谷歌的基础架构支持针对分支的测试,这样就能验证那些精选补丁,并根据严重性的水平接受某些请求。
谷歌还借此机会调整了 Flutter 和 Dart 的发行流程和渠道。Dart 添加了一个 beta 通道,并且之后它们发布的版本将被同步(例如,Flutter beta 版本将包含一个 Dart beta 版本)。
如果用户已经在基于稳定通道发布 Flutter 应用,谷歌建议用户在 beta 候选版本中测试应用,并报告所遇到的任何问题,帮助提升稳定版本的质量。你还可以根据 Flutter Wiki 上新的 Flutter 精选流程的指引,在稳定通道上升级回归或阻止 bug:
https://github.com/flutter/flutter/wiki/Flutter-Cherrypick-Process
这一新流程将为 Flutter 的发行版带来更高的质量和更好的可预测性,并为将稳定补丁发布到稳定的通道提供更简便的方法。
版本控制更改
作为这一分支模型的一部分,谷歌还对版本的控制方式做了一些小的更改。
完整的技术细节在 Flutter 构建发布通道 Wiki 页面上可见:
https://github.com/flutter/flutter/wiki/Flutter-build-release-channels
简单总结如下:
非稳定发行版将在版本字符串中以.pre 注释,以表示其预发布状态。给定一个 x.y.z-n.m.pre 的版本字符串,每当从 master 生成一个新构建时,dev 通道构建将增加 n。
- 1.18.0–1.0.pre:master 版本移至 1.18 之后的第一个 dev 构建
- 1.18.0–2.0.pre:从 master 的最新发布点出发的下一个 dev 构建
如上所述,谷歌将从 dev 版本发布点构建 beta 版本。在某个发行版上精选补丁时,m 版本号将会增加。例如,master 的第 15 个 dev 构建作为 beta 的 1.18 版本,则版本控制如下所示:
- 1.18.0–15.0.pre:初始 beta 候选版(与 dev 发行版相同)
- 1.18.0–15.1.pre:在(现在的)beta 分支上的后续构建,带有一些精选补丁
- 1.18.0–15.2.pre:第二个后续构建
稳定版的版本号将为 x.y.0。如果有必要,后续的修补程序版本将增加补丁号:x.y.1,x.y.2,以此类推。
- 1.18.0–15.4.pre:分支上的最新 beta 构建
- 1.18.0:稳定版本,与 1.18.0–15.4-pre 相同
- 1.18.1:潜在的 1.18.0 修补程序
下一步进展计划
谷歌使用这个全新的版本控制模型发布的第一个版本,将是 Flutter 的下一个稳定版本,计划在本周发布。所有新功能的完整摘要将在不久后给出具体介绍。
还可以查看谷歌在过去几周内发布的其他一些公告。上上周,谷歌宣布了 CodePen 对 Flutter 的支持:
https://medium.com/flutter/announcing-codepen-support-for-flutter-bb346406fe50
过去几天里许多创作者制作了各种笔刷。以下是一些示例:
Twitter clone:
https://codepen.io/mkiisoft/pen/KKdgdad
Generative abstract art:
https://codepen.io/rx-labz/pen/WNQoNem
Chakra animation:
https://codepen.io/tahatesser/pen/GRpqbRY
Rotating carousel:
https://codepen.io/joshuadeguzman/pen/jObrzJB
Nougat animation:
https://codepen.io/phillywiggins/pen/gOaPNPY
Double pendulum:
https://codepen.io/abhilas-csc/pen/qBOZKPj
如果你正在寻找 Flutter 的学习资源,下面我整理了一些关于 Flutter的资料,需要的私信( Flutter)我分享给你。这份资料可以帮助新手开始 Flutter 的旅程,也可以帮已经了解过这方面的朋友更进一步。希望能帮到你们。
Android学习PDF+架构视频+面试文档+源码笔记
如果你有其他需要的话,也可以在?GitHub?上查看,下面的资料也会陆续上传到Github