关于flutter:Flutter-118个Flutter的优势以及为什么要在下一个项目中尝试Flutter

27次阅读

共计 3513 个字符,预计需要花费 9 分钟才能阅读完成。

让咱们一起来理解 Flutter 与其余跨平台框架的劣势,以及这些劣势在开发流程中的作用。

  • Flutter 是什么

  • Flutter 的劣势

    • 1. 跨平台应用雷同的 UI 和业务逻辑
    • 2. 节俭开发工夫
    • 3. 更快的迭代速度
    • 4. 有限靠近原生的交互体验
    • 5. 丰盛的 UI 动画
    • 6. 独立的渲染引擎
    • 7. 可能很容易与原生进行交互
    • 8. 不只是能运行在挪动端
  • 从业务层来看,Flutter 是一个好的抉择吗?

  • 为什么要尝试应用 Fultter?

Flutter 是什么

就我目前的职业开发生涯中,目击了太多太多我的项目不晓得该抉择哪种跨平台计划的例子。这些我的项目都是不同的,然而咱们都心愿这些我的项目可能运行在更多平台和更多设施上,常见的作法就是在不同的客户端招聘不同的开发人员来进行开发工作,比方手机端有 iOS 程序员和 Android 程序员等等。
我记得在 2013 年,我第一次看到了比较完善的跨平台游戏开发计划,那时候我就在想,为什么 App 端没有这种工具能够满足咱们跨平台的需要呢?
然而,当初咱们有了,它就是 Flutter!我将在上面介绍我应用 Flutter 做了些什么,心愿能对你有所帮忙或启发。
我有过一些 iOS 开发教训,也有过一些游戏开发教训,能够说 Flutter 就是我始终在寻找的跨平台解决方案。它不仅应用简略,还能放弃跨平台 UI 的一致性时,并且很容易的与原生进行交互。是十分好的体验。

Flutter 的劣势

你之前可能会理解到,所有的跨平台框架都会在节约开发工夫上有所帮忙。然而,Flutter 在有些中央跟其余框架有很多不同,让咱们来看看,到底 Flutter 比其余跨平台框架在哪些地方做的更好。

1. 跨平台应用雷同的 UI 和业务逻辑

咱们晓得,基本上所有的跨平台框架都提供了一种在指标平台之间共享代码的实现形式。然而没有任何一个平台像 Flutter 这样容许共享 UI 代码以及 UI 自身。
为了阐明这一点,上面咱们来看一下其中一个跨平台框架 UI 的实现逻辑:

React Navite 的渲染过程看起来像是在每个平台上都很简略。然而从图中咱们不难发现,这种渲染过程须要仍然各个平台原生组件来进行渲染,React Native 就是帮咱们实现了对各个平台应用层 UI 控件的映射。这就须要将每个动画每个 UI 映射到各个平台的动画和 UI 上,显然这比拟繁琐。
相比之下,Flutter 不须要依赖热任何平台的 UI 组件就能生成 UI 界面。Flutter 惟一须要的就是一个画布,也就是咱们常说的 Canvas。
上面是 Flutter 的渲染过程:

Flutter 可能在任何平台上构建齐全截然不同的的 UI,这种独特的渲染形式是它怀才不遇的要害。
简而言之,应用 Flutter 来实现 UI 和业务逻辑可能节省时间和精力,并且同时不影响最终产品的性能。原来 iOS、Android 须要每个平台都要装备相应的程序员,应用 Flutter 只须要一组程序员就能够了,还节俭了程序员!

2. 节俭开发工夫

根据我集体的开发教训,从编译到运行一个 Android App 至多须要 40 秒的工夫。同时,在调试 UI 的过程中须要不停的编译和运行,这就须要耗费大量的工夫。诚然,Android Studio 是具备布局预览性能的,然而总有一点有余的是:Android Studio 不能每次都像预期那样运行,特地是在自定义 View 的时候。
Flutter 的“热重载”性能能够让咱们实时看到利用的变动,并且不会失落以后应用程序的状态。这就是应用 Flutter 节俭开发工夫的根本原因。
此外,Flutter 个人还付出了很多致力来提供各种控件。这些控件大多数都能够自定义,这就在构建 UI 上给咱们节俭了不少工夫。除了泛滥的外围控件外,Flutter 还提供了大量的 Material(Android 格调)和 Cupertino(iOS 格调)的控件能够满足不同的设计格调。
如下图:

总而言之,应用 Flutter 来开发,咱们能够绕过几个程序开发过程中比拟耗时的步骤,这样使整个开发过程更快,更简略且更省心。

3. 更快的迭代速度

应用 Flutter 来开发迭代产品会更快。在大多数状况下,咱们研发一个 App 须要 Android 端和 iOS 端都须要进行开发和保护,而 Flutter 只有一组人员就能够实现这个工作。在开发工夫上至多节俭了一倍。起因很简略,咱们只须要编写一套代码就能够失去在各个利用平台雷同的交互成果。任何基于 2D 的 UI 都能够在 Flutter 中实现,且不须要调用原生代码。
除此之外,Flutter 应用申明式语法构建 UI,依据我的教训,它能够显著进步开发速度。当波及到 UI 成果调整时这是最显著的。

4. 有限靠近原生的交互体验

咱们晓得,App 的性能是好的用户体验的要害。
只管很难说出确切的数字,然而能够必定地说,在大多数状况下,Flutter 应用程序的性能与本机应用程序没有区别,甚至在简单的 UI 动画场景中体现的更好。
为什么呢?与大多数跨平台框架不同的是,Flutter 不依赖任何中间代码做映射。Flutter 利用间接调用了底层代码,这就极大的进步了性能。
咱们同样能够应用 Flutter 齐全编译和公布应用程序。

5. 丰盛的 UI 动画

Flutter 的一个最大的劣势就是能够随时批改屏幕上的任何控件,无论这个控件有多简单。同样也反对间接应用原生控件来做 UI 动画。
上面是一个简略的自定义动画的示例:

同样的,应用 Flutter 生成动画更加灵便和通用,并且不会额定减少工作量。过渡动画、圆角、色彩、暗影、变换等,Flutter 都能轻松实现。
这里给大家提供更多的 Demo。让咱们更好的相熟这些动画。

6. 独立的渲染引擎

与其余框架相比,Flutter 应有更多的能力。显然,这须要框架自身十分弱小,且须要框架自身是一个高性能的框架。
Flutter 是应用 Skia 作为底层的渲染引擎。有了 Skia 的反对,UI 层能够在任何平台上进行渲染,且放弃一致性。换句话说,咱们不须要调整任何代码就能够将 UI 出现在其余平台上,这极大的简化了开发过程。

7. 可能很容易与原生进行交互

除了 UI 之外,咱们还有很多性能须要依赖原生的反对,比方获取 GPS 信息,蓝牙通信,传感器,照相机,相册等等。这些性能都能够通过 Flutter 的插件来实现。
当然有些时候这些插件也是不足以满足咱们的需要。然而不必放心,Flutter 应用的开发语言(Dart 语言)与原生代码通信非常简单。只须要几行代码咱们就能够实现原生与 Flutter 之间的交互,就能够实现任何你想调用原生性能的需要。
交互流程如下图:

8. 不只是能运行在挪动端

Flutter 不仅是能够在挪动设施上应用,还反对 Web 端和桌面端。在 2018 年的 I / O 会议上,Google 展现了 Flutter Web 的技术,这使得在浏览器中运行纯 Flutter 应用程序成为可能,且不须要批改任何源代码。
上面是演示视频:

https://www.bilibili.com/vide…

不能关上视频的能够点击这里查看
官网的这一操作,意味着 Flutter 从挪动开发框架降级到了全平台开发框架的行列。
如果咱们不须要在挪动端做部署和应用,技术娴熟的 Flutter 程序员能够让 Flutter 在热门平台上运行,包含但不限于 Android、iOS、Web 浏览器、Windows、macOS、Linux 甚至是嵌入式设施。同样的代码能够在这些任何平台上运行,且不须要批改任何 Dart 代码。

从业务层来看,Flutter 是一个好的抉择吗?

是的!是的!是的!
软件产品能保障性能和稳定性、人员容易招聘、产品可能疾速的迭代和开发这些劣势都可能给企业带来微小的价值。一旦技术计划呈现缺点和存在任何方面的问题,都会给企业带来间接或间接的损失。
从这个角度来看,Flutter 都是能够升高咱们的危险的:

  • 目前 Google 正在研发 Fuchsia OS(与 Flutter 配合应用),因而 Flutter 会持续投入研发人员保护和降级,不会中断。
  • 应用 Flutter 的门槛并不高,因为社区中曾经有了很多的人气很高的 Android 开发人员都在提倡和应用 Flutter。
  • 曾经有很多大公司在应用,例如:阿里巴巴,Google Ads,AppTree,Reflectly 和 My Leaf 等等,这是 Flutter 实力的证实。

为什么要尝试应用 Fultter?

让咱们总结一下 Flutter 的最突出长处:

  • UI 和业务逻辑代码在各个平台出现成果始终
  • 更快的开发速度
  • 更快的迭代速度和更快的上线速度
  • 有限靠近原生的交互体验
  • 更容易的自定 UI 和动画性能
  • 独立的渲染引擎
  • 不依赖于任何平台的 UI 组件
  • 实用于更多的平台
  • 商业危险管制在最小

所以说,想开发跨平台的,性能低劣的利用,Flutter 是不二抉择。Flutter 正式成为最终的跨平台 UI 框架只是工夫问题。


正文完
 0