#混合開發 Flutter框架 序言
Flutter是一個由谷歌開發的開源移動應用軟件開發工具包,用於爲Android、iOS、 Windows、Mac、Linux、Google Fuchsia開發應用
# 架構組織
flutter 主要組成部分:
- Dart 平臺
- Flutter 引擎
- 基礎庫
- 定製化設計的語言組件
# Dart平臺
Flutter應用是使用Dart語言編寫的,並利用了該語言的許多高級功能。
在Windows、macOS和Linux上,通過半官方的Flutter Desktop Embedding項目,Flutter在Dart虛擬機中運行,該虛擬機具有即時編譯執行引擎。在編寫和調試應用時,Flutter使用即時編譯功能進行“熱重載”,可以將對源文件的修改注入正在運行的應用中。Flutter通過支持有狀態的熱重載來擴展此功能,在大多數情況下,對源代碼的更改可以立即在運行的應用中反映出來,而無需重新啓動或丟失任何狀態。[11]Flutter實現的此功能已廣受讚譽。
Flutter應用的發佈版本在Android和iOS上都進行了提前(AOT)編譯,使Flutter在移動設備上可以高性能地運行。
# Flutter引擎
Flutter的引擎主要使用C++開發,通過Google的Skia圖形庫提供底層渲染支持,亦提供平臺相關的SDK,例如Android和iOS[10]。Flutter引擎是用於託管Flutter應用的可移植的運行環境。它實現了Flutter的核心庫,包括動畫和圖形、文件和網絡I/O、可訪問性支持、插件架構以及Dart運行環境和編譯工具鏈。大多數開發人員將通過Flutter框架與Flutter進行交互,該框架提供了一個現代、響應式的框架,以及一組豐富的平臺、佈局和基礎組件。
# 基礎庫
基礎庫由Dart編寫,提供了用Flutter構建應用所需的基本的類和函數,例如與引擎通訊的API
# 組件
Flutter是通過組織、創建不同的組件完成用戶界面設計的。在Flutter中,一個組件代表用戶界面中不可變的一部分;包括文本、多邊形以及動畫在內的所有圖形都是用組件創建的。複雜的組件由簡單的組件結合而成。
# 定製化設計風格的組件
Flutter框架包含了兩套符合特定設計語言的組件。 稱作Material Design的組件實現的是同名的谷歌設計語言,稱作Cupertino的組件實現蘋果公司iOS的扁平化設計(Flat Design)
# Hello World示例
import 'package:flutter/material.dart';
void main() => runApp(HelloWorldApp());
class HelloWorldApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Hello World App',
home: Scaffold(
appBar: AppBar(
title: Text('Hello World App'),
),
body: Center(
child: Text('Hello World'),
),
),
);
}
}