Flutter - Wikiwand
For faster navigation, this Iframe is preloading the Wikiwand page for Flutter.

Flutter

维基百科,自由的百科全书

Flutter
原作者 Google
开发者 Google与社区
初始版本 Alpha (v0.0.6) / 2017年5月,​2年前​(2017-05[1]
稳定版本
v1.12.13+hotfix.5
(2019年12月11日,​37天前​(2019-12-11[2]
编程语言 CC++Dart[3]
系统平台 AndroidiOSGoogle Fuchsia、Web平台、WindowsmacOSLinux
类型 应用框架
网站 flutter.dev

Flutter是一个由Google开发的开源移动应用软件开发工具包,用于为AndroidiOS、 Windows、Mac、Linux、Google Fuchsia开发应用[4]

Flutter第一个版本支持Android操作系统,开发代号称作“Sky”。 它于2015年的Flutter开发者会议上被公布,宣称其目标为实现120FPS渲染性能[5]。在上海Google Developer Days的主题演讲中,Google宣布了Flutter Release Preview 2,这是Flutter 1.0之前的最后一个重要版本。2018年12月4日,Flutter 1.0在Flutter Live活动中发布,是该框架的第一个“稳定”版本。[6]2019年12月11日,在Flutter Interactive活动上发布了Flutter 1.12,宣布Flutter是第一个为环境计算设计的UI平台。[7]

框架组织

Flutter的主要组成部分包括:

  • Dart平台
  • Flutter引擎
  • 基础库
  • 定制化设计风格的组件

Dart平台

Flutter应用是使用Dart语言编写的,并利用了该语言的许多高级功能。[8]

WindowsmacOSLinux上,通过半官方的Flutter Desktop Embedding项目,Flutter在Dart虚拟机中运行,该虚拟机具有即时编译执行引擎。在编写和调试应用时,Flutter使用即时编译功能进行“热重载”,可以将对源文件的修改注入正在运行的应用中。Flutter通过支持有状态的热重载来扩展此功能,在大多数情况下,对原始码的更改可以立即在运行的应用中反映出来,而无需重新启动或丢失任何状态。[9]Flutter实现的此功能已广受赞誉。

Flutter应用的发布版本在Android和iOS上都进行了提前(AOT)编译[10],使Flutter在移动设备上可以高性能地运行。

Flutter引擎

Flutter的引擎主要使用C++开发,通过Google的Skia图形库提供底层渲染支持,亦提供平台相关的SDK,例如AndroidiOS[8]。Flutter引擎是用于托管Flutter应用的可移植的运行环境。它实现了Flutter的核心库,包括动画和图形、文件和网络I/O、可访问性支持、插件架构以及Dart运行环境和编译工具链。大多数开发人员将通过Flutter框架与Flutter进行交互,该框架提供了一个现代、响应式的框架,以及一组丰富的平台、布局和基础组件。

基础库

基础库由Dart编写,提供了用Flutter构建应用所需的基本的类和函数,例如与引擎通讯的API[11]

组件

Flutter是通过组织、创建不同的组件完成用户界面设计的。在Flutter中,一个组件代表用户界面中不可变的一部分;包括文本、多边形以及动画在内的所有图形都是用组件创建的。复杂的组件由简单的组件结合而成。

定制化设计风格的组件

Flutter框架包含了两套符合特定设计语言组件。 称作Material Design的组件实现的是同名的Google设计语言,称作Cupertino的组件模仿了苹果iOS的设计[12][13]

Hello World示例

一个Flutter中的Hello World程序如下所示:

 1 import 'package:flutter/material.dart';
 2 
 3 void main() => runApp(HelloWorldApp());
 4 
 5 class HelloWorldApp extends StatelessWidget {
 6   @override
 7   Widget build(BuildContext context) {
 8     return MaterialApp(
 9       title: 'Hello World App',
10       home: Scaffold(
11         appBar: AppBar(
12           title: Text('Hello World App'),
13         ),
14         body: Center(
15           child: Text('Hello World'),
16         ),
17       ),
18     );
19   }
20 }

参考文献

  1. ^ Chris Bracken. Release v0.0.6: Rev alpha branch version to 0.0.6, flutter 0.0.26 (#10010) · flutter/flutter. GitHub. [2018-08-08]. 
  2. ^ Releases – Flutter. GitHub. 
  3. ^ FAQ - Flutter. [2018-08-08]. 
  4. ^ Google’s "Fuchsia" smartphone OS dumps Linux, has a wild new UI. Ars Technica. 
  5. ^ Amadeo, Ron. Google’s Dart language on Android aims for Java-free, 120 FPS apps. Ars Technica. 1 May 2015. 
  6. ^ Speed Up Native Development As Google Flutter Comes Out Of Beta. Appetiser Apps. [2018-12-21] (英语). 
  7. ^ Flutter: the first UI platform designed for ambient computing. Flutter blog. [2019-12-11] (英语). 
  8. ^ 8.0 8.1 Technical Overview - Flutter. flutter.io. [2017-12-13] (英语). 
  9. ^ Lelel, Wm. Why Flutter Uses Dart. HackerNoon. 26 February 2018 [5 December 2018]. 
  10. ^ stephenwzl. Flutter’s Compilation Patterns. ProAndroidDev. 2018-08-01 [2018-12-06]. 
  11. ^ foundation library - Dart API. [2017-12-13] (英语). 
  12. ^ Material Design Widgets - Flutter. [2017-12-13] (英语). 
  13. ^ Cupertino (iOS-style) Widgets - Flutter. [2017-12-13] (英语). 

外部链接

{{bottomLinkPreText}} {{bottomLinkText}}
Flutter
Listen to this article