由于 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 来说并没有这种限制。它的设计理念就是为移动端以外的设备和平台开发应用项目。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V:vip204888 备注Android获取(资料价值较高,非无偿)
如何做好面试突击,规划学习方向?
面试题集可以帮助你查漏补缺,有方向有针对性的学习,为之后进大厂做准备。但是如果你仅仅是看一遍,而不去学习和深究。那么这份面试题对你的帮助会很有限。最终还是要靠资深技术水平说话。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。建议先制定学习计划,根据学习计划把知识点关联起来,形成一个系统化的知识体系。
学习方向很容易规划,但是如果只通过碎片化的学习,对自己的提升是很慢的。
同时我还搜集整理2020年字节跳动,以及腾讯,阿里,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。
在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
效果强太多。
[外链图片转存中…(img-fqsxXkr8-1711559160935)]
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。