剛才看完了Flutter 團隊的 2023 春季發表活動 Flutter Forward。這場活動與以往最大的不同,在於是在非洲肯亞舉辦,Google 認為最近幾年非洲的軟體產業發展快速,新創公司如雨後春筍,也有大量的軟體開發人員在新創公司工作,同時,在肯亞也已經有了Flutter 開發社群。
這次發表了 Flutter 的最新穩定版本 3.7版,Dart 語言方面,也發表了 Dart 3 的 Alpha 版本,根據之前發表的 roadmap ,Dart 3 會在今年中發表穩定版本,預計會在 Google I/O 發表。同時也介紹了一些新的開發工具。
Flutter 3.7
- 有更完整的 Material 3 的 Widget
- 在可縮放的 layout 部分有更完整的支援
- 支援選單 UI
- 開始導入新的 render 引擎impeller
- 增加 iOS 軟體發布檢查相關功能
Dart 語言
Dart 3 正在開發當中,有三個主要的新語言特性:
- 叫做 records 的新的資料型態,看起來用法接近其他語言中的 tuple
- Switch 語法支援 pattern matching,也跟上其他語言的腳步
- Dart 2.12 之後就開始支援 null safety,接下來會全面變成 100% null safety 的語言
在編譯器方面
- 會開始支援編譯成 WASM 與 RISC — V
Flutter Web 接下來的發展
在 Flutter Web 部分,有三項主要發展:
- 接下來 Dart 語言可以編譯成 Wasm
- 可嵌入的 Flutter Web。之前用 Flutter 做出來的,都是全頁的網頁,但接下來可以把 Flutter Web 變成一個可以嵌入的 DOM 元件,也就是說,如果你原本有個網頁,可以把當中一部分變成 Flutter (可以想成以前用 Flash 做的網頁廣告之類的)
- 有新的 pixel shader,可以呈現各種新的動畫
Flutter Mobile 接下來的發展
- Plugin 開發方式的改變:以往的 plugin 得透過 method channel 呼叫 native code(ObjC/Swift/Java/Kotlin…)但接下來可以透過 FFI 呼叫 iOS 的 Objective-C API,也可以透過 Java 的 API binding 呼叫 Android 的原生 API
- 對於不同大小的螢幕有更好的支援
- 新的 render 引擎 Impeller
- 加入了 Scene、Node 等元件,可以使用 Flutter 開發 3D 應用
開發工具
- Firebase 整合:有一套叫做 flutterfire 的 CLI 工具,可以下載 Firebase 網站上的資料,快速選擇你要將某套 Flutter app 整合哪一個 Firebase 專案,然後要整合的是 iOS/Android 那個平台…等
- 第三方服務 FlutterFlow:這個服務提供一套視覺化開發工具,可以在網頁上透過拖拉產生 Flutter 的 Widget,同時提供多國語言翻譯等功能
- 第三方服務 widgetbook.io:一個方便 preview Flutter widget 的服務。這個服務整合了 CI/CD,所以每次 commit 的時候,可以把 widget 上傳到這個服務,可以讓 designer 查看 Widget 的顯示效果。
其他 showcase
中途放了一些賣藥影片:Google自己透過 Flutter 開發 Google Classroom、PUBS 等公司使用 Flutter 開發大幅節省開發時間。