• Flutter 1.5 发布,正式成为全平台 UI 框架!


    006tNc79ly1fyuhpu6m8zj30hs02st8x.jpg

    一. 序

    在 Google I/O 2019 上,Dart 团队宣布推出新的 Flutter 稳定版本 1.5,这是 Flutter 迄今为止最大的一次版本发布。

    伴随着 Flutter 1.5 的发布,同期也宣布发布 Flutter for Web 的 Preview 版本,正式开启了 Flutter 的全平台 UI 框架之路。

    早在年初发布的 Flutter 2019 Roadmap 中,就有提到,会在今年支持移动设备之外的平台,对 Web 的支持,算是完成了一个新的里程碑吧。

    二. Flutter for Web

    Flutter 之所以能够在移动平台上运行,主要是依赖的 Flutter Engine,就是 Flutter 所依赖的运行环境。这就导致在移动平台,只要你使用了 Flutter,哪怕只用混合开发的模式写了一个页面,这也将为你的 App 增大大约 4MB 的体积。

    而 Flutter for Web,完全是一种全新的模式,它可以将 Dart 编写的现有 Flutter 代码,编译成可嵌入浏览器并部署到任何 Web 服务器的代码。

    编译后的代码,完全是基于 HTML、CSS 和 JavaScript 这些标准的 Web 技术,所以它也不需要任何浏览器插件的支持。

    早期微软的 Silverlight 和 Adobe 的 Flash 都证明了,一切需要插件才能支持的 Web 应用,都是纸老虎,最终都会被基础的 HTML 技术所替代。

    我想这也是 Flutter for Web 选择这种支持方式的一个考量因素。

    添加 Web 支持,涉及在标准 API 之上,实现 Flutter 的核心绘图层,结合使用 DOM、Canvas 和 CSS,Flutter for Web 能够实现在现代浏览器中提供便携的、高质量和高性能的用户体验。

    Flutter for Web 很大程度上,归功于 Chrome、Firefox 和 Safari 等现代浏览器的快速发展,这些浏览器提供了基础的硬件加速的图形、动画和文本以及 JavaScript 的快速执行。

    随着 Flutter for Web 的发布,Flutter 正式成为一个全平台的 UI 框架。

    Flutter 最初的设想,也并不是想作为一个 HTML 的替代品,而是想基于 Flutter 能够快速构建出全平台的所支持的,图形丰富、交互流程的应用。

    在 Google I/O 上,也展示了最近刷屏的 KENKEN 益智游戏(文末有地址),该游戏在 Android、iOS、Web、Mac 和 Chrome 上,运行的都是相同的代码。

    Flutter for Web 还只是一个 Preview 版本,还有很多不足和被限制的地方。

    限制:

    1. Flutter_web 的插件还不完善,暂时只提供了最基础的 dart:htmldart:jsdart:svgdart:indexed_db,可以通过他们访问绝大多数浏览器的 API。
    2. 并非所有的 Flutter 都在 Flutter_web 上实现了。
    3. Flutter_web 编译还很慢。
    4. 在桌面浏览器上运行,还有一些不足,大部分是基于移动应用的操作特性,而没有对桌面系统的操作习惯进行特殊的优化。
    5. 开发流程目前仅支持 Chrome。

    更多细节,可以直接上 Github 上查看。

    三. 小结

    自此 Flutter 就不再是一个单纯的移动框架,而是一个多平台框架,通过它,可以快速的构建应用,更快的触达用户。

    坦率的讲,Flutter 这一年的发展以及推广效果都是惊人的,据公开的消息来看,不少一线大厂已经在一些生产项目上,尝试使用 Flutter,虽然尝试的大多都并不是主力项目,但这背后一定也少不了 Google 的推广,Google 本身对 Flutter 的期望也很大,短期应该不会凉。

    不过框架这个东西,有兴趣看看就好了,毕竟铁打的基础,流水的 API,不要花太多的精力沉迷在框架中,把编程的基础技术学好才是正道。如果真到了公司想尝试 Flutter 的地步,专门花一周两周突击一下,肯定能上手。

    本文对你有帮助吗?留言、点赞、转发是最大的支持,谢谢!


    公众号后台回复成长『成长』,将会得到我准备的学习资料,也能回复『加群』,一起学习进步;你还能回复『提问』,向我发起提问。

  • 相关阅读:
    android之间传递list
    android 中string.xml中的%1$s
    android activity传递实体类对象
    android 通过getDimension,getDimensionPixelOffset和getDimensionPixelSize获取dimens.xml文件里面的变量值
    android 获取屏幕的宽和高
    android dialog弹出的情况下监听返回键
    join on用法
    android webview加载网络连接
    HDU 5025 Saving Tang Monk 【状态压缩BFS】
    ACM/ICPC 2018亚洲区预选赛北京赛站网络赛 A、Saving Tang Monk II 【状态搜索】
  • 原文地址:https://www.cnblogs.com/plokmju/p/flutter_web.html
Copyright © 2020-2023  润新知