写点什么

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

2019 年 8 月 16 日

是什么在阻碍移动应用开发者选择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 年 8 月 16 日 19:272712

评论 2 条评论

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

甲方日常 85

句子

工作 随笔杂谈 日常

28 天带你玩转 Kubernetes-- 第七天(玩转 Dockerfile)

Java全栈封神

Docker Kubernetes k8s Dockerfile 28天写作

夜莺二次开发指南系列

qinyening

开源 监控 滴滴夜莺 夜莺监控 运维平台

TCP波场拼系统开发|TCP波场拼软件APP开发

开發I852946OIIO

系统开发

CSS14 - 元素可见性

桃夭十一里

html/css

大小公司产品经理岗位对比

Kr

大厂面试官竟然这么爱问Kafka,一连八个Kafka问题把我问蒙了

五分钟学大数据

大数据 kafka

日语复习Day01【~あげく(に)】

Tango

日更挑战 日语语法 情景句型 程序员日语

从一场营地教育直播,看懂众盟“私域流量营销”的底层逻辑

脑极体

CSS15 - 界面样式&垂直对齐

桃夭十一里

html/css

谈谈SpringFramework与IoC依赖查找

Java架构师迁哥

「大厂攻略」打开线程 | 进程 | 协程的大门

我是程序员小贱

面试 操作系统

我给职场新人提个建议

石云升

创业 28天写作 职场新人

我们设计的是微服务还是小单体应用

xcbeyond

微服务 方法论 DDD 28天写作

如何使用maven 轻松重构项目

田维常

maven

精选算法面试-数组II

李孟

面试 算法 数组 28天写作

JVM故障诊断和处理工具

Silently9527

Java JVM jvm调优

智能building之二 智能单体建筑

张老蔫

28天写作

Mysql报表下载为什么出现了重复的数据?

三石

MySQL性能优化 28天写作 mysql重复数据

创业失败启示录|校园微生活之快叫外卖

青城

28天写作 创业失败启示录 青城

2020 全球 JS 调查报告新鲜出炉

蓝色的秋风

typescript Vue 前端 React React Native

网络故障排除工具,你用过哪些?

网络技术平台

面试官:你说一下对Java中的volatile的理解吧

云流

Java 编程 面试 多线程

MySQL查询——连接查询

程序员的时光

程序员 28天写作

AES/CBC/PKCS5Padding到底是什么

kof11321

加密解密

重学JS | 异步编程 async/await

梁龙先森

前端 编程语言 28天写作

京东RPA:以企业数字化转型为驱动的机器人流程自动化解决方案专家

京东科技开发者

RPA 企业信息化 数字化运维

最近很火的京东、天猫超市飞天茅台抢购是怎么回事,从原理流程给你们分析一波

谙忆

1月|日更挑战活动说明

InfoQ写作平台官方

活动专区 日更挑战

大厂面试题:你知道JUC中的Semaphore、CyclicBarrier、CountDownLatch吗

Java鱼仔

Java 面试 并发 JUC

Python 循环语句

老赵

28天写作

打造 VUCA 时代的 10 倍速 IT 团队

打造 VUCA 时代的 10 倍速 IT 团队

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