首先感謝 掘金 將本文納入
Google I/O 2018
大會專題頁中。小集團隊會持續跟進
Flutter
的動態,和大家一起來學習並推動Flutter
的發展。我們還和阿里閒魚團隊合作,後期在我們公眾號裡,會轉發他們團隊關於Flutter
的分享。歡迎關注我們的公眾號,我們每週都會有原創文章分享。我們主要定位在移動開發領域,分享移動開發技術,包括 iOS、Android、小程式、移動前端、React Native、weex 等。
至從 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 指示器的顏色和形狀;- 增加對
GIF
和WebP
等格式的動圖支援;
另外,更新了 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 新增了新的功能齊備的外掛。
5 對 Google AdMob
的支援將推出 beta 版本,讓開發者可以通過 Flutter 應用獲利。
6 Flutter 團隊和 Flutter 社群都提供了許多其它包供開發者使用。
工具
Flutter 團隊持續定期更新 Android Studio
和 IntelliJ
的 Flutter 外掛,以改善開發體驗。同時加強了對 Visual Studio Code
的支援,Visual Studio Code 最新版本的 Flutter 擴充套件包含了 Flutter Beta 3 的所有新功能:
7 重新設計了 UI Inspector
,新增 "Just My Widgets
" 功能,可以顯示自己程式碼中建立的 widget,並且可以以樹形結構顯示 widget 中所有巢狀的 widget 的相關資訊。
8 Extract Widget
:對各開發工具提供了更廣泛的重構功能,這包括一個 Extract Widget 重構,這個功能將建立一個新的 Widget 類並在原始位置插入一個構造器。
9 熱載入(Hot reload)工作流:當重新載入和重新啟動時,將這些動作標記在 IntelliJ 的本地檔案歷史記錄中。這使我們可以返回到之前的重新載入點並比較在 UI 上迭代時所做的更改。
10 可在 profile 模式
下執行 Flutter 應用程式,該模式下會顯示每秒幀數和記憶體使用情況
其它一些改進可以檢視參考文獻 2。
小結
目前國內 Flutter 社群也在慢慢發展起來,也有一些大公司的團隊在嘗試這項新技術,如阿里閒魚團隊,Google 官方部落格也特別提到閒魚團隊的嘗試。阿里閒魚團隊在他們的公眾號上釋出了他們的研究成果,大家可以關注(XYtech_Alibaba
)。
另外 Flutter 團隊也非常重視中國開發者,特別提供了一些資源供中國開發者使用:
大家可以參考。
參考
- What’s New in Flutter Beta 3
- New Flutter tooling releases -- Inspector: “Just my Widgets”
- Ready for Production Apps: Flutter Beta 3
知識小集 · Flutter 自習室
另外我們拉了一個微信群,有興趣的童鞋可以加入,和我們一起學習哈。