Flutter Web 如何降低您的应用开发成本

已发表: 2020-05-15

你想出了一个产品创意,但你需要一个将它推向世界的计划。 为了向尽可能多的用户公开您的服务,您需要移动和网络应用程序。 但是你的简短研究是残酷的——虽然你只有一个狭隘的想法,但它需要三个不同的应用程序(Android、iOS、Web)、三种不同类型的专家(Kotlin、Swift、JavaScript),甚至可能需要三个独立的供应商。

但你不是第一个担任这个职位的人。 Airbnb、Uber Eats 和 Discord 等应用程序的创建者也站在您现在的位置。 他们都决定采用跨平台解决方案。 看起来 2020 年这个学科中最重要的参与者是 Flutter。

什么是颤振?

Flutter 是一个谷歌框架,它允许你使用一个代码库为 iOS 和 Android 开发移动应用程序。 Flutter 的第一个稳定版本于 2018 年底发布。谷歌创建 Flutter 是为了应对移动应用程序预算的融化和 React Native 的日益普及,成为其主要竞争对手。

Flutter 引起了人们对 Dart 的关注,这是一种来自 Google 的面向对象的语言,据许多领域专家称,它是所有移动、Web 和桌面开发的未来。 与 React Native 使用的 JavaScript 相比,Dart 是完全面向对象和强类型的。 这对您的业务意味着什么? Dart 中交付的代码更能抵抗错误并且更容易维护,即使在不断变化的团队中工作多年。

Flutter for Web 征服浏览器

这一切如何转化为网络? 2020 年对于 Flutter 来说是重要的一年,因为它带来了新的挑战。 该框架即将征服更大的屏幕和网络浏览器。 在过去的两年中,除了 Flutter 之外,还有一个名为Hummingbird的研究项目,该项目旨在从 iOS 和 Android 应用程序使用的相同 Flutter 代码生成 Web 应用程序。

项目成熟,一年前核心团队将其纳入框架,目前(截至 2020 年 5 月)仍处于 beta 分支。 这是什么意思? 即使在今天,使用 Flutter 构建 Web 应用程序也是可能的,而且 Google 团队可以随时宣布它是稳定的。 一码一技,一石三鸟。 看起来您的项目非常适合。

跨平台应用程序的场景非常普遍。 许多流行和知名的解决方案都使用此模型来节省时间和金钱。 沃尔玛、Soundcloud 和 Bloomberg 已决定开发跨平台移动应用程序。 我敢打赌,您的手机上至少有一个跨平台应用程序。

跨平台开发服务图标

对跨平台开发感到好奇?

学到更多

然而,在此过程中构建 Web 应用程序的可能性在几个月前才向我们开放。 尽管目前还没有大品牌决定采取这一举措,但今天很明显,它迟早会成为初创公司和快速 PoC 的绝佳工具。

Flutter 为您的应用带来的好处

降低开发成本

使用 Flutter for Web,在一个技术连接的团队中,使用一个代码库一种速度创建三个应用程序。 您不必寻找三种不同技术的供应商,然后同步他们的工作。 无需重复相同的支付功能或社交媒体授权三次。

但是,这并不意味着您可以将支出数量限制为三倍。 为跨平台提供某种功能通常会更复杂一些。 以我的经验,有一个类似于跨平台乘数的东西等于 1.2-1.5。 这意味着如果一个功能需要 X 小时开发一个平台,则需要 (1.2-1.5) * X 跨平台。 尽管如此,与 x3 相比,x1.5 可能是您预算的一个成功案例。

更快的应用程序开发

综上所述,Flutter 成为 PoC 和产品创意验证的绝佳选择。 在短短几周内,您就可以实现一个可以轻松发布到应用商店的工作应用程序。 在取得潜在成功后,您可以考虑将应用程序重建为原生技术。 Airbnb 紧随其后。 在其跨平台移动应用取得成功后,他们决定在 2018 年转向原生应用。

更简单的维护过程

另外,请记住当您的应用程序最终成功时会发生什么。 当它进入维护时,由一名 Dart/Flutter 专家来维护应用程序要容易得多。 仅通过维护代码,您的企业可能无法全职为三个不同的开发人员找到任务。 同样,他们技能的任何不平衡都会导致工作节奏的变化。

考虑到不同平台上的共享外观和感觉,开发团队的技能也很重要。 在三个项目上工作,它们的最终形状很大程度上取决于开发人员的技能和 UI 态度。 当 iOS 用户更喜欢圆角而 Android 用户不那么喜欢圆角时,可能会发现这两个应用程序在影响产品品牌的方式上会有所不同。

针对 Web 风险的 Flutter

开发技术问题

好的,但是选择 Flutter for Web 是否有任何风险或缺点? 与往常一样,这个故事有两个方面。 从技术的角度来看,我们必须记住它仍然是一个测试版技术。 所以它并不完全稳定,你甚至可能遇到无法解决的问题。 对共存的 Flutter 库的支持有时也不完整。 库在移动设备上像魅力一样工作但在网络应用程序上崩溃是很常见的,因为它没有为此进行优化。 当仅限于 UI 时,这是一个小问题,但如果它是您的主要支付服务集成,则可能会很麻烦。

Web 应用程序异常

另一个问题是即使 Android 和 iOS 应用程序的世界非常相似,并且大多数情况下的代码库是 95-100% 相同,但这可能不适用于浏览器版本。 底部工作表抽屉、底部选项卡菜单或水平轮播是很好的移动 UX 模式,但不适用于 Web。 通常,您只需要为 Web 应用程序创建例外。 建筑设计在移动和网络中通常需要完全不同。 在工作之初,最好在设计师和开发人员之间建立一个圆桌讨论。 让他们分享他们的观点并尝试达成共识,特别是如果您关心您的预算和日期。

Flutter 与 React Native

但是 Flutter for Web 是您唯一的选择吗? 当然不是。 它最重要的替代品是 React Native。 React Native 是 Facebook 在 Flutter 之前发明和支持的竞争性框架。 它允许你做完全相同的事情——构建所有的 iOS、Android 和 Web 应用程序(类似于 Flutter,时间相对较短)。

移动应用程序开发报告的未来

探索移动应用的未来

免费获取报告!

在过去的两年里,我一直在使用 React Native,最近进入了 Flutter 世界,所以如果你在这两者之间做出决定,我可以给你一些建议。 首先,这场决斗没有一个赢家,两种技术都很成熟,而且都是优秀的跨平台。 但是在实施特定项目时,有一些细微差别可以带来优势:

  • 如果你特别关心手势相关的 UI (滑动、拖动、拉出抽屉等),那么 Flutter 将是一个更好的选择,因为它在原生端的架构和手势支持。 RN 有时很难提供良好的手势 + 动画组合性能。
  • 如果Web 是您业务的关键接触点,请选择 React Native。 RN 生成的浏览器应用程序更接近原生开发产品,您可以使用原生工具对其进行调试。 另一方面,Web 项目的 Flutter 不会转译为典型的 DOM,需要适配器。
  • 如果您的应用程序要经过多年维护和开发(或者开发它的团队可能会随着时间而改变),那么 Flutter 和 Dart 可能是更好的解决方案。
  • 如果您的应用程序假设使用稍微复杂一些的机制(蓝牙、生物识别、地理位置)或外部集成(支付、社交媒体),那么 React Native 已经存在的时间更长,并且拥有更广泛的库。 Flutter for Web 生态系统每个月都在增长,但仍然应该在每个项目之前对可用库进行研究。

想深入了解这两个广受欢迎的框架吗? 查看我们对 React Native 和 Flutter 的比较!

加起来

用户从未如此分散在平台之间。 移动设备和网络浏览器只是冰山一角。 用户越来越多地使用汽车、手表和电视机中的应用程序,而语音助手也变得越来越流行。 因此,需要简化流程,降低软件生产成本。 一个用于 Web 和移动开发的代码库已经是一种常见的模式,而 Flutter for Web 就是一个很棒的例子。

发布产品图标

使用 Flutter 构建您的下一个应用程序

我们一起工作吧

很长一段时间,我认为 Flutter for Web 是一项新兴技术。 我最近的工作让我改变了主意,现在我得到了纠正。 Flutter 是一个站在光明未来面前的成年青年,绝对值得考虑。 对于预算少、期限短的想法来说,这似乎是一个有吸引力的选择。 它适用于那些想要快速、低成本地验证他们的想法的人,那些有想法并正在响应市场需求的人。 这与 Flutter 在软件开发中所做的完全一样。

听起来很有希望?

想知道跨平台开发是否适合您的业务? 联系我们的团队并获得对您的项目的估计。