Flutter Beta 3 新特性概覽

知識小集發表於2018-05-10

首先感謝 掘金 將本文納入 Google I/O 2018 大會專題頁中。

小集團隊會持續跟進 Flutter 的動態,和大家一起來學習並推動 Flutter 的發展。我們還和阿里閒魚團隊合作,後期在我們公眾號裡,會轉發他們團隊關於 Flutter 的分享。

歡迎關注我們的公眾號,我們每週都會有原創文章分享。我們主要定位在移動開發領域,分享移動開發技術,包括 iOS、Android、小程式、移動前端、React Native、weex 等。

Flutter Beta 3 新特性概覽

原文連結

至從 Google 在 2017 年的 Google I/O 上推出 Flutter 以來,Flutter 團隊投入了大量的精力來不斷完善 Flutter。包括重寫引擎的主要部分、釋出支援 Android Studio 和 Visual Studio Code 的外掛、整合 Dart 2 ,增加更多 Firebase API 的支援等等。

進入 2018 年後,Flutter 團隊在 github 上開源了 Flutter,並保持一定頻率的 beta 版本更新。我們可以看到目前在 github 上,Flutter 的 star 數達到了 23k+ 之多,受歡迎程度可見一斑。

這兩天 Google I/O 開發者大會,Flutter 也藉此釋出了 Beta 3 版本,向正式版又邁進了一步。本文就一起來看看,Beta 3 版本新增了哪些特性。

據官方介紹,Beta 3 版本將主要精力放在三個方面:基礎建設、生態系統、工具。讓我們來一起看看。

基礎建設

基礎建設方面主要體現在優化內建的 UI Widget,完成 Dart 2 的剩餘功能和引入一些新的 API。

1 優化了內建的 UI Widget,對 Meterial Design widgets 做了許多改進,以實現更大的靈活性和定製化。如:

  • 新增新的 BottomAppBar 元件;
  • 改善和擴充套件對 Chips 的支援;
  • InputDecorator 現在支援填充/下劃線和提綱(outlined)模式;
  • FloatingActionButton 現在提供了更大的定位靈活性;
  • Slider 現在可以定製 thumb 和 value 指示器的顏色和形狀;
  • 增加對 GIFWebP 等格式的動圖支援;

另外,更新了 Flutter Gallery https://github.com/flutter/flutter/tree/master/examples/flutter_gallery 應用程式,以更好的演示這些新特性。

2 完成 Dart 2 的優化工作,並且在新版本中預設啟用。

  • 新增新的語法糖來幫助在 Flutter 中例項化小部件,new 關鍵字變成可選的,建立 widget 例項比以前更方便:
Widget build(BuildContext context) => Scaffold(
  appBar: AppBar(
    title: Text(widget.title),
    actions: <Widget>[
      IconButton(
        icon: Icon(Icons.info),
        onPressed: _aboutAction,
      ),
      IconButton(
        icon: Icon(Icons.share),
        onPressed: _shareAction,
      )
    ],
  ),
  body: Center(
    child: _body(),
  ),
  floatingActionButton: FloatingActionButton(
    onPressed: _refresh,
    tooltip: 'Refresh',
    child: Icon(Icons.refresh),
  ),
);
複製程式碼
  • 在已存在的 const 關鍵字的範圍內,const 關鍵字在任何子節點中變成可選項,所有子結點自動為 const 。之前的測試版本中,很難從上下文中推斷出物件的子物件是不可變的,所以需要給子物件也加上 const。
const comments = <Comment>[
  Comment(
    "Creating apps is just faster and more fun with Flutter.",
    "Posse Inc."),
  Comment(
    "Yesterday I was trying #Flutter for the first time, today I published an application.",
    "@CristianDudca"),
  Comment(
    "This weekend: Met and fell in love with Flutter.",
    "@FIREYOSE"),
];
複製程式碼

3 其它基礎建設:

  • 改進對螢幕閱讀器的支援、大文字和對比度功能;
  • 提供對從右到左閱讀的語言的支援;
  • 控制元件可在適當位置進行映象;
  • 重寫 Flutter 的執行緒模型,以便在單個應用程式中託管多個 FlutterView

生態系統

4 Firebase 外掛:幾款外掛將實現 1.0 里程碑:實時資料庫(Realtime Database)、Firebase Analytics、Firebase Message、Firebase Core。此外,還為 Remote Config、Cloud Firestore 和 Performance Monitoring 新增了新的功能齊備的外掛。

5Google AdMob 的支援將推出 beta 版本,讓開發者可以通過 Flutter 應用獲利。

6 Flutter 團隊和 Flutter 社群都提供了許多其它包供開發者使用。

工具

Flutter 團隊持續定期更新 Android StudioIntelliJ 的 Flutter 外掛,以改善開發體驗。同時加強了對 Visual Studio Code 的支援,Visual Studio Code 最新版本的 Flutter 擴充套件包含了 Flutter Beta 3 的所有新功能:

7 重新設計了 UI Inspector,新增 "Just My Widgets" 功能,可以顯示自己程式碼中建立的 widget,並且可以以樹形結構顯示 widget 中所有巢狀的 widget 的相關資訊。

Flutter Beta 3 新特性概覽

8 Extract Widget:對各開發工具提供了更廣泛的重構功能,這包括一個 Extract Widget 重構,這個功能將建立一個新的 Widget 類並在原始位置插入一個構造器。

Flutter Beta 3 新特性概覽

9 熱載入(Hot reload)工作流:當重新載入和重新啟動時,將這些動作標記在 IntelliJ 的本地檔案歷史記錄中。這使我們可以返回到之前的重新載入點並比較在 UI 上迭代時所做的更改。

Flutter Beta 3 新特性概覽

10 可在 profile 模式下執行 Flutter 應用程式,該模式下會顯示每秒幀數和記憶體使用情況

Flutter Beta 3 新特性概覽

其它一些改進可以檢視參考文獻 2。

小結

目前國內 Flutter 社群也在慢慢發展起來,也有一些大公司的團隊在嘗試這項新技術,如阿里閒魚團隊,Google 官方部落格也特別提到閒魚團隊的嘗試。阿里閒魚團隊在他們的公眾號上釋出了他們的研究成果,大家可以關注(XYtech_Alibaba)。

Flutter Beta 3 新特性概覽

另外 Flutter 團隊也非常重視中國開發者,特別提供了一些資源供中國開發者使用:

大家可以參考。

參考

  1. What’s New in Flutter Beta 3
  2. New Flutter tooling releases -- Inspector: “Just my Widgets”
  3. Ready for Production Apps: Flutter Beta 3

知識小集 · Flutter 自習室

另外我們拉了一個微信群,有興趣的童鞋可以加入,和我們一起學習哈。

Flutter Beta 3 新特性概覽

相關文章