为什么Flutter是跨平台开发的终极之选

2019 年 6 月 26 日

为什么Flutter是跨平台开发的终极之选

跨平台开发是当下最受欢迎、应用最广泛的框架之一。能实现跨平台开发的框架也五花八门,让人眼花缭乱。


最流行的跨平台框架有 Xamarin、PhoneGap、Ionic、Titanium、Monaca、Sencha、jQuery Mobile、React native、Flutter 等等。但这些工具的表现也是高低有别,各有千秋。


在这些流行的框架中,有很多也已经消失在了历史的长河中被人渐渐遗忘了。但 React native 和 Flutter 这俩框架地位依旧坚挺,备受欢迎。


这是为什么?


因为它们俩分别由最强大的科技巨头 Facebook 和谷歌背书支持。本文将讨论谷歌 Flutter 这个万千瞩目的框架。


你想知道什么是 Flutter 应用开发吗?你是否经常查询这些问题:Flutter在 iOS 开发环境中好用吗?它比React native更好吗?


本文会告诉你,为什么 Flutter 是一个值得信赖的跨平台应用开发解决方案。下面就跟我一起探究答案,深入了解这一跨平台开发最佳工具吧。


跨平台开发


新手可能会问这个问题:什么是跨平台开发呢?


本质上来说,跨平台开发就是“一石二鸟”的开发技术。下面简单解释一下。早期没有跨平台框架的时候,开发者必须为同一应用的各个平台(比如 Android、iOS、Windows 等)分别编写代码。这对开发者以及投资开发该应用的企业而言都是费时费力又花钱的工作。


那么跨平台框架解决了什么问题呢?就是用跨平台框架可以只用一份代码就适配所有平台,省钱又省时。


下面回到主题,谈谈为什么 Flutter 能用来开发最优秀的移动应用,为什么它是跨平台开发的首选。


什么是 Flutter


简而言之,Flutter 是一个软件开发工具包(SDK)。它包含众多小部件、框架和工具,能帮助开发者无缝构建跨平台应用。


介绍 Flutter 的功能之前,我们先来看看它的优势和不足。


Flutter 的优势


  • 它完全免费,彻底开源

  • 可以用来更快地创建应用

  • 出色的用户界面(UI)

  • 节省代码量

  • 可接入平台原生功能

  • 最适合MVP开发(最小化可行产品)

  • 较老的设备也使用相同UI运行应用

  • 减少测试工作量

  • 更丰富的社区支持

  • 较低的维护难度

  • 内置来自Dart的包管理器


Flutter 的不足


  • Flutter仅适用于移动设备平台,浏览器不支持Flutter(最新的Flutter 1.5提供了Flutter for Web,开始解决这个问题)

  • Flutter框架诞生不久,可能欠缺很多功能

  • Flutter不支持开发Apple TV或Android TV上的应用

  • 相比JS/TS,Flutter可选的包较少


Flutter 的特性


谷歌现已发布 Flutter 的最新重大更新版本,Flutter 1.2 版本。Flutter 新版主要的改进包括:


  • 为开发者提供跨平台应用开发的最前沿工具

  • 新版为原有的小部件增加了许多新功能


新版还增强了核心框架的稳定性、质量和性能。


原生 ARM 代码


Flutter 有一个名为原生 ARM 的功能,对初创企业和科技公司而言很有意义。它可以帮助开发者更轻松地实现自己的想法,为应用项目带来最显著的优势。


Web 视图组件


这一功能使用户可以轻松地在移动应用中查看 Web 内容。此外,Flutter 还让应用中的页面跳转和稳定更加容易。


Dart 2.2


最近更新的Dart.2.2确实是一个变革性的角色。它提升了 AOT 编译代码的性能。此外,dart 库提供了很多用来建立映射、列表和对象集合的类。


Dart2.2 的其他功能包括:


  • 映射是键值对的集合。

  • Flutter列表是有序的值序列,其中每个值可以通过索引访问,并且可以多次出现。

  • 它更新了所有dart语言规范以适配改动。

  • 开发者可以使用Dart通用前端(CFE)构建新的语言功能。


应用内购买


当用户在 App store 中启动应用内购买时,这些功能可以让你的应用正常完成交易。


Google Play 和 App Store 的开发者都需要对带有应用内购买项目的应用做好配置,正常调用它们的应用内购买 API。


Android 应用包


Flutter 支持 Android 应用包,这是一种新的上传格式,包含应用程序的所有编译代码和资源。这种格式可以加快 APK 的打包和向 Google Play 发布的流程。


无需手动管理多个 APK


这些功能让用户可以下载更小、更优化的 APK。开发者也不需要为了支持多种设备而构建、发布和管理多个 APK 了。


减小 APK 大小


Android 应用包使用的 APK 拆分机制可以缩减应用的大小,并支持 Android 应用程序的动态交付等新功能。


动态功能模块


此功能允许开发者将某些功能和资源与应用程序的基础模块分离开来,并将前者添加到应用程序包中。


例如,如果你的应用包含相机功能,则可以将其设为动态模块。之后当用户想要下载并安装这个功能时就可以按需操作了。


Flutter 构建应用的工具


Flutter 框架支持很多工具,例如 Android Studio 和 visual studio code。还有的工具允许用户从命令行和 Dart DevTools 构建应用以进行调试。


此外,它还允许开发者查看日志、调试应用,并检查 Flutter 应用开发的小部件。


以下是最适合移动应用开发的 Flutter 工具。


  • 时间线视图:它可以帮助你逐帧监控应用,观察应用的呈现和计算工作。

  • 小部件检查器:此工具支持可视化和浏览Flutter小部件树层级结构。

  • 日志视图:它显示来自应用程序、网络、框架和垃圾回收事件的活动日志。

  • 源代码级调试器:用户可以用它一步步执行代码、标记断点并检查调用堆栈。


使用 Flutter 构建的热门应用


了解过 Flutter 的最新功能之后,我们来看看哪些初创公司和知名品牌使用 Flutter 进行跨平台开发。下面是 Flutter 的应用案例


  1. 阿里巴巴(电子商务):这家电子商务巨头无人不知无人不晓。阿里巴巴在淘宝中就用了谷歌Flutter开发。

  2. 谷歌广告(实用程序):这是付费营销的终极工具。这个跨平台的应用就是用Flutter制作的,可以用来监控企业的网络广告投放。此外,它还允许谷歌专家添加/修改/删除关键字,改进你的广告计划。

  3. Birch Finance(金融):Birch Finance是一个信用卡积分兑换应用,可以帮助用户管理并优化自己的信用卡。用户可以用它一站式管理所有信用卡账户,它还提供了多种赚取和兑换奖励的途径。

  4. 腾讯(游戏等应用):这家中国科技巨头也使用Flutter开发即时通讯软件服务和游戏,诸如绝地求生、QQ音乐、电商应用等。

  5. Watermaniac(健康与健身):医疗保健行业也在开发跨平台应用程序。Watermaniac已决定使用Flutter构建其应用。该应用能帮助用户监控他们摄取的水量。


构建 Flutter 应用的成本


构建应用当然需要花费时间和资源。项目花费的时间越久,需要投入的各种资源也就越多。因此开发应用所需的成本主要取决于时间和资源这两个因素。


如果你正在考虑使用 Flutter 开发应用,以下是应用开发的成本计算。


成本计算器:


总成本= SDLC 流程所需的小时数*每小时所需资源的费用


SDLC 流程包括构建、测试、部署、更改和维护应用程序的详细计划。它包括 UI / UX 设计、前端与后端开发、质量保证和生产发布。


最重要的一点在于,假设一个具备基础功能的小型应用的开发投入在 10,000 美元到 50,000 美元的水平上,那么使用 Flutter 之后成本能减少一半。


结论


总的来说,跨平台开发对初创公司和业务都有很大的好处。而 Flutter 作为新诞生的开发框架有着明显的优势和好处。


如果你想快速构建跨平台应用,Flutter 非常适合你。无论是要创建最小可行产品(MVP)还是成熟的企业应用程序,Flutter 都是最佳解决方案。


英文原文:https://www.excellentwebworld.com/flutter-cross-platform-development/?utm_campaign=Submission&utm_medium=Community&utm_source=GrowthHackers.com


2019 年 6 月 26 日 18:119899

评论

发布
暂无评论
发现更多内容

你应该知道的数仓安全——默认权限实现共享schema

华为云开发者社区

数据库 数据 schema

2020年区块链发展及产业升级交流会成功举办

WX13823153201

《迅雷链精品课》第四课:区块链技术发展趋势

迅雷链

区块链

天秀!这份由阿里数位大牛编写的777页高可用架构+MySQL

马士兵老师

Java MySQL 编程语言 高并发 架构师

看完之后,不要再说不懂代理IP了!

前嗅大数据

大数据 静态IP 代理IP 短效代理 动态IP

开源GitHub标星30K的腾讯Redis笔记,阿里技术专家看到都赞不绝口

小Q

Java 学习 编程 架构 面试

Nacos配置中心和服务的注册发现

牛初九

微服务 Spring Cloud nacos spring cloud alibaba

架構師訓練營第 1 期 - 第 08 周作業

Panda

架構師訓練營第 1 期

python+flask编写一个简单的登录接口例子

测试人生路

Python 接口测试

隧道视野效应 - 认知局限

石云升

教育 认知 隧道视野效应

linux下定位多线程内存越界问题实践总结

小Q

Java Linux 学习 面试 多线程

LeetCode题解:剑指 Offer 22. 链表中倒数第k个节点,递归,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

嗯,挺全乎儿的,Spring Boot 多环境配置都在这里了,你喜欢哪种?

比伯

Java spring 编程 程序员 架构

阿里又出一座丰碑!P9级架构师整合出最新最全微服务1700页手册,下载下来慢慢啃

Java架构追梦

Java 架构 微服务 springboot SpringCloud

手把手教你使用ModelArts的自动学习识别毒蘑菇分类

华为云开发者社区

学习 AI 图像识别

解密猫晚直播技术:如何保障全球200多个国家和地区同时在线狂欢?

阿里云视频云

架构师训练营 -week08-作业

大刘

极客大学架构师训练营

程序员在编程过程中,经常会在代码中使用到“where 1=1”,这是为什么呢?

小Q

Java 数据库 学习 架构 面试

太牛了,腾讯T4Java技术专家手撸的Redis技术笔记,一周内下载量已突破30W。

Java架构之路

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

58个基础案例+2个综合案例带你探索微服务的神秘世界

小Q

Java 学习 编程 面试 开发

架构师训练营 1 期 -- 第八周笔记

曾彪彪

极客大学架构师训练营

JVM-技术专题-关闭与关闭钩子

李浩宇/Alex

朋友推荐我这份阿里面试通关手册,我却选择了字节的offer

小Q

Java 学习 程序员 架构 面试

炸了!一口气间了我18个JVM问题!

云流

Java 面试 jvm调优 JVM垃圾回收原理

不服!阿里P8手写489页SQL优化通关手册,解决你百思不得其解问题

996小迁

sql 程序员 架构 面试 计算机

从 Android 到 Java:如何从不同视角解决问题?

Java架构师迁哥

如何使用JavaScript实现前端导入和导出excel文件(H5编辑器实战复盘)

徐小夕

Java node.js 前端 React 数据可视化

成长为软件教练的三千大道之一

华为云开发者社区

Java 敏捷开发

28天刷完这份内容多大349页的阿里Java面试通关手册,我成功闯进了字节跳动!

Java架构之路

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

30秒系列 | 巧用百度翻译提取图片中的文字

山下青城

图片识别 30秒 小技能

“先加密后签名”是不是安全?看完这篇就秒懂!

华为云开发者社区

安全 加密 签名

为什么Flutter是跨平台开发的终极之选-InfoQ