Flutter 作为谷歌的移动 UI 框架,在快速构建 iOS 和 Android 应用及开发、高性能、可移植性上表现优秀,并可以与现有代码一起工作,基于这些特点使其越来越受到开发者的推崇。在本次举行的 2019 谷歌 I/O 大会上,公布了 Fluttery 实现 web 访问、提供自定义图像分类模型的新特性,并介绍 Flutter 在桌面系统及嵌入式设备中的应用与未来的发展,对于开发者来说可谓是福音连连,下面跟着小编来围观下吧。
今天是 Flutter 框架 发展历程中的一个重要转折点,因为我们将把项目的重点由移动平台扩展至更为广泛的设备领域。在本届 I/O 大会上,我们发布了 Flutter for Web 的第一个技术预览版本,宣布 Flutter 已经在为包括 Google Home Hub 在内的多种谷歌智能显示平台提供支持,并通过 Chrome OS 迈出了桌面级应用程序支持的第一步。
长久以来,Flutter 开发团队的使命一直是为 iOS 以及 Android 移动应用开发者提供最理想的框架选项。在我们看来,移动开发如今已经基本成熟,但由此带来的问题是开发人员不得不在两种平台之上重复构建相同的应用程序,或者在使用跨平台框架时面对一系列功能性妥协。Flutter 希望找到最佳平衡点,即能够为同一代码库提供美观、快速且量身定制的使用体验,并尽可能为这两大移动平台阵营的开发者们带来理想的生产力水平。我们很高兴看到我们的早期工作成果,一步步发展成为 最受大家欢迎的开源项目之一。
去年,我们开始构建 Flutter 项目的 1.0 版本,并希望借此机会将其进一步拓展至其它平台。这一发展思路主要源自越来越依赖于 Flutter 的谷歌内部团队,以及 Dart 平台 为其提供可移植性体验的潜力。具体来讲,我们已经为 Dart 构建起一套面向内部小型开发团队的 Web 框架,这个探索性的项目被定名为“Hummingbird”,用于评估 Flutter 引擎面向标准 Web 开发环境的移植可能性。
该项目的结果令人吃惊。而且需要承认的是,项目的成功在很大程度上要归功于 Chrome、火狐以及 Safari 等网络浏览器的快速发展。这些浏览器目前普遍提供对图形、动画以及文本的硬件加速能力,亦可快速完成 JavaScript 执行任务。在项目开始的几个月内,我们就成功构建起了核心 Flutter 框架原型,并在不久之后开始在移动与桌面浏览器之上运行项目演示。除了 Dart 的良好 Web 编译能力之外,这个项目也证明了我们确实能够将 Flutter 框架以及相关应用程序融入 Web 端并加以运行。
与此同时,核心 Flutter 项目也一直在推动桌面级应用程序的开发脚步,包括适应键盘与鼠标等输入范式、窗口大小调整以及发布适用于 Chrome OS 应用程序开发的工具等等。我们将 Flutter 嵌入至运行在 Windows、Mac 以及 Linux 平台上的各类桌面级应用程序,由此带来的探索性成果也逐渐被纳入至核心 Flutter 引擎当中。
值得一提的是,高性能、可移植 UI 框架本身具有巨大的商业潜力,因此 Flutter 框架完全可以立足单一代码库为各种各样的设备及其不同尺寸的屏幕提供美观且量身定制的良好使用体验。
对于初创公司而言,通过单一应用程序对接移动、Web 以及桌面设备,意味着其能够从起步之初就覆盖到全部受众,而不用受到各平台间不同技术的限制。而在大型组织这边,通过单一代码库为所有用户提供相同的使用体验,则能够有效降低复杂性与开发成本,并确保他们能够专注于提高体验质量。
凭借着对移动、桌面以及 Web 应用程序的全面支持,我们的使命也得到了进一步扩展:我们希望构建起一款最佳框架,能够在任何屏幕之上提供良好的使用体验。
就在本周,我们将发布 Flutter for Web 的第一个技术预览版本。虽然这项技术仍在开发当中,但我们已经准备好向早期使用者提供试用成果并接受相关反馈。我们对于 Flutter for Web 的初步设想,并不是为 HTML 优化型文档提供通用的替代性体验方案;相反,我们打算将其打造成一种能够构建起高度互动且图形丰富的应用内容的理想方法,事实上这种综合性 UI 框架的优势也正在于此。
为了展示 Flutter for Web,我们与《纽约时报》合作制作了一段演示。除了全球领先的新闻报道能力之外,《纽约时报》还一直以质量上乘的填字游戏与其它益智小版块而为人称道。他们希望能够将这些充满乐趣的要素在任意设备之上重现,因此其开发团队意识到了 Flutter 的可观价值,即有望成为解决其需求的理想方案。他们也发现,利用相同代码实现 Web 访问代表着一种巨大的福音。在本周召开的谷歌 I/O 大会上,大家可以亲眼见证他们如何利用相同的代码在 Android、iOS、Web、Mac 以及 Chrome 等操作系统运行 KENKEN 益智游戏。
以下是《纽约时报》益智游戏版块执行总监 Eric von Coelln 对于 Flutter 使用体验的评价:
“〈纽约时报〉的填字游戏版块拥有超过 40 万名独立订阅用户,其轻松愉快的体验也成为很多人日常生活中不可或缺的一部分。除了填字游戏之外,我们也增加了益智版块的内容丰富度,每月有超过 200 万人次成功完成了我们发布的小游戏。”
“我们已经开始探索如何将 Flutter 项目作为潜在的解决方案,从而开发出引人入胜且质量精良的移动端游戏体验。现在,能够发布到 Web 这一新加功能使 Flutter 成为一个更具吸引力的选项,意味着我们能够在所有用户平台上快速部署智能游戏。我们高兴地看到,这款解决方案已经成功将我们基于 Flash 的 KenKen 游戏发布在更多平台之上。”
关于 Flutter for Web,我们还有很多值得介绍的新鲜内容。感兴趣的朋友可以访问 Flutter 博客查看关于 Flutter for Web 的文章:
https://medium.com/flutter-io/bringing-flutter-to-the-web-904de05f0df0
作为项目的早期开发阶段,我们渴望听到更多朋友关于使用 Flutter for Web 的反馈声音。我们希望快速开发代码、高度关注性能,并将相关代码库与 Flutter 项目的其它组成部分加以良好协调。
核心 Flutter 框架也将在本周得到升级,我们将通过稳定渠道向您提供 Flutter 1.5 版本。Flutter 1.5 当中包含根据数百位开发人员的反馈所做出的调整,例如新的 App Store iOS SDK 更新、iOS 与 Material 小工具更新、引擎对于新型设备的支持,以及 Dart 2.3 带来的全新 UI-as-code 语言功能等等。
随着框架本身的发展成熟,我们也开始投资建立技术支持生态系统。Flutter 的架构模型一直坚持走小型核心框架的路线,同时辅以丰富的软件工具社区。过去几个月以来,谷歌为网络视图、谷歌地图以及 Firebase ML Vision 等提供了生产级别的软件工具包。就在本周,我们也将为 应用内购功能提供初步支持。目前 Flutter 项目拥有超过 2000 个可用的开源软件包,足以满足绝大部分实际使用需求。
我们本周还在 I/O 大会上公布了一个激动人心的项目,即 ML Kit 自定义图像分类器。利用 Flutter 与 Firebase 构建的这款分类器提供一套简单易用且基于应用程序的工作流程,允许您借此创建自定义图像分类模型。大家可以通过智能手机上的摄像头收集训练数据,邀请其他人为您的数据集做出贡献,触发模型训练操作,并使用这些训练完成的模型——所有这一切,都将由同一款应用程序提供。
Flutter 将继续在发展与普及的道路上坚定前行。包括 eBay、Sonos、Square、第一资本、阿里巴巴以及腾讯在内的这些 要求愈发严格的客户,都在利用 Flutter 开发应用程序,并对项目的良好表现感到非常满意!以下是 eBay 公司高级开发人员 Larry McKenzie 对于 Flutter 项目的评语:
“Flutter 速度很快!以往需要几天才能实现的功能,如今我们已经可以在一天之内完成。我们过去投入大量时间解决的很多问题,现在也完全消失了。我们的团队如今可以专注于创造更优质的用户体验与实际功能。Flutter 的表现超越了我们的期望!”
再来看看更为宏观的观点。领英公司最近进行了一项研究,根据过去 12 个月当中网站成员在个人资料中新添加的信息,结果显示 Flutter 在软件工程师当中成为发展速度最快的技能。而在最近的 2019 年 StackOverflow 开发人员调查当中,Flutter 也被评选为最受欢迎的开发人员框架之一。
Flutter 项目也将在桌面系统中得到广泛应用。几个月以来,我们一直在进行一个 实验性质的桌面项目,并逐步把相关成果融合至 Flutter 引擎当中以作为主版本的新增内容。虽然这些目标还没有达到生产级水平,但我们已经发布了 早期说明,可用于在 Mac、Windows 以及 Linux 之上开发各类 Flutter 应用程序。
另一个快速增长的 Flutter 平台当数 Chrome OS。目前,Chromebook 每年售出数百万台,且主要集中在教育领域。Chrome OS 可谓 Flutter 的完美运行环境,包括使用 Flutter 应用程序以及作为开发者平台。这主要是因为 Chrome OS 能够支持 Android 与 Linux 应用程序的运行。利用 Chrome OS,您可以使用 Visual Studio Code 或者 Android Studio 开发出一款 Flutter 应用程序,并能够在无需模拟器的前提下在同一设备进行本地测试与运行。另外,大家也可以将适用于 Chrome 操作系统的 Flutter 应用程序发布至 Play 应用商店,使得数百万用户得以从您的创作当中受益。
作为 Flutter 可移植性的最后一个例子,我们正尝试在各类嵌入式设备之上运行 Flutter 应用程序。我们最近发布的 示例,证明 Flutter 能够直接运行在 Raspberry Pi 等小型设备之上。我们还为 Flutter 添加了 嵌入式 API,使其能够顺畅对接智能家居以及汽车等平台。
作为普及度最高的嵌入式平台之一,Google Home Hub 等智能显示操作系统如今也实现了对 Flutter 的运行支持。
在谷歌公司之内,部分面向智能显示平台所开发的功能正是出自 Flutter 项目之手。智能助手团队也很高兴能够在未来几个月内,继续利用 Flutter 扩展智能显示平台的功能组合;他们今年之内的发展目标,就是利用 Flutter 提升整个系统 UI。
开发人员们经常会询问我们该如何开始使用 Flutter。为了解决这个疑问,我们今天也很高兴地向大家公布由 The App Brewery 开发的 Flutter 全面培训课程。顺带一提,他们是 Udemy 网站上评分最高的 iOS 培训课程的作者。他们的新课程为 Flutter 项目准备了超过 30 个小时的学习内容,包括视频、演示与动手实验室等。我们谷歌也提供了相关赞助,为此次公布的最新课程提供限时折扣——其零售价由 199 美元力减至仅需 10 美元。
很多开发人员都在利用 Flutter 创建激动人心的应用程序。在谷歌 I/O 大会的筹备阶段,我们还举办了一场名为 Flutter Create 的比赛,鼓励开发人员使用 Flutter 构建出不超过 5 KB 的 Dart 代码的应用成果。我们收到了来自世界各地超过 750 份参赛作品,其中不少成果让我们惊叹于在如此严格的代码量要求下,人们仍然能够实现难以置信的种种功能。
今天,我们也将公布获奖先后,大家可以访问 flutter.dev/create 进行查阅。这里恭喜比赛总冠军 Zebiao Hu,他将赢得一部价格超过 1 万美元的顶配 iMac Pro 电脑!
Flutter 项目不再是一套单纯的移动框架,而将成为一款 多平台框架,能够帮助您随时随地与用户对接。我们期待着大家能够立足 Web、桌面、移动以及其它各类设备平台之上运用 Flutter 构建出更多精彩内容!
https://developers.googleblog.com/2019/05/Flutter-io19.html
点个在看少个 bug
1、头条易读遵循行业规范,任何转载的稿件都会明确标注作者和来源;
2、本文内容来自“InfoQ”微信公众号,文章版权归InfoQ公众号所有。