3

flutter是什么?

 5 months ago
source link: https://blog.p2hp.com/archives/11709
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

flutter是什么? | Lenix Blog

Flutter 是Google创建的开源 UI 软件开发工具包。它用于从单个代码库为任何Web浏览器开发跨平台应用程序,[4] Fuchsia、Android、iOS、Linux、macOS和Windows。[5]首次描述于 2015 年,[6] [7] Flutter 于 2017 年 5 月发布。[1]

历史
Flutter 的第一个版本被称为“Sky” [8],运行在Android 操作系统上。它在 2015 年Dart开发者峰会[9]上亮相,明确表示能够以每秒120 帧的速度进行一致渲染。[10] 2018 年 9 月在上海举行的Google 开发者日主题演讲期间,Google 宣布了 Flutter Release Preview 2,这是 Flutter 1.0 之前的最后一个主要版本。2018年12月4日,Flutter 1.0在Flutter Live活动上发布,标志着该框架的第一个稳定版本。2019年12月11日,Flutter 1.12在Flutter Interactive活动上发布。[11]

2020 年 5 月 6 日,Dart 软件开发工具包 ( SDK ) 2.8 版和 Flutter 1.17.0 发布,增加了对Metal API的支持,使 iOS 设备上的性能提高了约 50%,以及新的 Material 小部件和网络跟踪开发工具。

2021 年 3 月 3 日,Google 在 Flutter Engage 在线活动中发布了 Flutter 2。此次重大更新带来了对基于 Web 的应用程序的官方支持,包括新的 Canvas Kit 渲染器和 Web 特定小部件、对Windows、macOS和Linux的早期访问桌面应用程序支持以及改进的添加到应用程序 API。[12]该版本还利用了具有null-safety功能的 Dart 2.0 ,这导致了许多重大更改和许多外部包的问题;然而,Flutter 团队提供了缓解这些问题的说明和工具。[13]

2021年9月8日,Google发布了Dart 2.14和Flutter 2.5。此次更新带来了 Android 全屏模式的改进以及名为 Material You的 Google Material Design最新版本。Dart 收到了两个新的更新,标准化了lint条件并将对Apple Silicon 的支持标记为稳定。[14] [15]

2022年5月12日,谷歌宣布发布Flutter 3和Dart 2.17。此更新将支持的平台总数扩大到六个,包括对 Intel 和 Apple Silicon 处理器上的 Linux 和 macOS 的稳定支持。[16]

2022 年 8 月 30 日,Flutter 3.3 发布。此版本具有Objective-C和Swift互操作性以及名为“Impeller”的新渲染引擎的早期预览,该引擎旨在减少着色器编译引起的卡顿。[17]

2023 年 1 月 25 日,Flutter 3.7 发布。

框架架构
Flutter 的主要组件包括:

飞镖平台
颤振引擎
基金会图书馆
设计特定的小部件
Flutter开发工具(DevTools)
Dart 语言
Flutter 应用程序是用Dart语言编写的,并利用了该语言的许多更高级的功能。[18]

为了获得更好的性能,所有平台上的 Flutter 应用程序的发布版本都使用提前(AOT)编译,[19]除了在 Web 上,其中代码被转换为JavaScript。[20]

Flutter继承了Dart的Pub 包管理器和软件存储库,允许用户发布和使用自定义包以及Flutter专用的插件。[21]

颤振引擎
Flutter 的引擎主要用C++编写,使用 Google 的Skia图形库或自定义的“Impeller”图形层提供低级渲染支持。[17]此外,它还与特定于平台的SDK(例如Android和iOS提供的 SDK)接口,以实现可访问性、文件和网络 I/O、本机插件支持等。[18]

基础库
Foundation 库用Dart编写,提供了用于使用 Flutter 构建应用程序的基本类和函数,例如与引擎通信的API 。[18] [22]

设计特定的小部件
Flutter框架包含两套符合特定设计语言的小部件: Material Design小部件实现了Google的同名设计语言, Cupertino小部件实现了Apple的iOS 人机界面指南。[18] [23] [24] [25] Flutter 允许开发人员在任一平台上使用任意一组小部件,即甚至 Android 上的 Cupertino 小部件。第三方软件包可用于自动调整应用程序的设计以适应当前操作系统。[26]

IDE支持
Flutter 通过插件维持对以下IDE和编辑器的官方支持:

智能IDEA
安卓工作室
视觉工作室代码
Emacs
其他 IDE 可以与社区支持的插件一起使用,或者通过命令行使用 Flutter 工具。[10]市场上出现了一些工具,它们已经开始利用官方的 Flutter IDE 框架并提供定制的图形使用界面构建器。

小部件
Flutter 程序中的基本组件是“小部件”,它又可以由其他小部件组成。小部件通过类似于React 的实现来描述 UI 元素的逻辑、交互和设计。与其他跨平台工具包(例如React Native和Xamarin)使用本机平台组件绘制小部件不同,Flutter 以每个像素为基础渲染小部件本身。

小部件有两种基本类型:无状态和有状态。无状态小部件仅在其输入发生变化时更新,这使得它们非常高效,而有状态小部件可以调用该setState()方法来更新内部状态并重绘。[27]

尽管小部件是构建 Flutter 应用程序的主要方法,但也可以绕过它们,直接在画布上绘图。此功能偶尔被用来在 Flutter 中实现游戏引擎。[28]


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK