我的文章
个人学习心得随记
Flutter简介
发布时间:2022-04-06 浏览数:98

Flutter 是什么?

Flutter是谷歌开源的移动端跨平台UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。简单来说,Flutter是一款移动应用程序SDK,包含框架、控件和一些工具,可以用一套代码同时构建Android和iOS应用,并且性能可以达到原生应用一样的性能。

Flutter 发展历史

  • 前身(2015.4.28)

    Flutter 的前身是 2015 年在 Dart Developer Summit(Dart开发者峰会)上发布的 Sky , Sky 使用 Dart 开发,可以在 Android 上开发高达 120FPS 的应用。

  • 第一个版本(2017.5.12)

    2017年5月12号,Flutter 发布了第一个版本 v0.0.6,在 GitHub 上可以看到发布的记录:github.com/flutter/flu…

  • alpha 阶段(2017.5.17)

    在 2017 Google I/O 上 Google 对外介绍了 Flutter 的存在,此后 Flutter 一直处在 alpha 阶段。

  • 首个 beta 版本(2018.2.27)

    2018 年 2 月 27 号的 MWC(Mobile World Congress,世界移动通信大会)上, Flutter 发布首个 beta 版本,Flutter 开始进入 beta 阶段,发布频率明显加快。

  • beta 阶段 (2018.5.8)

    2018 Google I/O 大会上,Flutter 发布了 beta3。

  • 首个发布预览版(2018.6.21)

    2018 GMTC 大会上,Flutter 发布了首个发布预览版。

  • 第二个发布预览版 (2018.9.19)

    2018 年上海的 GDD(Google Developer Days)上,Flutter 发布了第二个发布预览版。

  • 首个稳定版 1.0 (2018.12.4)

    2018 年的 Flutter Live 上,Flutter 正式发布了 1.0 稳定版,标志着 Flutter 已经完善,完全可以投入生产环境,开始进入新的阶段。

  • 第二个稳定版 1.2.1 (2019.2.26)

    2019 年 2 月 26 号的 MWC 上,Flutter 发布第二个稳定版本 1.2.1。

  • 第三个稳定版本 1.5.4-hotfix.2 (2019.5.7)

    2019 年 5 月 7 号的 Google I/O 上,Flutter 发布了第三个稳定版本 1.5.4-hotfix.2。

  • 截止目前最新的稳定版本是 v1.12.3+hotfix.8 (2020.2.9)

Flutter 特性

  1. 跨平台

    Flutter 是 Google 新一代的跨平台 UI 框架,除了默认支持的 Android 和 iOS,经过扩展后还支持:

    • PC 端:Windows、Linux、MacOS。

    • WEB 端:WEB 端已经发布了技术预览版,GitHub 地址:github.com/flutter/flu…

  2. 高性能

    • 界面可以达到 60 FPS,最高支持120FPS ,渲染效率和用户体验堪比 Native。

    • Flutter 应用在 Release 下会编译成 Native ARM code ,使得跨平台的代码运行效率很高。

    • Native 和 Flutter 之间是通过 JNI 桥接的,也使得 Native 和 Flutter 之间交互的损耗很低。

  3. 丰富的 UI 组件

    Flutter 内置众多精美的 Material Design(Android风格)和 Cupertino(iOS风格)的小部件,而且 UI 样式高度还原 Native 的样式,可以让我们直接使用,而且这些组件都很方便组合,还有丰富的动画库。

  4. 学习成本低

    Flutter 的学习成本很低,屏蔽了底层的很多实现,可以很快的入手。这也带来一个问题,就是没有办法深入 Flutter 的底层,这也是本教程的目的,除了 Flutter 的使用,也会深入分析 Flutter 的底层实现。

  5. 开发效率高

    Flutter 拥有丰富的 UI 部件,而且支持 Hot Reload,同时 Flutter 使用 Dart 语言开发,Dart 具备很多新的语言特性,可以使得开发速度很快。

  6. 和任何平台的交互都很方便

    由于 Flutter 的架构设计,使得 Flutter 可以在任何平台扩展,也可以和平台很方便的交互,从而可以让 Flutter 使用平台的功能。

  7. Write once,Run everywhere

    只要写一份代码,就可以构建出 Android 和 iOS 两个平台的 APP,体验能达到和原生应用一致,真正做到「Write once , Run everywhere.」

Flutter 开发语言

Flutter 使用 Dart 语言开发。

2011 年 10 月,在丹麦召开的 GOTO 大会上,Google 发布了一种新的编程语言 Dart。如同 Kotlin 和 Swift 的出现,分别是为了解决 Java 和 Objective-C 在编写应用程序的一些实际问题一样,Dart 的诞生正是要解决 JavaScript 存在的、在语言本质上无法改进的缺陷。

之后在 Google 内部孵化了移动开发框架 Flutter,弯道超车进入了移动开发的领域;而在 Google 未来的操作系统 Fuchsia 中,Dart 更是被指定为官方的开发语言。也正是因为使用者不多、历史包袱少,所以在经历了这么多的故事后,Dart 可以彻底转变思路,成为专注大前端与跨平台生态的语言。

Dart是一种强类型、跨平台的客户端开发语言。具有专门为客户端优化、高生产力、快速高效、可移植(兼容ARM/x86)、易学的OO编程风格和原生支持响应式编程(Stream & Future)等优秀特性。Dart主要由Google负责开发和维护,在2011年10启动项目,2017年9月发布第一个2.0-dev版本。

Dart本身提供了三种运行方式:

  1. 使用Dart2js编译成JavaScript代码,运行在常规浏览器中(Dart Web)。
  2. 使用DartVM直接在命令行中运行Dart代码(DartVM)。
  3. AOT方式编译成机器码,例如Flutter App框架(Flutter)。

Flutter在筛选了20多种语言后,最终选择Dart作为开发语言主要有几个原因:

  1. 健全的类型系统,同时支持静态类型检查和运行时类型检查。

  2. 代码体积优化(Tree Shaking),编译时只保留运行时需要调用的代码(不允许反射这样的隐式引用),所以庞大的Widgets库不会造成发布体积过大。

  3. 丰富的底层库,Dart自身提供了非常多的库。

  4. 多生代无锁垃圾回收器,专门为UI框架中常见的大量Widgets对象创建和销毁优化。

  5. 跨平台,iOS和Android共用一套代码。

  6. JIT & AOT运行模式,支持开发时的快速迭代和正式发布后最大程度发挥硬件性能。

在Dart中,有一些重要的基本概念需要了解:

  • 所有变量的值都是对象,也就是类的实例。甚至数字、函数和null也都是对象,都继承自Object类。
  • 虽然Dart是强类型语言,但是显式变量类型声明是可选的,Dart支持类型推断。如果不想使用类型推断,可以用dynamic类型。
  • Dart支持泛型,List表示包含int类型的列表,List<dynamic style="margin: 0px; padding: 0px; max-width: 100%; box-sizing: border-box !important; word-wrap: break-word !important; font-size: inherit; color: inherit; line-height: inherit;"></dynamic>则表示包含任意类型的列表。
  • Dart支持顶层(top-level)函数和类成员函数,也支持嵌套函数和本地函数。
  • Dart支持顶层变量和类成员变量。
  • Dart没有public、protected和private这些关键字,使用下划线“_”开头的变量或者函数,表示只在库内可见。

作者:尹star
链接:https://www.jianshu.com/p/6792f590c4f6
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


热门文章