前言
为每个移动平台运行一个开发团队会从其他工作中吸取资源。Flutter是一个开发团队在所有平台上构建的最流行的方式。
生活围绕着我们的移动设备和应用程序。在全球范围内,目前有超过60亿智能手机用户。此外,在Google Play Store和Apple App Store之间,有近五百万个移动应用程序可供下载。尽管移动应用程序市场的竞争日益激烈,但这是许多初创公司和开发人员集中精力的地方。
因此,移动应用程序开发人员一直在寻找更简单,更快,更便宜的方式将其产品推向市场是很自然的。有效的开发工具在这一过程中发挥着重要作用。从编程语言到应用程序框架再到软件开发工具包,开发人员使用的工具决定了他们能够以多快的速度将产品呈现在消费者面前。
让我们来看看Flutter在受欢迎程度的爆炸式上升以及使其对开发人员如此有利的功能。
什么是Flutter?
Flutter是Google用于跨平台移动应用程序开发的免费开源软件开发工具包(SDK)。Flutter使用单一的与平台无关的代码库,帮助开发人员构建高性能,可扩展的应用程序,这些应用程序具有适用于Android或IOS的有吸引力且功能强大的用户界面。Flutter依赖于一个预制小部件库,即使编程或开发经验有限的人也可以轻松快速启动自己的移动应用程序。
Flutter由Google于2015年创建,并于2018年正式推出,并迅速成为开发人员的首选工具包。根据Statista的说法,Flutter最近已经超越了React Native,成为头号移动应用程序开发框架。
Flutter是如何工作的?
Flutter是一个分层系统,包括框架,引擎和特定于平台的嵌入器。Flutter应用程序是使用Google的Dart面向对象编程语言构建的。Flutter引擎本身主要是用C /C++编写的。Skia库]是Flutter图形功能的支柱。
Dart是Flutter许多性能优势的基础。它支持提前 (AOT) 和实时 (JIT) 编译。AOT将代码编译为较低级别的本机代码,从而使应用程序启动速度更快,性能更高。JIT促进了Flutter的热重载能力(下面将更详细地讨论),从而缩短了开发时间。Dart 还直接编译为本机 ARM 或 Intel x64 代码,从而最大限度地减少 Flutter 应用与在运行时依赖于中间代码解释的本机应用之间的性能差异。
Flutter的架构还使添加功能或适应新用户变得简单快捷,因此,它具有高度的可扩展性和可扩展性。
为什么移动应用程序开发人员喜欢Flutter?
Flutter的人气飙升是有充分理由的。Flutter为开发人员提供了广泛的优势,可以加快开发速度,并带来更加用户友好的移动应用程序。
Flutter 与平台无关
任何计划推出移动应用程序的开发人员都知道同时拥有适用于Android和iOS的版本是多么重要。截至2021年9月,Android以72%的市场份额牢牢控制着移动市场。但iOS也拥有庞大的用户群体,以及近27%的市场份额。
专注于构建单个本机应用程序会忽略大部分市场,并限制应用程序未来潜在的成功。但是,开发单独的本机应用程序可能既耗时又昂贵。
Flutter 使跨平台开发变得简单。开发人员可以利用Flutter的单一代码库,而不是为每个平台创建单独的代码。
但Flutter对跨平台开发的适用性超出了代码的可移植性。与其他跨平台框架(如 React Native 和 Xamarin)不同,Flutter 构建的用户界面 (UI) 也与平台无关,因为 Flutter 的 Skia 渲染引擎不需要任何特定于平台的 UI 组件。
Flutter 简化并加速了应用程序开发
Flutter具有许多不同的功能,使跨平台移动应用程序开发更简单,更快捷。也许最明显的是,依靠单个代码库和UI引擎进行跨平台开发的能力减少了为Android和iOS生成应用程序版本所需的工作量。
Flutter广泛的小部件库还使开发人员能够随时访问预制功能,从而减少整体编码时间。缩短编码时间可降低开发成本。
Flutter缩短开发时间的最重要功能之一是其有状态热重载能力。依赖于 JIT 编译的热重载可加快代码更改的实现速度。在热重载中,Flutter 将代码更改插入到正在运行的 Dart VM 中,而不会更改保留的状态。由于没有完全重新编译应用代码,因此热重新加载会更快地呈现代码修订的影响。热重载允许开发人员实时查看更改的效果,而无需更改应用程序的当前状态。因此,开发人员可以更快地测试功能和版本以及修复错误。因此,将初始应用程序和更新推向市场所需的时间更少。因此,Flutter 是构建和发布 MVP 应用程序的最佳选择。
由于其效率,Flutter是资金有限的初创公司的绝佳选择。例如,一家初创公司可能已经在网页设计师上每小时至少投资75美元,并将为应用程序开发人员寻找类似或更高的成本。Flutter通过缩短开发时间并加快产品上市速度,为具有成本意识的企业提供了有效的开发工具。
Flutter 易于学习和使用
Flutter很容易上手,无论你是否有丰富的开发经验。经常使用其他语言(如Java,Python,C#或其他面向对象语言)的开发人员将毫无问题地将Flutter和Dart添加到他们的库中,因为Dart在结构和语法上都与这些语言相似。此外,对于那些开发经验较少的人来说,Flutter的扩展小部件库使得构建应用程序变得容易,而无需编写大量代码;有几个平台使用Flutter来构建应用程序而无需编写任何代码!
Flutter也有很好的文档。除了一般的参考手册外,Flutter 帮助资源还包括许多示例应用程序、一本向开发人员展示如何完成常见任务的“食谱”,甚至是对 Flutter 训练营的建议。
但是Flutter的广泛采用创造了一个蓬勃发展的社区,为新的或有经验的Flutter开发人员提供帮助和资源。开发人员可以通过各种博客、论坛和其他在线社区查找信息和帮助,包括:
- 堆栈溢出颤动维基和问题页面
- Flutter Awesome,一个全面的Flutter资源,提供教程,库,UI,应用程序等。
- Flutter-dev Google Group,为开发人员提供技术问题帮助的绝佳来源。
- Flutter-dev subreddit,官方Reddit Flutter社区,用户共享资源和专业知识。
这些只是可用资源中的一小部分。只需快速搜索即可找到更多。
Flutter 缩放良好
开发人员必须能够轻松地添加功能或增加应用程序的用户群,而不会破坏它。Flutter在后端使用Google的Firebase应用程序,该应用程序在构建时考虑了可扩展性。Firebase 提供实时数据库更新,有助于确保数据在客户端之间快速同步。Firebase 还会优化并最大限度地减少同步所需的更新数量,这意味着添加功能用户不会对性能产生负面影响。
Flutter应用程序提供出色的用户体验
要使移动应用程序真正成功,它们必须具有精心设计,有吸引力且功能强大的用户界面。Flutter擅长创造出色的用户体验。
Flutter的内置小部件目录专注于提供高性能,视觉上令人兴奋的应用程序元素。使用Flutter创建从最基本到更复杂的接口的多个组件的UI几乎毫不费力。
Flutter 应用程序直接编译到本机代码中,无需中间代码解释步骤。与其他跨平台开发应用程序(如 React Native)相比,这些应用程序需要在代码和本机元素之间架起桥梁,Flutter 消除了降低性能的额外处理步骤,使其明显更快。
使用Flutter的缺点是什么?
像任何其他SDK一样,Flutter并不完美。虽然它的弱点被它的优势所抵消,但未来的Flutter开发人员应该意识到它的局限性。
大型应用
应用程序大小是许多开发人员非常关注的问题。尽管大多数移动设备都具有充足的存储空间,但大量照片、视频和图形密集型游戏可以快速将设备填满容量。设备越旧,问题就越大。
Flutter 应用程序是独立的,并且具有运行应用程序所需的所有代码,而不是依赖于平台元素,从而导致应用程序大小比其他应用程序更大。对于希望吸引最广泛潜在用户的开发人员来说,Flutter应用程序的大小可能会有问题,并导致开发人员选择不同的语言。
缺少第三方库
访问第三方库有助于减少开发时间和成本,许多开发人员严重依赖第三方资源。Flutter的内置小部件目录非常广泛,Flutter的官方软件包网站有数千种选择。但是,由于Flutter仍然相对年轻,因此第三方库的资源仍然少于可用于其他开发工具的资源。但是,随着越来越多的用户过渡到Flutter,第三方Flutter环境正在迅速增长,您可以预期随着时间的推移,这个问题会逐渐消失。
有限的平台
目前,Flutter应用程序工作的平台数量有限。例如,您无法使用Flutter开发watchOS或tvOS或Apple CarPlay应用程序。预计未来五年智能手表总销量将达到22亿台,这是一个关键的限制。Flutter试图通过提供解决方法来解决此问题,例如将本机Apple Watch扩展添加到Flutter应用程序。
你必须学习Dart
要使用Flutter,你必须了解Google的Dart编程语言。虽然对于面向对象的程序员来说,Dart并不是那么难学,但它并不像其他面向对象的语言(如C#,Java和JavaScript)那样广为人知或使用。因此,希望快速进入市场的开发人员可能会绕过Flutter,因为增加了学习曲线。
它可能比iOS更适合Android。
Flutter的功能在Android上可能比iOS更好也就不足为奇了。已经有iOS功能落后于Android的例子,因为Flutter修复和更新进入了市场。毕竟,Android最突出的支持者谷歌是Flutter背后的力量,Android占据了移动市场的绝大多数。由于Flutter是Google产品,因此使用它的Android开发人员比iOS开发人员更多。有一些建议认为,新的Android功能使其比iOS功能更快地进入Flutter。因此,专注于iOS市场的开发人员应该密切关注未来的Flutter版本。
Flutter的未来会怎样?
在过去三年使用量的爆炸式增长之后,Flutter的市场份额开始趋于平稳。但开发人员不应该将此视为Flutter即将消失的迹象。你只能假设该工具目前的受欢迎程度将导致谷歌尝试解决Flutter的一些更成问题的问题,特别是应用程序大小,而缺乏第三方资源将自行解决。鉴于Flutter的简单性和强大功能,它可能会继续被开发人员广泛使用。
新的和时尚的工具会出现,试图取代Flutter吗?几乎可以肯定。但在可预见的未来,Flutter的前景仍然光明。