在5月12日谷歌的I/O主题演讲中,Flutter 3.0正式发布。今年2月,Flutter带来了对Windows的支持。当前最新的Flutter3.0提供了对macOS和Linux桌面应用程序支持,改进Firebase集成、新的生产力和性能提升、添加Apple Silicon支持。
截至目前,Flutter终于实现了对iOS、Android、Web、Windows、macOS、Linux六大平台的稳定支持,完成了其对跨平台的愿景。
谷歌Flutter的产品经理Tim Sneath发布一篇名为《Introducing Flutter 3》文章详细介绍了Flutter 3.0,笔者对其进行了编译,以飨读者。
颠覆开发者开发方式的Flutter
Flutter的诞生是为了彻底改变应用程序开发方式:将Web的迭代开发模式与硬件加速图形渲染和像素级控制相结合,这些以前可是游戏的专利,而现在它被来进行应用开发。自从Flutter 1.0测试版发布以来,谷歌对其不断地进行优化,让Flutter的功能日趋完善,比如添加了新的框架功能和小部件、与底层平台进行更加深入的集成、提供了丰富的软件包库,并且在性能和工具上也做了许多的改进。
从1.0到3.0版本,Flutter被越来越多的开发者使用来构建应用程序。据谷歌最新用户研究报告显示:
- 91%的开发人员认为Flutter能缩短构建和发布应用程序所需要的时间;
- 85%的开发人员认为Flutter使他们的应用程序更美观;
- 85%的人认可Flutter能使他们在更多的平台上发布他们的应用程序。
实现“大一统”,一个Flutter,横跨iOS、Android、Web、Windows、macOS、Linux六大平台
Flutter 3.0为开发者提供了一种使用Dart编程语言为六大面向消费者的主流平台(iOS、Android、Web、Windows、macOS、Linux)目标编写应用程序的方法。基于Flutter 3,开发者能拥有从单个代码库为六个平台构建应用程序的体验,这将使其生产力大大提高。
不同于之前的版本,Flutter 3新增了对macOS和Linux应用程序的稳定支持。添加新平台的支持并不像我们想象中那么简单,其需要的不仅仅是渲染像素,还需要做很多其他的工作,比如新的输入和交互模型、编译和生成支持、可访问性和国际化以及特定于平台的集成等。Flutter不仅让用户能灵活地充分利用底层操作系统,同时能够根据需要共享尽可能多的UI。
具体来看,在macOS上,Flutter3可以通过通用二进制构建方式支持英特尔和Apple Silicon,允许应用打包在这两种架构上本机运行的可执行文件。同时,由于Dart对Apple Silicon的支持,编译速度也将更快。在Linux上,Canonical和谷歌合作提供了一个高度集成且在同类中最佳的开发选项。
另外,Flutter 3 还改进了许多基础功能,包括性能改进、Material You 支持和生产力更新。
除了上述所提到的内容,在新版本中,Flutter可以在苹果芯片上进行原生开发。虽然Flutter自发布以来,一直与搭载M1芯片的苹果设备兼容,但Flutter现在充分利用了Dart对Apple芯片的支持,可以在M1驱动的设备上实现更快的编译,并支持macOS应用程序的通用二进制文件。
另外,随着谷歌的Material Design 3在Flutter 3这个版本中基本已经完成,开发人员能够利用适应性强的跨平台设计系统,该系统提供动态配色方案和更新的视觉组件:
Flutter是由Dart驱动的,Dart是一种用于多平台开发的高生产力、可移植的语言。谷歌在Dart中添加了一些新的语言功能。这些新的语言功能带来的好处颇多,比如能够减少模板、提高可读性、提供实验性的RISC-V支持,以及升级的linter和新的文档等。在专用的博客中可以获得关于Dart 2.17所有新更改的细节,可通过链接查看
https://medium.com/dartlang
Firebase和Flutter深度集成
当然,构建应用的不仅仅是UI框架。一套全面的工具在构建、开发和操作应用中也是必不可少的,比如身份验证、数据储存、云功能和设备测试等服务。而包括Sentry、AppWrite和AWS Amplify在内的很多服务都支持Flutter。
谷歌提供的应用服务Firebase使用率很高,在SlashData的开发者基准测试中,有62%的Flutter开发者表示会在开发应用程序时使用Firebase。因此,在以前的版本中,谷歌一直致力于将Flutter与Firebase更好地结合,以创造一流的的Flutter集成。为此,谷歌将Flutter中的Firebase插件提升到1.0(用于添加更好的文档和工具),以及提供像FlutterFire UI这样的新小部件(为开发人员提供可重用的UI用于身份验证和配置文件屏幕)。
今天,谷歌宣布将Flutter和Firebase的集成作为Firebase产品的核心,正在将源代码和文档移动到Firebase主存储库和站点中,而且谷歌有可能与Android和iOS同步发展Firebase对Flutter的支持。
此外,为了使用Crashlytics(Firebase广受欢迎的实时崩溃报告解决服务)谷歌还进行了以下重大改进。
- 通过更新Flutter Crashlytics插件,可以让用户实时跟踪致命的错误,从而为用户提供与其他iOS或Android开发人员相同的功能集;
- 升级Crashlytics分析管道,以改进Flutter崩溃的聚类分析,从而更快地对问题进行分类、优先排序和修复;
- 简化了插件设置过程,因此只需几个步骤即可从用户的Dart代码中启动并运行Crashlytics。
Flutter休闲游戏工具包
对于大多数开发者来说,Flutter只是一个应用程序框架。但是,在休闲游戏开发领域也有Flutter的一番天地。围绕休闲游戏开发的社区也在不断壮大,很多开发者利用Flutter提供的硬件加速图形支持和Flame等开源游戏引擎。
为了让休闲游戏开发者能够更能更容易上手,在今天的I/O大会上,谷歌宣布发布Flutter Casual Games Toolkit,它不仅提供了一个模板和最佳实践的入门工具包,还能带来广告和云服务的良好体验。
虽然Flutter并不是为高强度的3D动作游戏而生的,但是有跨度是常有的事,即使是一些游戏也转向Flutter的非游戏UI,比如像PUBG Mobile这样拥有数亿用户的流行游戏。那么谷歌能把技术发展到什么程度呢?为了得到这个问题的答案,谷歌创建了一个有趣的弹球游戏(由Firebase和Flutter的网络支持提供支持)。
I/O弹球游戏中设计了一个带有四个吉祥物(Flutter的Dash、Firebase的Sparky、Android机器人和Chrome的恐龙)的定制桌子。玩家能在游戏中与别人一教高下,谷歌通过这种方式来展示Flutter多功能性,这很有趣。
Snearh认为,游戏开发和企业开发对性能和用户体验有着共同的追求,而Flutter团队一直在努力解决界面卡顿等问题,最终让框架能够更适用于各种类型的应用程序。
「一套代码,到处运行」,从 Flutter 3 开始
作为一款开源工具,Flutter不仅仅是谷歌的框架,也是一个业界开发者都能使用的产品。无论是通过贡献新的代码或文档、创建赋予核心框架新的超能力的软件包、编写指导他人的书籍和培训课程,还是帮助组织活动和用户组等等,人人都可以参与其中。Flutter 3的发布大大地提高了开发者的效率,也终让大家都实现了「一套代码,到处运行」的梦想。
下载地址
https://github.com/flutter/flutter