HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

评论 1 条评论

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

涵盖了Java基础+JVM+多线程并发编程+spring全家桶+Linux+数据结构+数据库+nginx+分布式,这份Java技术成长笔记太强了

Java架构之路

Java 程序员 架构 面试 编程语言

所谓软件测试工作能力强,其实就是这5点

程序员阿沐

软件测试 自动化测试 测试工程师 黑盒测试 白盒测试

一个江南皮鞋厂的小故事带我理解透了——什么是“代理模式”

Java架构师迁哥

深入了解 JavaScript 对象

程序员海军

JavaScript 大前端 对象

模板格式不统一?百度AI产品经理为你讲解如何高效构建定制化OCR模型

百度大脑

百度 AI OCR

HDFS

xujiangniao

架构实战营详细架构设计文档模板

Geek_e0c25c

北大学霸!手抄万字Java数组笔记,2小时吃透,你确定不拿走?

牛哄哄的java大师

Java 后端

架构师实战营,模块三:架构设计详细文档

ifc177

#架构实战营

如何高效率的度过一天?

程序员海军

效率 方法论

Golang 实现 RTP

天黑黑

音视频 rtp Go 语言

谷歌大佬的LeetCode算法刷题笔记,详细讲解了刷 LeetCode 时常用的技巧。

Java架构之路

Java 程序员 架构 面试 编程语言

Java面试:BIO,NIO,AIO 的区别,别再傻傻分不清楚

Java大蜗牛

Java 程序员 面试 编程语言 后端

MapReduce

xujiangniao

从操作系统底层的IO原理入手讲解,同时提供高性能开发的实战案例!美团大佬最新总结的1053页Java高并发核心编程笔记!

Java架构之路

Java 程序员 架构 面试 编程语言

破茧成蝶!从投简历石沉大海到收割5个大厂offer,我只刷了这套面试题!

Java架构追梦

Java 阿里巴巴 架构 面试 offer

全靠这套大厂Java面试题目指南,让我成功斩获 25*16 薪资的offer

飞飞JAva

Java

Vue 组件通信的 8 种方式

程序员海军

Vue 大前端 组件通信 引航计划

spring boot项目TPS压测性能优化

李日盛

Spring Boot 性能调优

yarn的多租户配置实现资源隔离

五分钟学大数据

YARN

架构训练营-作业三(消息队列详细架构设计文档)

eoeoeo

架构实战营

区块链是什么意思?源中瑞开发BaaS平台促进企业数字转型升级

源中瑞-龙先生

企业数字化转型 #区块链# 源中瑞 Baas

京东丨阿里丨携程面试总结,已成功拿到京东offer

Java架构师迁哥

前端项目配置ts,axios,router,vuex

Vue js ts vuex VueRouter

如有神助!阿里P7大牛把Spring Boot讲解得如此透彻,送你上岸

飞飞JAva

数据仓库分层架构及元数据管理

五分钟学大数据

数据仓库

zookeeper的架构

大数据技术指南

zookeeper 5月日更

2021金三银四(拿下5个offer)面试经历,附阿里4面+京东4面【面经分享】

Java 编程 程序员 面试 计算机

YARN资源调度三种模型介绍

五分钟学大数据

YARN

HDFS的HA以及Yarn的HA高可用

五分钟学大数据

hdfs YARN 5月日更

Python打包后的EXE文件,如何获取同级目录

IT蜗壳-Tango

5月日更

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