由于 Kotlin Multiplatform 的宗旨并不是要替代各个平台提供的所有应用程序编程接口(API),因此应用开发公司需要具备各个平台和相应 API 的基本知识。相比 Flutter 等其他跨平台开发选项,这又是一个选择 Kotlin 的缺陷所在。
较高的开发成本
最后一点也很重要,Kotlin SDK 提供了一些半原生功能。因而构建移动应用需要更高的成本,所以到头来它并不适合创建 MVP 和应用原型。
探讨了 Kotlin 的上述优缺点后,我们再来回顾一下 Flutter,然后进一步深入市场,探究两者之间的关系。
什么是 Flutter UI 框架?
Flutter 于 2015 年推出,是谷歌 Fuchsia 操作系统的市场开路先锋。它是一个开源 SDK,让人们可以使用单个代码库制作出设计精美,具备原生体验的移动设备、Web 和桌面应用程序。
谷歌的 UI 框架针对当前众多的技术和市场挑战,提供了行之有效的解决方案。结果是 Flutter 很快就成为了理想的跨平台应用开发框架。不仅如此,它还进入了一众顶级品牌所使用的技术列表中。
于是人们都更好奇了,想要了解 Flutter 的功能特性以及相应的优点,接下来我们逐一分析。
选择 Flutter 的好处
开源和免费使用
Flutter 及其底层编程语言 Dart 都是开源的,可以免费使用。所以开发人员可以查看它们的文档,在开放的开发论坛中发布自己的问题,最后学会并应用代码。
热重载功能
Flutter 之所以受到移动应用程序开发机构青睐,最重要的原因之一就是它提供的热重载功能。
这一功能使任何人都可以更轻松地在后端做出各种更改,并即时在前端查看更改的效果。通过这种方式,开发人员可以轻松判断更改是否与应用程序的其他元素完美地结合在一起。
高度可定制
投入 Flutter 应用程序开发后,开发人员就有能力在开发环境中使用多种小部件。这使他们更容易创建速度更快,且拥有自定义外观的移动解决方案。
缩减开发周期和成本
Flutter 的一项跨平台优势在于,它让开发人员可以使用单个代码库,同时为 iOS 和 Android 创建类似原生版本的应用程序。这大大降低了创建 Flutter 移动应用的成本。
支持 Google Firebase
借助谷歌的 Firebase 集成工具,Flutter 使开发人员得以将后端设施添加到开发环境中。
适合创建 MVP 和 App 原型
Flutter 提供的功能让开发人员可以用更少的时间、成本和精力,同时为 Android 和 iOS 平台构建应用程序。这让 Flutter 成为 MVP 开发、创建用来试水或吸引投资应用原型的理想选择。
选择 Flutter SDK 的缺陷
更大的应用体积
当你的应用程序开发计划选择 Flutter 时,面临的的最大缺陷就是应用体积太大了。与 React Native 和 Xamarin 相比,用这个框架就连发布一个“Hello World”应用的文件大小也有大约 6.7MB。
需要用 Dart 编程
无可否认,Dart 易于学习且实现速度更快。但是,它还不像 Java、C#、JavaScript 和 C 这些同行一样那么流行。于是开发人员很难去学习那些最佳 Dart 编程课程,进而踏入 Flutter 开发领域。
对比 Kotlin 与 Flutter 时的考虑因素
市场知名度
Kotlin 和 Flutter 都是开源且免费使用的工具。因此开发人员很有兴趣同时使用两种方案。
我们看一下谷歌趋势数据,与 Kotlin 相比,Flutter 的受欢迎程度正在飞速增长。同样,我们看一看 GitHub 的数据来对比 Kotlin 和 Flutter,会发现前者有 28.3K 星和 3.29K forks,而后者有 69.5K 星和 8.11K forks。
这些数据表明,在市场上 Flutter 相比 Kotlin 获得的发展动力要大得多。
学习曲线
如果你将学习曲线看作是原生 Kotlin 与 Flutter 的战争中的比较因素,那么前者无疑会是赢家。其背后的原因是它可以与 Java 互操作,并且几个月前谷歌提供了一系列 Kotlin 学习课程
但是话题转向 Kotlin Multiplatform 和 Flutter 的比较时,情况就有所不同了。与 Flutter 相比,Kotlin Multiplatform 是一个全新的生态系统,其在市场上可用的资源是很有限的。
因此,Flutter 赢得了比赛。
性能
Flutter 让开发人员可以使用相同的语言来同时满足前端布局和后端需求,并享受更流畅的动画等众多好处。
但是与 Kotlin 相比,Flutter 在市场上仍然远远落后。其主要原因是 Kotlin Multiplatform 的代码是完全按照目标平台的格式编译的。
因此,Kotlin Multiplatform 赢得了对 Flutter 的性能之战。
第三方库和工具的集成
Kotlin Multiplatform 运行在原生平台生态系统内,而不是新建一个生态。因此,应用专家可以使用他们在原生开发工作期间一直使用那些工具和库,包括 Jetpack Compose 和 SwiftUI 等。于是乎,这意味着他们无需寻找第三方库和工具来对接原生环境。
但对于 Flutter 跨平台 SDK 来说这些工具是必需的,因为它基本上是一个 UI 开发工具。
后端开发领域
考虑 Kotlin Multiplatform 与 Flutter 之间在后端开发领域的比较时,前者又一次胜出了。
Flutter 使用的是 Firebase(这是一个高效的 BaaS——后端即服务平台),来提供出色的后端体验。而 Kotlin Multiplatform 让开发人员可以直接编写后端代码。
专注于多平台
目前,Flutter 的用例针对的是移动设备(Android 和 iOS)和 Web 端的应用程序。人们无法用它在 tvOS、Android Auto、CarOS 和 WatchOS 上展示自己的产品。
但对于 Kotlin Multiplatform 来说并没有这种限制。它的设计理念就是为移动端以外的设备和平台开发应用项目。