初识 Flutter 的产生

92 阅读4分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第32天, 点击查看活动详情

初识 Flutter

#1.2.1 Flutter 简介

Flutter 是一个基于Dart语言的框架,此框架含括了可以直接使用的类,因此你不不比在去编写内容。Flutter 是 Google 推出并开源的移动应用开发框架,主打跨平台、高保真、高性能。开发者可以通过 Dart 语言开发 App,一套代码同时运行在 iOS 和 Android平台。 Flutter 提供了丰富的组件、接口,开发者可以很快地为 Flutter 添加 Native 扩展。 Flutter 还提供了构建工具,一遍讲dartda代码构建打包;方便开发者更快捷的讲应用上架到appple store 和安卓应用商店中。

可跨平台的绘制能力和高性能的UI框架

Flutter 与其他构建移动应用程序的其他大多数框架不同, 因其既不使用 WebView,也不使用操作系统的原生控件。 相反,Flutter 使用自己的高性能渲染引擎来绘制 Widget(组件)。 Flutter 底层使用 Skia 作为其 2D 渲染引擎,Skia 是 Google的一个 2D 图形处理函数库,包含字型、坐标转换,以及点阵图,它们都有高效能且简洁的表现。 Flutter 高性能主要依靠以下两点: 第一:Flutter APP 采用 Dart 语言开发。Dart 在 JIT(即时编译)模式下,执行速度与 JavaScript 基本持平 第二:Flutter 使用自己的渲染引擎来绘制 UI ,布局数据等由 Dart 语言直接控制,所以在布局过程中不需要像 RN 那样要在 JavaScript 和 Native 之间通信,这在一些滑动和拖动的场景下具有明显优势,

下面我们简单介绍一下dart语言

Dart是谷歌开发出来的一种计算机编程语言后来被Ecma (ECMA-408)认定为标准 。它被用于web、服务器、移动应用  和物联网等领域的开发。它是宽松开源许可协议(修改的BSD证书)下的开源软件。

  1. 开发效率高。 程序主要有两种运行方式:静态编译与动态解释。静态编译的程序在执行前程序会被提前编译为机器码(或中间字节码),通常将这种类型称为AOT (Ahead of time)即 “提前编译”。而解释执行则是在运行时将源码实时翻译为机器码来执行,通常将这种类型称为JIT(Just-in-time)即“即时编译”。

  2. 高性能

Flutter 旨在提供流畅、高保真的的 UI 体验。为了实现这一点,Flutter 中需要能够在每个动画帧中运行大量的代码。

  1. 快速内存分配

Flutter 框架使用函数式流,这使得它在很大程度上依赖于底层的内存分配器。因此,拥有一个能够有效地处理琐碎任务的内存分配器将显得十分重要,在缺乏此功能的语言中,Flutter 将无法有效地工作。

4.类型安全和空安全

由于 Dart 是类型安全的语言,且 2.12 版本后也支持了空安全特性,所以 Dart 支持静态类型检测,可以在编译前发现一些类型的错误,并排除潜在问题,这一点对于前端开发者来说可能会更具有吸引力。

Dart 的未来

在当下诞生的 Dart,今后发展会怎样呢?

Dart 是一个优秀而年轻的现代语言,但一种编程语言并不是搞定了引擎和开发者接口就算完成了,而是必须在这个语言得以立足的库、框架、 应用程序等“生态”都成熟起来之后,其价值才会真正开始体现。而这一步,需要花上数年的时间。

目前,基于 Dart 语言的第三方库还很少,并且质量一般,不过值得庆幸的是, Flutter 和Fuchsia 的推动,Dart SDK 更新迭代的速度快了很多,开发者的热情也急剧增。

毕竟,在 Dart 社区目前最顶级的产品就是 Flutter 和 Fuchsia 了,因此 Dart 开发者主要以 Flutter 开发者居多,当然了也有用 Dart 开发浏览器前端的开发者,但人数并不多。所以,我觉得 Dart 是否能够成功,目前来看主要取决于 Flutter 和 Fuchsia 能否成功。而, Flutter 是构建 Fuchsia 的 UI 开发框架,因此这个问题也变成了 Flutter 能否成功。