仍处于实验状态
虽然这一 SDK 是在 Kotlin 1.2 中引入的,但它尚未达到稳定的 1.0 版本,仍处于实验状态。这让开发人员在考虑为下一个大型项目选择它时犹豫不决。
可用的库不够多
当前,它的开发环境中仅提供了一些基本库,例如数据序列化库和 HTTP 客户端库。尽管随着 Kotlin 1.4(即 Kotlin 1.3.60 的继任者)的到来,会有更多像 DateTime 这样的库进入市场,但直到现在,要做到无缝且毫不费力地构建应用程序依旧是很困难的事情。
需要熟悉其他技术栈
由于 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 来说并没有这种限制。它的设计理念就是为移动端以外的设备和平台开发应用项目。
因此,Kotlin Multiplatform 是移动应用程序开发服务公司在你能想象的各种平台和设备上点亮应用创意的首选工具。
工作机会和薪资范围
在对比 Kotlin Multiplatform 与 Flutter 时,要考虑的另一个重要因素就是工作机会和薪资范围。
在 StackShare 社区中,有 268 家公司和 210 位开发人员在技术栈中提到了 Kotlin 编程语言,而 Flutter 被 42 家公司和 146 位开发人员纳入了技术栈。
现在,由于 Kotlin Multiplatform 还不是一个独立的平台,而是对原生语言的一种实验性扩展,可以在 Kotlin 原生环境中使用,所以看起来它在市场上有更多的工作机会。
文档和社区支持
与 Flutter 相比,Kotlin Multiplatform 仍然比较新,实际上还处于实验阶段。因此,后者的文档和社区支持在某些方面落后于前者。但是,一旦 Multiplatform 变得稳定起来,可以预期它的文档和社区实力将有所提高,从而进一步鼓励大家使用 Kotlin 进行跨平台开发。
谁会是跨平台开发大战的胜利者?
Kotlin Multiplatform 和 Flutter 都是可靠的工具,均旨在减少同时在 Android 和 iOS 平台上发布产品所需的时间,并且都得到了谷歌的支持。它们相互之间进行着激烈的竞争,并且每次更新后都变得更具竞争力。
在这种情况下,建议开发人员咨询移动专家,分析你的跨平台应用需求和优先级,来确定 Kotlin 和 Flutter 究竟哪种选择才是更合适的。
Android开发除了flutter还有什么是必须掌握的吗?
相信大多数从事Android开发的朋友们越来越发现,找工作越来越难了,面试的要求越来越高了
除了基础扎实的java知识,数据结构算法,设计模式还要求会底层源码,NDK技术,性能调优,还有会些小程序和跨平台,比如说flutter,以思维脑图的方式展示在下图;
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
[外链图片转存中…(img-Se8VgsN0-1714704762363)]
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!