複製鏈接
請複製以下鏈接發送給好友

Flutter

(跨平台應用程序開發框架)

鎖定
Flutter是Google開源的構建用户界面(UI)工具包,幫助開發者通過一套代碼庫高效構建多平台精美應用,支持移動、Web、桌面和嵌入式平台。 [5]  Flutter 開源、免費,擁有寬鬆的開源協議,適合商業項目。
軟件名稱
Flutter
軟件平台
Windows、macOSLinux、Chrome OS [6] 
上線時間
2015年5月3日 [1] 
最近更新時間
2022年5月12日
軟件語言
Dart [7] 
開發商
Google [8] 
軟件授權
BSD License
軟件版本
3.19 [5] 
軟件大小
704.55 MB

Flutter產生背景

Flutter可以方便的加入現有的工程中。在全世界,Flutter 正在被越來越多的開發者和組織使用,並且 Flutter是完全免費、開源的。它也是構建未來的 Google Fuchsia 應用的主要方式。
Flutter組件採用現代響應式框架構建,這是從React中獲得的靈感,中心思想是用組件(widget)構建你的UI。 組件描述了在給定其當前配置和狀態時他們顯示的樣子。當組件狀態改變,組件會重構它的描述(description),Flutter 會對比之前的描述, 以確定底層渲染樹從當前狀態轉換到下一個狀態所需要的最小更改。

Flutter版本記錄

Flutter的第一個版本被稱為“Sky”,運行在Android操作系統上。它是在2015年Dart開發者峯會 [1]  上亮相的,其目的是能夠以每秒120幀的速度持續渲染。
Beta
Beta1版本於2018年2月27日在2018 世界移動大會公佈 [2] 
Beta2版本2018年3月6日發佈 [3] 
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、添加特性和修復bug。在仿真器模擬器和ios、android硬件上體驗亞秒級的重載,而不會丟失狀態。
Flutter Flutter

Flutter絢麗UI

通過Flutter內建的漂亮的質感設計和Cupertino(ios-flavor)小工具、豐富的動畫API,平滑的自然滾動和平台感知,讓用户感到滿意。

Flutter響應式

絢麗UI
絢麗UI(4張)
通過Flutter的現代響應式(Reactive)框架和豐富的平台佈局和基礎組件輕鬆構建您的用户界面。用強大而靈活的API解決2D、動畫、手勢、效果等難題。
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++ 引擎,與對 AndroidiOS 提供的支持一致。 [9] 
參考資料