在这一篇文章中,我们将主要介绍 Flutter 的发展历史,Flutter 的特性,以及 Flutter 的基础开发知识。
Flutter 是 Google 开源的新一代跨平台 UI 框架。不同于其他我们熟知的移动端跨平台方案,Flutter 更像游戏引擎,因为 Flutter 有自己的渲染引擎:我们在 Flutter 上写了界面后,Flutter 会在自己的 canvas 上渲染,移动端不负责绘制。
一、跨平台
Flutter 是 Google 新一代的跨平台 UI 框架,除了默认支持的 Android 和 iOS,经过扩展后还支持:
二、高性能
三、丰富的 UI 组件
Flutter 内置众多精美的 Material Design(Android风格)和 Cupertino(iOS风格)的小部件,而且 UI 样式高度还原 Native 的样式,可以让我们直接使用,而且这些组件都很方便组合,还有丰富的动画库。
四、学习成本低
Flutter 的学习成本很低,屏蔽了底层的很多实现,可以很快的入手。这也带来一个问题,就是没有办法深入 Flutter 的底层,这也是本教程的目的,除了 Flutter 的使用,也会深入分析 Flutter 的底层实现。
五、开发效率高
Flutter 拥有丰富的 UI 部件,而且支持 Hot Reload,同时 Flutter 使用 Dart 语言开发,Dart 具备很多新的语言特性,可以使得开发速度很快。
六、和任何平台的交互都很方便
由于 Flutter 的架构设计,使得 Flutter 可以在任何平台扩展,也可以和平台很方便的交互,从而可以让 Flutter 使用平台的功能。
七、Write once,Run everywhere
只要写一份代码,就可以构建出 Android 和 iOS 两个平台的 APP,体验能达到和原生应用一致,真正做到「Write once , Run everywhere.」
Flutter 使用 Dart 语言开发。
Dart 语言对于大家来说都比较陌生,但是不要担心,Dart 语言功能强大而且很容易学会,网上也有很多教程,大伙可以自行学习,只要记住一点,不要害怕,慢慢看。
Flutter 源代码在 git 上有四个分支,对应着 Flutter 的四种版本,这四种版本,稳定性依次提高,但新特性却依次减少:
master
master 分支上的代码是最新的,所以包含新的特性,但是 master 分支上的代码没有经过测试,很可能会出现各种各样的 bug。
dev
Google 工程师会定期将 master 分支的代码滚动到 dev 分支上,在执行滚动的过程中,会对代码进行 Google 的内部测试,所以 dev 渠道是通过测试的最新的构建。但并不意味着 dev 版本不会有 bug,因为这个测试只是最基础的测试,一旦发现有严重的阻塞性的 bug,就会把这个 dev版本列为Bad Builds ,而且这个版本也不会被选为 beta 版本。
beta
beta 渠道的更新频率是一个月,每个月初,Flutter 团队会从前一个月左右的 dev 版本中选取最佳版本作为 beta 版发布,这个版本最起码在 dev 分支上使用一周的时间,且没有新的严重的 bug。
stable
stable 渠道的更新频率是一个季度,每个季度发布一次或几次版本,但 stable 的发布频率是不确定的。stable 版本从 beta 分支中选出,只有当 Flutter 团队确定 beta 分支中有一个非常稳定非常好的构建时,而且通常 stable 版本的发布会在对外的公共活动中公布,例如 Flutter Live。
目前 stable 三个版本:1.0 、 1.2.1 和 。
当我们用于正式的生产环境时,一定要选择 stable 的版本。