写点什么

是什么在阻碍移动应用开发者选择 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:273523

评论 1 条评论

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

Redis6.0新特性、剖析线程模型(单线程和多线程)

C++后台开发

redis 多线程 后端开发 单线程 C++开发

2 分钟,教你用 Serverless 每天给女朋友自动发土味情话

阿里巴巴云原生

阿里云 Serverless 云原生

Wallys/Introduction of DR9074 series network card/qcn9074/qcn9072/qcn9024/industrial M.2 card

wallysSK

QCN9074 QCN9024 QCN9072

聚焦年轻消费人群 百草味入围最受“Z世代”喜爱品牌TOP10

E科讯

云原生网关的可观测性体系实践

阿里巴巴云原生

阿里云 云原生 云原生微服务

【Redis】Redis AOF持久化

石臻臻的杂货铺

redis 11月月更

扒去Spring事件监听机制的外衣,竟然是观察者模式

程序知音

Java spring ssm Java后端 后端技术

Spring Boot框架下实现Excel服务端导入导出

葡萄城技术团队

前端 Excel 控件

一路同行:开发者与华为云的2022

脑极体

线性稳压电源和开关电源,到底有什么区别?

元器件秋姐

电源电路 元器件采购 元器件电商 元器件知识 华秋商城

【倒计时4天】杭州专场-单元测试产品体验样板间,等你加入!

TRaaS

10 分钟部署一个 API 工具

Scar 

开源 Serverless 接口测试 Vercel

关于Web3.0,你了解多少?个推与您畅聊下一代互联网

个推

互联网 元宇宙 Web3.0

用javascript分类刷leetcode3.动态规划(图文视频讲解)

js2030code

JavaScript LeetCode

JavaScript刷LeetCode拿offer-树的遍历

js2030code

JavaScript LeetCode

10月月更获奖名单出炉啦!快来看看你上榜没有!

InfoQ写作社区官方

热门活动

以用户为导向,vivo打造安全新范式

极客天地

java企业级开发中常见的注入方式

千锋IT教育

8分钟带你学会SpringBoot整合Redis来实现缓存技术

好程序员IT教育

redis Spring Boot

直播CDN调度技术关键挑战与架构设计

京东科技开发者

架构 系统架构 直播 CDN加速 CDN技术

java Apache poi 对word doc文件进行读写操作

@下一站

编程 原创 word Java core 11月月更

【Go电商实战05】结合项目解答使用Go中间件遇到的问题:中间件的概念和应用

王中阳Go

golang 学习方法 中间件 11月月更 电商实战

前端leetcde算法面试套路之二叉树

js2030code

JavaScript LeetCode

Kotlin变量的空安全(Null Safety)

子不语Any

android kotlin 11月月更

鼎茂科技获得阿里云首批产品生态集成认证,携手阿里云共建新合作

阿里巴巴云原生

阿里云 云原生 加速器 企业招募

居民消费价格指数变化新鲜出炉,这类商品同比涨幅最大

前嗅大数据

数据分析 数据采集 居民消费 居民消费指数

MASA MAUI Plugin (六)集成个推,实现本地消息推送[Android] 篇

MASA技术团队

blazor MASA MAUI Xamarin MASA Blazor

vue和react的区别有哪些,哪个好

千锋IT教育

大数据 Hadoop 的五大优势

千锋IT教育

首批!腾讯云通过金融开源技术服务能力评估

腾源会

开源

Docgeni 2.0 发布,开启自动化

PingCode研发中心

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