1.都2019了,你还没据说过Flutter?

目录传送门:《Flutter快速上手指南》先导篇
c++

1. 什么是 Flutter?

Flutter 是一套由 Google 主导开发的全新的、跨平台的移动应用开发框架。git

Flutter 使用简洁的 Dart 语言来进行开发工做。github

它是真正意义上的原生跨平台开发框架,它完美的作到了一套代码,便可在 Android、iOS 两大主流移动平台运行。架构

Google 最神秘的、全新的 大一统 操做系统(听说它有取代 Android 等移动平台的计划😨)—— Fuchsia,就使用 Flutter 来做为其系统平台的应用开发框架。框架

近两年 Google 在花费不少资源投入到 Flutter 的开发和推广工做中,难道是为 Fuchsia 的面世而铺路?🤔工具

这是目前 Flutter 的架构图:布局

从图中能够清晰的看到,从下到上:post

  • Embedder,对接平台嵌入层性能

  • Engine,由 c/c++ 编写的 Flutter 引擎ui

  • Framework,由 Dart 编写的 Framework 框架

Flutter 之因此可以在原生层面上作到跨平台,是由于它经过在底层使用通用的图形绘制库 Skia(绘制内容会被经过 OpenGL提供给 GPU 渲染),封装了一套全新的、独立的 UI 框架,即 Flutter。

2. Flutter 的特性

2.1 好的方面

  1. Flutter 能够实现一套代码,同时运行在 Android、iOS 两套移动设备上。

  2. Flutter 内部实现了一套自有的 UI 渲染引擎,而且提供了一套完整的、丰富的、无关平台的 UI 库。 相比其它的跨平台方案,Flutter 显然具备更高的性能,更加贴合原生。

  3. 因为 Flutter 应用层使用了 Dart 语言来进行开发。 因为 Dart 同时支持 AOT(Ahead Of Time,预编译)JIT(Just In Time,即时编译) 两种运行模式, 因此在开发阶段,Flutter 经过 JIT 模式来得到 Hot-reload 的特性。 而在发布阶段,Flutter 经过 AOT 模式预编译得到高性能的应用程序包。

  1. 热度持续上升的社区活跃度。这意味着,愈来愈多的开发者投身到 Flutter 的建设中,这让开发者对其将来的稳定性和丰富性提供了信心。 这张图显示了 Flutter 在 StackOverflow 上的活跃趋势。

  2. 最新的 Flutter 1.2 版本已经支持了 Android 的 AppBundle,这意味着热更新,和更小的安装包成为了可能。

2.2 很差的方面

  1. 因为 Flutter 是纯自建的 UI 库,若是一些自定义的 UI 库使用了其中一个平台特性, 那么就会形成另外一个平台没法使用的状况。

所以,开发者必须时刻谨慎的选择和编写自定义的 Widget。

  1. 也许因为 Flutter 刚刚出现,社区相关的工具和库没有很丰富。 有时候出现的诸如布局等错误时,会让人感到很困惑,而且你可能很难在 Google 上搜索到有用的信息。

  2. 目前 Debug 还不是最好用的时候,至少和传统的原生 Debug 相比,还有很大的提升空间。

  3. 相比于 Android 的 xml 建立 UI,目前 Flutter 所提供的 UI 建立方式不是直观。开发者须要较长的一段时间去适应。

    面对较复杂的布局,开发者必须时刻保持清醒的意识,不断的合理的划分你的代码。

总之,Flutter 对于移动端开发效率的提高是不言而喻的,在不少场景下,它使得开发人员只用编写一套代码,就能在 Android 和 iOS 上同时运行。 并且,还能维持较高的性能水平,这是让人喜好的。还能说什么呢,Flutter 值得移动开发者一试的。

目录传送门:《Flutter快速上手指南》先导篇

如何找到我?

传送门:CoorChice 的主页

传送门:CoorChice 的 Github

相关文章
相关标签/搜索