很高興看到台灣時間 12/5 號 Flutter 正式推出 1.0 版本,相信很多人都不知道什麼是 Flutter,簡單來說開發者只要學會 Flutter 就可以維護一套程式碼,並且同時編譯出 iOS 及 Android 手機 App,其實就跟 Facebook 推出的 React Native 一樣,但是 Flutter 的老爸是 Google。相信大家很常看到這一兩年內,蠻多新創公司相繼找 RN 工程師,而不是分別找兩位 iOS 及 Android 工程師,原因就在後續的維護性及成本。而 Flutter 也有相同好處。我個人覺得 RN 跟 Flutter 比起來,單純對入門來說,RN 是非常好上手的,但是如果您考慮到後續的維護成本,我建議選用 Flutter,雖然 Flutter 要學一套全新的語言 Dart,在初期時要學習如何使用 Widgets,把很多元件都寫成 Widgets 方便後續維護。但是在 RN 後期的維護使用了大量的第三方 Library,您想要升級一個套件可能影響到太多地方,造成不好維護。語言選擇 RN 可以使用純 JavaScript 撰寫,或者是導入 JS Flow + TypeScript 來達到 Statically Type,而 Flutter 則是使用 Dart 直接支援強型別編譯。如果現在要我選擇學 RN 或 Flutter 我肯定選擇後者。那底下來看看這次 Flutter 釋出了哪些新功能?對於 Flutter 還不了解的,可以看底下介紹影片。
Flutter 1.0
Flutter 在 1.0 版本使用了最新版 Dart 2.1 版本,那在 Dart 2 版本帶來什麼好處?此版本提供了更小的 code size,快速檢查型別及錯誤型別的可用性。這次的 Rlease 也代表之後不會再更動版本這麽快了,可以看看在 GitHub 上 Release 速度,在 1.0 還沒出來前,大概不到一週就會 Release 一版。未來應該不太會動版這麼迅速了。當然還有其他功能介紹像是 Add to App
或 Platform Views
會預計在 2019 二月正式跟大家見面。詳細介紹可以參考 Flutter 1.0: Google’s Portable UI Toolkit
Square SDK
Square 釋出了兩套 SDK,幫助 Flutter 開發者可以快速整合手機支付,或者是直接透過 Reader 讀取手機 App 資料付款兩種方式。詳細使用方式可以參考 Flutter plugin for Reader SDK 或 Flutter plugin for In-App Payments SDK
Flare 2D 動畫 Flutter 釋出
Flare 讓 Designer 可以快速的在 Fluter 產生動畫,這樣可以透過 Widget 快速使用動畫。所以未來 Designer 跟 Developer 可以加速 App 實作。這對於兩種不同領域的工程師是一大福音啊。
CI/CD 流程
相信大家最困擾的就是如何在 Android 及 iOS 自動化測試及同時發佈到 App Store 及 Google Play,好的 Flutter 聽到大家的聲音了,一個 Flutter 合作夥伴 Nevercode 建立一套 Codemagic,讓開發者可以寫一套 code base 自動在 iOS 及 Android 上面測試,並且同時發佈到 Apple 及 Google,減少之前很多手動流程,此套工具還在 Beta 版本,目前尚未看到收費模式。想試用的話,可以直接在 GitHub 上面建立 Flutter 專案。登入之後選取該專案,每次 commit + push 後就可以看到正在測試及部署了。
Hummingbird
Hummingbird 是 Flutter runtime 用 web-base 方式實作,也就是說 Flutter 不只有支援原生 ARM Code 而也支援 JavaScript,未來也可以透過 Flutter 直接產生 Web 相關程式碼,開發者不用改寫任何一行程式碼,就可以直接將 Flutter 運行在瀏覽器內。詳細情形可以直接看
官方部落格,在明年 Google I/O 也會正式介紹這門技術。
後記
更多詳細的影片可以參考 flutter live 18