-
Flutter
(跨平台應用程序開發框架)
鎖定
Flutter產生背景
Flutter可以方便的加入現有的工程中。在全世界,Flutter 正在被越來越多的開發者和組織使用,並且 Flutter是完全免費、開源的。它也是構建未來的 Google Fuchsia 應用的主要方式。
Flutter組件採用現代響應式框架構建,這是從React中獲得的靈感,中心思想是用組件(widget)構建你的UI。 組件描述了在給定其當前配置和狀態時他們顯示的樣子。當組件狀態改變,組件會重構它的描述(description),Flutter 會對比之前的描述, 以確定底層渲染樹從當前狀態轉換到下一個狀態所需要的最小更改。
Flutter版本記錄
Flutter的第一個版本被稱為“Sky”,運行在Android操作系統上。它是在2015年Dart開發者峯會
[1]
上亮相的,其目的是能夠以每秒120幀的速度持續渲染。
Beta
1.0版本於2018年12月5日(北京時間)發佈
[4]
。
2.0版本於2021年3月4日(北京時間)發佈。
3.0版本於2022年5月12日(北京時間)發佈。
Flutter示例代碼
Hello World!
import 'package:flutter/material.dart'; void main() { runApp(new Center( child: new Text('Hello World!') )); }
在Dart2.0版本之後,可以省略new。
import 'package:flutter/material.dart'; void main() { runApp(Center( child: Text('Hello World!') )); }
runApp函數接收給定的組件(Widget)並使其成為組件樹的根。 在此例中,組件樹由兩個組件構成,Center組件和它的子組件-Text組件。框架強制根組件覆蓋整個屏幕,這意味着“Hello, world”文本在屏幕上居中顯示。需要注意的是,上面的例子中,文字的樣式是缺省的。不必擔心,當使用MaterialApp時,它會使用 Material Design 樣式。
在編寫app時,通常會創建獨立組件,是繼承無狀態的StatelessWidget還是有狀態的StatefulWidget, 取決於您的組件是否需要管理狀態。組件的主要工作是實現一個build函數,它使用其他低級別的組件來構建自己。Flutter框架將依次構建這些組件,最終會到達代表底層渲染對象的組件-RenderObject,它會計算並描述組件的幾何形狀。
Flutter框架特性
Flutter快速開發
Flutter絢麗UI
通過Flutter內建的漂亮的質感設計和Cupertino(ios-flavor)小工具、豐富的動畫API,平滑的自然滾動和平台感知,讓用户感到滿意。
Flutter響應式
class CounterState extends State<Counter> { int counter = 0; void increment() { // 通知Flutter框架狀態已改變 // 因此框架可以運行build()並更新顯示 setState(() { counter++; }); } Widget build(BuildContext context) { // 這個方法會在每次setState調用時運行 // Flutter框架已經對重複快速運行build方法進行優化 // 因此你可以僅更新你想要更新的任何東西,而不必 // 更新整個組件實例。 return Row( children: <Widget>[ RaisedButton( o nPressed: increment, child: Text('Increment'), ), Text('Count: $counter'), ], ); } }
訪問原生功能
通過平台api、第三方sdk和原生代碼使您的應用變得生動起來。Flutter讓您可以重用您現有的java、swift和Objc代碼,並在iOS和Android上訪問原生特性和SDK。
訪問平台功能非常簡單。這是互操作示例的片段:
Future<Null> getBatteryLevel() async { var batteryLevel = 'unknown'; try { int result = await methodChannel.invokeMethod('getBatteryLevel'); batteryLevel = 'Battery level: $result%'; } on PlatformException { batteryLevel = 'Failed to get battery level.'; } setState(() { _batteryLevel = batteryLevel; }); }
Flutter框架結構
Flutter的主要結構包括:
- Flutter engine
- Foundation library
- Design-specific widgets
Flutter最新資訊
2022年2 月 ,據谷歌官方消息,谷歌為開發者帶來了 Windows 平台支持的首個正式版本,Flutter 穩定版本全面支持 Windows 應用。谷歌表示,Flutter 的 Windows 實現結合了 Dart 框架和 C++ 引擎,與對 Android 和 iOS 提供的支持一致。
[9]
- 參考資料
-
- 1. Sky: An Experiment Writing for Android with Dart .優酷.2015-05-03[引用日期2018-04-19]
- 2. Flutter beta 1 重磅發佈:開發精美的原生應用 .搜狐網[引用日期2018-04-19]
- 3. Flutter releases .Github[引用日期2018-04-19]
- 4. 期待已久 Google移動開發平台Flutter 1.0正式發佈 .網易[引用日期2018-12-05]
- 5. Flutter 中文資源主頁 | Flutter中文文檔網站 .Flutter官方.2021-03-22[引用日期2021-05-05]
- 6. 安裝和環境配置 - Flutter 中文文檔 - Flutter 中文資源 .Flutter官方.2021-04-19[引用日期2021-05-05]
- 7. 編寫第一個 Flutter 應用 - Flutter 中文文檔 - Flutter 中文資源 .Flutter官方.2021-01-05[引用日期2021-05-05]
- 8. 關於 Flutter 文檔中文版 - Flutter 中文文檔 - Flutter 中文資源 .Flutter官方.2019-12-20[引用日期2021-05-05]
- 9. 谷歌:Flutter 正式支持 Windows 應用,與 Android 和 iOS 支持一致 - IT之家 .IT之家[引用日期2022-02-16]