Flutter 发布 1.0.0 了!

熬夜看完了正在伦敦举行的 Flutter Live Keynote,迎来 Flutter 1.0.0 的正式发布。在最近一个月使用 Flutter 帮助客户构建产品的体验中,逐渐发现 Flutter 就是我期待已久的原生开发技术——足够简单,开发顺畅,编写一次,多端运行,表现一致。react

我最先接触原生开发技术,是 RubyMotion。RubyMotion 诞生于 MacRuby。Flutter 的不少技术,让我想起来使用 RubyMotion 的经历,不少技术也曾经在 RubyMotion 上接触过,好比 Hot Reload。可是,Flutter 有一个 RubyMotion 所不具有的优点:Skia(skia.org)。git

RubyMotion 也有 Flow 项目(github.com/hipbyte/flo… ),采用了相同的思路,来解决 iOS 和 Android 之间的鸿沟。无奈两个平台之间的原生绘图 API 各不相同,为了抹平两个平台的差别,有巨大的工做量须要作,在项目进展初期并不顺利。程序员

在后面的职业生涯中,我也接触过 Swift、Kotlin,它们都是设计足够好的现代编程语言,可是局限于 iOS 和 Android 两个平台,当你在一个平台取得了成功,想扩展到另一个平台的时候,每每就是灾难的开始。我在 KnewOne 的前同事 Jasl(github.com/jasl )就曾爆肝一个月,把 Less 的 Android 版本实现了,但强如他的程序员,毕竟是稀缺的。github

业界为跨平台提出过不少方案,从最先的 PhoneGap(phonegap.com/ )到 Xamarin(visualstudio.microsoft.com/xamarin/ )、React Native(facebook.github.io/react-nativ… )、Weex(weex.apache.org/cn/guide/ ) 。甚至业界也逐渐认同于诞生自 ReactNative 的 “learn once, write anywhere.” 。apache

Flutter 的实现方案是大胆且行之有效的,经过 Skia 提供的强大的,稳定的,统一的绘图 API,把各类控件所有本身绘制。我用 cloc(github.com/AlDanial/cl… )统计下来,Flutter 1.0.0 已经接近两百万行 dart 文件。编程

而我使用下来的经验来讲,这里绝大多数代码都是实现各类 Material Design (material.io)和 iOS 组件。这个工做量是巨大的,而这份代码也是一份巨大的宝库,能够用来研究各类控件是如何实现的。react-native

讲了太多废话,稍微总结一下此次的 Flutter Live Keynote:浏览器

介绍了 Flutter 的优点。

发布了使用 Flutter 开发的 The History of Everything by 2D, Inc,耗费 3 个开发者三个月的时间。

🎉 🎉 🎉 正 式 发 布 了 1.0.0 🎉 🎉 🎉

在发布 1.0.0 的时候,顺带介绍了其余公司的几个酷酷的产品。weex

第一个是 2D, Inc 的 Flare(www.2dimensions.com/about-flare ),能够把它理解为 Flutter 的 Hype (tumult.com/hype/ )或者 Airbnb 的 Lottie(airbnb.design/introducing… )。app

第二个是 codemagic.io/,给 Flutter 准备的 CI/CD,目前免费。能够在帮客户开发系统的时候,让我省不少时间。可是我以为市场上的其余 CI/CD 也会逐渐跟进。

同时穿插了两个 Live Coding,秀了一下 Flutter 的肌肉。整个开发流程很是顺畅,很有写 Rails 的错觉。尤为是第二个整合 Firebase ML(firebase.google.com/products/ml… )实现相似 iOS Animoji(support.apple.com/zh-hk/HT208… )的功能。

one more thing

最后,介绍了一下 Flutter Desktop Embedding 项目转正了。咱们有了 Electron(electronjs.org) 之外的另外一个选择。

Flutter 正式从针对 iOS 和 Android 的开发框架向大一统 UI 开发框架的方向演进。顺便介绍了一下本场的 Keynote 也是用 Flutter 写的。而这也让我想起来了曾经有人用 RubyMotion 写过 Slides。历史老是惊人的类似。

让 Flutter 能够运行在浏览器中,不过目前只是给了 Preview,没有放出代码,等后面技术细节的博文出来以后,再写一下。如今代码库仍是空的(github.com/dart-lang/h… )。

总结和废话先写到这里,从我这个月以来的体验来讲,我以为 Flutter 是接下来很是值得投入的技术之一。虽然发了 1.0.0,可是坑仍是有的,踩坑避免不了,可是这不就是开发的乐趣么?

并且从 Flutter 的 GitHub Issues(github.com/flutter/flu… ),能够看出官方团队维护很是积极。

小小的预告一下,我会接下来整理一份我在踩坑过程当中参考的资料列表,为想入门 Flutter 的同窗提供一个有价值的入门指北。

相关文章
相关标签/搜索