写点什么

Flutter 全平台制霸!新增 Web 和嵌入式目标平台

  • 2019-05-09
  • 本文字数:4425 字

    阅读完需:约 15 分钟

Flutter全平台制霸!新增Web和嵌入式目标平台

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 框架


值得一提的是,高性能、可移植 UI 框架本身具有巨大的商业潜力,因此 Flutter 框架完全可以立足单一代码库为各种各样的设备及其不同尺寸的屏幕提供美观且量身定制的良好使用体验。


对于初创公司而言,通过单一应用程序对接移动、Web 以及桌面设备,意味着其能够从起步之初就覆盖到全部受众,而不用受到各平台间不同技术的限制。而在大型组织这边,通过单一代码库为所有用户提供相同的使用体验,则能够有效降低复杂性与开发成本,并确保他们能够专注于提高体验质量。


凭借着对移动、桌面以及 Web 应用程序的全面支持,我们的使命也得到了进一步扩展:我们希望构建起一款最佳框架,能够在任何屏幕之上提供良好的使用体验。

Flutter for 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的文章


作为项目的早期开发阶段,我们渴望听到更多朋友关于使用 Flutter for Web 的反馈声音。我们希望快速开发代码、高度关注性能,并将相关代码库与 Flutter 项目的其它组成部分加以良好协调。

移动平台的 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 应用程序。我们最近发布的示例,证明 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?m=1


2019-05-09 10:2014565

评论 5 条评论

发布
用户头像
2021-01-18 18:09
回复
用户头像
我不看好,坐等打脸😄
2019-05-12 18:02
回复
用户头像
不会有事一个GWT吧
2019-05-09 16:42
回复
用户头像
Flutter for Web是什么意思?用来代替js html css写网页的?
2019-05-09 11:53
回复
其实 flutter 使用的 dart 语言本身在 12 年那会本身就是为了取代 js 搞得。。。
类似 flutter 这样写好代码之后编译到 js 之类,就是那会思路有问题,一个 hello 项目都上万行代码了。
后面被 JS 的 ES6 和 Typescript 打垮了,这次可能想换个思路靠 web assembly 来做吧
2019-05-10 18:14
回复
没有更多了
发现更多内容

linux之秘钥登录

入门小站

Linux

架构实战营作业四

库尔斯

#架构实战营

nginx配置系列(三)日志配置

乌龟哥哥

4月月更

GitOps指南

俞凡

DevOps gitops

vivo X80系列高端爆款之路:火把照耀在无人区

脑极体

高精度在线计时器(秒表)

入门小站

工具

决战摸鱼之巅:将vscode撸成可局域网联机对战的moba平台

gamedilong

前端 vscode nodejs Node 摸鱼

2021年九月最新Java面试必背八股文,338道最新大厂架构面试题

爱好编程进阶

Java 程序员 后端开发

32 岁的我裸辞了,八年 Java 老鸟,只因薪水被应届生倒挂

爱好编程进阶

Java 程序员 后端开发

Sentinel集群限流探索

艾小仙

sentinel 分布式限流 集群

[Day31-04]-[二叉树]二叉树的堂兄弟节点

方勇(gopher)

LeetCode 数据结构和算法

pinpoint插件开发之二:从零开始新建一个插件

程序员欣宸

Java 分布式 4月月更

2021最新一次Java面试,快手三面一轮游,如今已拿意向书

爱好编程进阶

Java 程序员 后端开发

Gitea 的简单介绍

HoneyMoose

网站开发进阶(一)Tomcat域名或IP地址访问配置详解

No Silver Bullet

tomcat 网站建设 5月月更

[Day32]-[二叉树]二叉树中的最大路径和

方勇(gopher)

LeetCode 二叉树 数据结构和算法

2020最新版Java学习路线图--妈妈再也不用担心我误删数据库被开除了

爱好编程进阶

Java 程序员 后端开发

2020面试官会经常问到的三个并发工具类,你都知道吗?

爱好编程进阶

程序员 后端开发

2021最新分享字节四面成功拿Offer!

爱好编程进阶

Java 程序员 后端开发

在线Excel转JSON工具

入门小站

工具

阿里架构师耗时 176 天整理出来的 Java 独家面试题(10 万字面试总结)

Java架构追梦

程序员 java面试 后端开发

架构训练 模块4作业

小马

「架构实战营」

C++类设计和实现的十大最佳实践

俞凡

c++ 最佳实践

2020年底跳槽面试5家大厂,最后收获拼多多Java岗offer,分享三面总结!

爱好编程进阶

Java 程序员 后端开发

2021最强面试笔记非它莫属:3000字Java面试核心手册(大厂必备

爱好编程进阶

Java 程序员 后端开发

手撕阿里 Spring 框架:AOP、IOC、注解、事务,带你统统拿下

Java架构追梦

Java spring 程序员

关于人才的招聘的一些看法(31/100)

hackstoic

团队管理 招聘

Java 从一个 List 中删除 null 元素

HoneyMoose

在 ABAP 技术栈里实施 Continuous Integration 的一些挑战

汪子熙

DevOps 持续集成 abap 5月月更 持续优化

11-SpringSecurity:Session共享

爱好编程进阶

Java 程序员 后端开发

2021金三银四必备:“基础-中级-高级

爱好编程进阶

Java 程序员 后端开发

Flutter全平台制霸!新增Web和嵌入式目标平台_大前端_Flutter Team_InfoQ精选文章