【AICon】探索八个行业创新案例,教你在教育、金融、医疗、法律等领域实践大模型技术! >>> 了解详情
写点什么

是什么在阻碍移动应用开发者选择 Flutter?

  • 2019-08-16
  • 本文字数:2272 字

    阅读完需:约 7 分钟

是什么在阻碍移动应用开发者选择Flutter?

“Flutter 有什么不一样的吗?”“为什么要切换到 Flutter 上?”你可以先问问自己这两个问题。对于跨平台移动应用开发者来说,他们最想知道的答案就是 Flutter 是不是比其他原生应用开发方案效率更高;如果答案是肯定的,那么为什么?


Flutter 是效率最高的应用程序跨平台开发解决方案之一。凭借直观易懂的用户界面,Flutter 迅速得到了全球各地开发企业的青睐。Flutter 是谷歌发布的全新开源解决方案,在它的帮助下开发人员使用一个代码库就能实现跨平台应用开发。换句话说,用它开发的应用可以同时支持 Android 和 iOS 两大移动平台。Flutter 是一个 SDK——也就是软件开发工具包。这个 SDK 中包含了开发跨平台应用程序所需的所有内容,例如现成的小部件、测试和集成 API、渲染引擎和命令行工具等。正因为此,这个解决方案可以帮助开发人员大大节省时间和资源,更容易为两大平台开发移动应用。


在过去,React Native曾经是跨平台应用程序开发行业最流行的框架。它诞生于 2013 年,最初是 Facebook 内部的秘密项目,直到 2015 年才公开发布。当时 React Native 已经支持了一些原生开发功能。


React Native 自带的小部件比较全面,但它提供的选择不像 Flutter 那么丰富。此外 RN 还有一些组件是自适应的,它们能够分析出自己正在运行在哪个平台上,进而针对这个平台提供相对应的组合。


虽然 React Native 节约了开发人员交付跨平台应用程序所需的资源,但它的性能表现和用户体验比较糟糕。React Native 生态中可用的包比 Flutter 要多,因为前者已经走过了三年的发展历程,在这方面 Flutter 显然不是对手。


在 2019 年谷歌 I/O 大会上,谷歌宣布 Flutter 将支持桌面和 Web 应用开发。

Flutter 有什么特别之处?

Flutter 有很多优势。凭借大批开发人员和应用程序所有者的支持,Flutter 已经在市场上取得了统治地位。下面我们就来看看这个跨平台应用全新解决方案的优势所在。

一个代码库用于两大平台

Flutter 是一个跨平台工具。它的最大优势就是应用的 Android 和 iOS 版本可以共享一个代码库,这样开发人员就可以在两大平台上同步更新应用了。它的小部件支持与平台无关的代码创建工作。此外 Flutter 也可以构建单一平台的应用程序。

高速开发

热重载是 Flutter 的另一大特色。有了这个功能,开发人员就可以在更改代码后立即在 UI 中查看更新效果。Flutter 内置的热重载功能是开箱即用的,无需额外的插件或任何配置操作,因此 Flutter 可以非常显著地提高开发人员的工作效率。热重载还有利于开发人员修复错误。如果你遇到了构建错误,它将显示一条消息告诉你重载没能执行;等你纠正问题、保存应用后,应用程序就会继续正常运行了。


谈到学习上手的难度,Flutter 的文档宣称使用 Flutter 编程是非常简单的事情,甚至不需要多少编程知识基础:“开发人员有过面向对象语言的编程经验肯定是有意义的,但甚至有开发者本来不是程序员,也用 Flutter 做出了应用程序!”。

支持多种设备

你可以用 Flutter 开发支持多种设备的应用程序,应用甚至能跑在很老的设备上。这个全新的解决方案允许你继续使用已有的 Java、Swift 和 C 代码来接入 iOS 8 和 Android 上的原生功能和 SDK。

优秀的用户界面

这个跨平台解决方案使用小部件来构建 UI。Flutter 提供了一种小部件方法。它提供了一个现代化的响应式框架,以及一系列平台、布局和基础小部件的组合。开发人员可以使用小部件开发足以比拟原生 UI 的复杂用户界面。此外,Flutter 中的小部件不仅能用在视图中,也能用在整个屏幕,甚至应用程序自身上。你还可以根据自己的需求自定义小部件,为客户带来独特而奇异的属性,博得他们的欢心。

高效的测试功能

Flutter 支持单元测试、功能测试和 UI 测试,并附有详细的文档说明。其小部件测试功能让开发者可以快速高效地运行 UI 测试。此外,Flutter Driver 类可以在另一个进程中驱动应用程序,并提供了很多有用的方法来测试用户交互和应用程序界面。

那么为什么 Flutter 还没成为顶尖的应用程序开发框架呢?

尽管 Flutter 拥有一系列有趣的功能,广受开发人员好评,但它的能力还是比不上原生开发,并且存在一些缺陷;因此至少到目前为止,Flutter 还不足以成为顶尖的应用程序开发框架。


就像所有新工具一样,Flutter 的新技术也会遇到很多问题。尽管它得到了谷歌的鼎力支持并且提供了很多强大的实用功能,但它还是太年轻了,能用的库数量很少。所以 Flutter 的很多功能都需要应用程序开发人员自己来开发,这可能会非常费时间。一些开发人员认为它不能用来构建复杂的商业应用程序,而是更适合较为简单的应用程序和原型设计。这也是为什么我们 QuickBlox 目前还不用 Flutter 开发的原因。


另一个缺陷是 Flutter 只能用来开发移动应用程序,这些应用没法运行在网页浏览器上。Flutter 并不具备足够广泛的设备覆盖范围。


Flutter 还不算是跨平台应用开发方案老大的另一个因素就是它使用的 Dart 语言。创建原生 Android 和 iOS 应用程序的开发人员并不想要学习另一门编程语言。Flutter 需要用 Dart 语言来开发,这一点有利有弊。它是一种面向对象的编程语言。熟悉 Dart 的资深开发人员不多,所以你的团队很难找到这方面的专家。在寻找跨平台开发方法时要牢记这一点。


总而言之,毫无疑问 Flutter 目前是构建移动应用程序最激动人心的工具之一。如果你需要性能出色、容易学习、国际化支持完善、拥有现成的小部件、更新及时的移动应用程序开发工具,那么 Flutter 就是正确的选择。但你也要对它的种种缺陷做好心理准备,以免出问题时手足无措。


原文链接https://quickblox.com/blog/whats-holding-mobile-app-developers-back-from-flutter/


2019-08-16 19:273331

评论 1 条评论

发布
用户头像
“Flutter 已经在市场上取得了统治地位”这个结论怎么得出来的?只有论点没有论据。。
2019-08-22 10:11
回复
没有更多了
发现更多内容

三面微软,四面雅虎,外企面经复盘总结,那些你不知道的面试技巧

Java 程序员 后端

东汉末年,他们却把「服务雪崩」玩到了极致(干货

Java 程序员 后端

为什么建议大家使用 Linux 开发?爽(外加七个感叹号)

Java 程序员 后端

三年开发,头铁面试阿里4面技术+1面HR,终获offer

Java 程序员 后端

中高级开发面试必问的Redis面试题,看这篇就够了!

Java 程序员 后端

全面解读!构建边云一体的智能应用技术实践

百度开发者中心

最佳实践 方法论 边缘计算 前沿科技

小学妹与我畅聊黑客渗透技术

喀拉峻

黑客 网络安全 信息安全 渗透测试

万字长文!从底层开始带你了解并发编程,彻底帮你搞懂Java锁!

Java 程序员 后端

架构实战营 模块四作业

felix

架构实战营

不是吧!你还不会在微服务中如何设计一个权限授权服务?

Java 程序员 后端

两年JAVA程序员的面试总结

Java 程序员 后端

为了加快速度,Redis都做了哪些“变态”设计(1)

Java 程序员 后端

不要再本地启动项目调试了,试SpringBoot远程调试你会发现新大陆!

Java 程序员 后端

主流的消息队列MQ比较,详解MQ的4类应用场景

Java 程序员 后端

阿里 P8大牛的 Maven学习笔记,在 GitHub上仅一天就获赞 上万

Java maven 编程 程序员

两年CRUD,没料到我这渣二本,备战两个月面试阿里,居然侥幸拿下P6的offer

Java高级开发

不就是Redis吗?竟让我一个月拿了8个offer,其中两家都是一线大厂

Java 程序员 后端

WeTest六周年|质领未来,向新而行

WeTest

《Linux一学就会》第三章:文件系统的管理方法和xfs文件系统备份恢复

侠盗安全

Linux linux运维 云计算架构师

三种常见的限流算法

Java 程序员 后端

为什么你不应该恨Java!

Java 程序员 后端

三分钟:极速体验JAVA版目标检测(YOLO4)

Java 程序员 后端

上线GitHub七天后就标星87

Java 程序员 后端

为了加快速度,Redis都做了哪些“变态”设计

Java 程序员 后端

二维码扫码登录是什么原理?

Java 程序员 后端

事大发了!小助理告诉我:小伙伴21天斩获字节offer的关键竟是这份面试题!

Java 程序员 后端

移动千牛开放体验治理实践与防治方案

阿里巴巴终端技术

ios android 用户体验 舆情分析 移动端

不错,这么好的东西不白嫖也太可惜了!阿里内部首发“Springboot成长笔记”

Java 程序员 后端

两道面试题,带你解析Java类加载机制

Java 程序员 后端

个性化推荐系统设计(3

Java 程序员 后端

为什么你的insert就死锁了

Java 程序员 后端

是什么在阻碍移动应用开发者选择Flutter?_语言 & 开发_Alex Gorodov_InfoQ精选文章