Flutter

Flutter是一个由谷歌开发的-{zh-tw:開放原始碼;zh-cn:开源}-跨平台应用软件开发工具包，用于为Android、iOS、Windows、macOS、Linux Desktop、Google Fuchsia开发应用。

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

 框架组织 
Flutter的主要组成部分包括：
 Dart平台
 Flutter引擎
 基础-{zh-tw:程式庫;zh-cn:库}-
 客製化设计语言的组件
 Flutter DevTools

 Dart平台 
Flutter是使用Dart语言编写，并利用该语言的许多高级功能。

在Windows、macOS和Linux上，Flutter在Dart虚拟机中运行，该虚拟机具有即時編譯执行引擎。在编写和调试应用时，Flutter使用即时编译功能进行“热重-{}-载”(Hot Reload)，可以将对源文件的修改注入正在运行的应用中。Flutter通过支持有状态的热重载来扩展此功能，在大多数情况下，对源代码的更改可以立即在运行的应用中反映出来，而无需重新启动或丢失任何状态。Flutter实现的此功能已广受赞誉。

Flutter应用的发布版本在Android和iOS上都进行了提前（AOT, Ahead Of Time）编译，使Flutter在移动设备上可以高性能地运行。

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

 -{zh-tw:基礎程式庫;zh-cn:基础库}- 
基础-{zh-tw:程式庫;zh-cn:库}-由Dart编写，提供了用Flutter-{zh-cn:构建;zh-tw:組建}-應用程式所需的基本的-{zh-tw:類別;zh-cn:类}-和函数，例如与引擎通讯的API。

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

 -{zh-tw:客製化設計風格的元件;zh-cn:定制化设计风格的组件}- 
Flutter框架包含了两套符合特定设计语言的组件。 称作Material Design的组件-{zh-tw:實作;zh-cn:实现}-的是同名的谷歌设计语言，称作Cupertino的组件-{zh-tw:實作;zh-cn:实现}-苹果公司iOS的人机接口指南（Human interface guidelines）
。

-{zh-tw:第三方擴充;zh-cn:第三方扩展}-
Flutter 使用 pub  管理第三方依赖包。在项目的 pubspec.yaml 中，开发者可以指定每个-{zh-tw:相依項;zh-cn:依赖}-的版本范围，或者固定版本号。

IDE
Flutter支持使用 Visual Studio Code 或 Android Studio ，需要安装 Flutter 插件和 Dart 插件。

在中国大陆，由于防火长城的存在，需要切换软件源才能正常安装Flutter。

-{zh-tw:Hello World 範例;zh-cn:Hello World 示例}-

一个Flutter中的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: const Text('Hello World App'),
        ),
        body: const Center(
          child: Text('Hello World'),
        ),
      ),
    );
  }
}

 参考文献 

 外部链接 


Category:2017年软件
Category:Google軟體
Category:程序设计工具
Category:自由软件
Category:軟體框架
Category:使用BSD许可证的软件
.