探索 Flutter:为何它是跨平台开发的首选?

发表时间: 2019-07-10 11:15
编者按:作为同样是 Google 出品的 Dart 和 Flutter,Go 语言中文网会持续关注~

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

最流行的跨平台框架有 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/