作者 | Anchal Malik

译者 | 王强

来源 | 前端之巅

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

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

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

01  这是为什么?

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

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

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

02  跨平台开发

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

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

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

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

03 什么是 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 可选的包较少。

04 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 应用程序的动态交付等新功能。

动态功能模块

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

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

05 Flutter 构建应用的工具

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

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

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

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

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

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

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

06 使用 Flutter 构建的热门应用

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

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

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

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

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

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

07 构建 Flutter 应用的成本

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

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

成本计算器:

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

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

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

08 结论

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

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

英文原文:

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

推荐阅读

《Flutter技术入门与实战》

点击上图了解及购买

推荐语:谷歌开源移动UI框架Flutter零基础快递入门读物,资深架构师撰写,从基础组件的详解到综合案例,从工具使用到插件开发,包含大量精选案例、详细实操步骤。

这本书写了什么?

  • 系统化讲解Flutter,包括基本概念和重要知识点。

  • 详细介绍常用组件及其使用技巧,包括容器组件、图片组件、网格列表组件等。

  • 页面布局的基础知识和技巧,如基础布局处理、宽高尺寸处理、列表及表格布局等。

  • 手势检测及处理的方法等。

  • 路由及导航处理,如页面的渲染以及数据传递。

  • 组件装饰和视觉效果的处理,如透明度处理、装饰盒子、旋转盒子等。

  • 介绍Flutter插件开发的入门知识。

你与世界

只差一个

公众号

为什么Flutter是跨平台开发的终极之选相关推荐

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

    跨平台开发是当下最受欢迎.应用最广泛的框架之一.能实现跨平台开发的框架也五花八门,让人眼花缭乱.最流行的跨平台框架有 Xamarin.PhoneGap.Ionic.Titanium.Monaca.Se ...

  2. 为什么Flutter是跨平台开发的终极之选,这篇文章可以满足你80%日常工作

    本质上来说,跨平台开发就是"一石二鸟"的开发技术.下面简单解释一下.早期没有跨平台框架的时候,开发者必须为同一应用的各个平台(比如 Android.iOS.Windows 等)分别 ...

  3. 为什么Flutter是跨平台开发的终极之选,android完整项目源码

    它完全免费,彻底开源 可以用来更快地创建应用 出色的用户界面(UI) 节省代码量 可接入平台原生功能 最适合 MVP 开发(最小化可行产品) 较老的设备也使用相同 UI 运行应用 减少测试工作量 更丰 ...

  4. MVC、MVP、MVVM:谁才是Android开发的终极之选?

    概述 MVC.MVP.MVVM 都是在 Android 开发中经常用到的架构思想,它们都是为了更好地分离代码.提高代码可复用性.方便维护等目的而设计的.下面对这三种架构思想进行简单的介绍和比较. MV ...

  5. dart 语言是jvm_为什么发明基于 Dart 语言的 flutter 作为跨平台开发?

    简要总结一下: 1. 不用Java是有理由的 2. 2018年之前用Dart完全是兜售私货 3. 现在Dart已经不算特别差,没有什么再更改的理由了 不用Java主要是政策风险,既来自Oracle,也 ...

  6. <flutter>跨平台开发小白入坑 Dart Dio Pubspec 打包 MethodChannel 解析 Xcode hybrid

    1.资源文件和依赖三方包(pubspec.yaml): pubspec.yaml文件可以说是和安卓的gradle文件差不多,它用来描述版本号.sdk.依赖等的. 在资源导入方面同安卓不一样的是,flu ...

  7. 经历七轮残酷淘汰 终极之选“过冬王股”出炉

    www.eastmoney.com   2008-09-08 10:24     理财周报 <script src="/mainjs/content_fun_1.js"> ...

  8. Flutter 实现原理及在马蜂窝的跨平台开发实践

    一直以来,跨平台开发都是困扰移动客户端开发的难题. 在马蜂窝旅游 App 很多业务场景里,我们尝试过一些主流的跨平台开发解决方案, 比如WebView 和 React Native,来提升开发效率和用 ...

  9. 移动端跨平台开发Flutter 与 React Native对比

    移动端跨平台开发Flutter 与 React Native 深入对比分析 2019年6月21日20:41:35 发表评论 154 views 移动端跨平台在经历数年沉浮之后,如今还能在舞台聚光灯下雀 ...

最新文章

  1. 给图片加上带版权的水印
  2. jittor和pytorch生成网络对比之began
  3. 程序员过关斩将--面试官再问你Http请求过程,怼回去!
  4. 【计算机IO系列零】应用软件部分
  5. IO(File 递归)
  6. 开源库 | 监控视频中的目标检测与跟踪
  7. 大数据学习笔记57:Java代码操作HBase
  8. WPF入门(三):简单绑定 - 绑定到页面元素
  9. ndk中杀线程的办法
  10. Python电子书下载
  11. SQL常用字符串截取
  12. Xcode8 - apploader 上传失败 - ERROR ITMS-90168: The binary you uploaded was invalid.
  13. 【金融科技前沿】【长文】金融监管、监管科技以及银行业监管报送概述
  14. 计算机网络基础 习题,计算机网络基础练习题集.pdf
  15. 四大会计事务所薪酬待遇及发展各个方面大比拼
  16. Python读取CSV文件,并进行数据可视化绘图
  17. 使用img标签能使用background-size:conver一样的效果
  18. 2021-02-23
  19. 四川华巨同诚:拼多多怎么规避店铺降权的问题
  20. 【原】在vc中实现获取汉字拼音的首字母 - lixiaosan的专栏 - CSDNBlog

热门文章

  1. 类的封装性、继承性和多态性设计
  2. Python爬虫实战:爬取贝壳网二手房成交数据,将数据存入Excel。
  3. 女子眉纤,额下现一弯新月;男儿气壮,胸中吐万丈长虹
  4. 相忘江湖不如相濡以沫(III)
  5. centos7.1 修改selinux相关机制后出现开机失败,报错faild to load selinux policy  freezing
  6. 猿创征文|【React】组件化入门学习
  7. STM8L使用ADC内部参考电压通道测量VDD电压
  8. 用狼的处世哲学做SOHO(一)
  9. HTML配色工具!在线配色工具
  10. 四大名著丨折射中国人性的四面镜子