曾几何时,跨平台开发被认为和使用 React Native 和 Flutter 构建应用程序是同义词。业余爱好者和移动应用程序开发公司都依赖这两个框架,以更低的成本更高的效益在安卓和 iOS 平台上发布自己的应用。但是现在,Kotlin 也加入了竞争,这让每个人都想知道谁将成为跨平台市场的霸主。
在这篇文章中,我们将重点将 Kotlin 和 Flutter 进行比较,并帮助你找到跨平台应用的程序开发的正确选择。
什么是 Kotlin Multiplatform ?
Kotlin Multiplatform,是 Kotlin 语言的一个附加特性,帮助它扩展到 Android 应用程序开发之外的领域。这意味着,它使开发人员能够跨多个平台 (如 iOS、 Web、 Linux、 MacOS、 Android 和 Java 虚拟机(JVM))共享代码、数据和业务逻辑。
由于我们在这里主要关注跨平台的特性,我们需要更关注 Kotlin 的原生平台特性。
投资 Kotlin 应用程序开发以实现跨平台展示的理念在市场上还是一个新概念,但令人惊讶的是,各种流行品牌都接受了这一理念。
这背后的主要原因是它为移动应用程序开发者带来了以下好处。
Kotlin Multiplatform 的优点
1. 它是一个 SDK,而不是框架
选择 Kotlin 的最大好处是,你不必完整地迁移应用程序。你可以从单个模块或特性开始,验证其有效性,然后逐步迁移其他部分。
2. 易于学习
由于 Kotlin 的语法与其他高级编程语言如 Swift、 Java、 Groovy 和 Scala 的语法非常相似,所以学习这门语言并投入 Kotlin Multiplatform 开发非常容易。
使用 Kotlin Multiplatform 开发让我们更专注于创新,而不是耗费更多时间在不同平台上编写相同逻辑的代码。MPP 比我们之前的方式更好,因为它将每个平台都当做首要目标。——Ankush Gupta, Qulzlet 软件工程师
3. 业务逻辑的重用
Kotlin 不是第一个能够将业务逻辑和 UI 分开的工具。各种跨平台框架,如 Xamarin 和 React Native 已经提供了类似的服务。
然而,它与其他的应用程序的不同之处在于,它在 UI 层之下使用了共享逻辑和库。这使得移动应用程序开发人员可以与原生环境进行交互—— Swift 和 XCode 之于 iOS,JavaScript 之于 web,以及 Kotlin 和 Android Studio 之于 Android ——而不需要使用任何桥接,以更原生的方式交付代码。
4. 原生 UI 体验
Kotlin Multiplatform 并不要求开发人员遵循任何 UI 创建指令。它使 UI 开发人员能够像处理原生应用程序一样处理应用程序的外观、行为和性能。
5. 更好的表现
考虑使用 Kotlin 语言进行跨平台开发的优点之一是,跨平台编译代码时采用与目标平台相同的格式。这使得它在性能方面与该平台原生语言的性能如出一辙。
6. 增强的灵活性和可扩展性
在不使用任何虚拟机的情况下,只借助 Kotlin 开发者就可以扩展他们的应用程序项目。这使它成为制作移动应用程序的理想选择,同时又兼具灵活性和可伸缩性。
然而,尽管有明显的优势,Kotlin 语言的跨平台扩展仍然因为某些缺点而难以成为所有人的最爱。
Kotlin Multiplatform 的缺点
1. 仍处于实验阶段
虽然在 Kotlin 1.2 版本中发布,但是 SDK 还没有真正达到稳定的 1.0 版本。它仍处于试验阶段,这就让开发人员在为下一个大项目选择它时犹豫不决。
2. 可用库非常有限
目前,开发环境中只有少数几个基本库,如数据序列化库和 HTTP 客户端库。尽管随着 Kotlin 1.3.60 的下一个版本 Kotlin 1.4 的到来,预计还会有更多像 DateTime 这样的库可以使用,但是直到目前为止,很难毫不费力地使用 Kotlin 构建应用程序。
3. 需要熟悉其他技术栈
由于 Kotlin Multiplatform 并不是为了取代平台所关注的所有应用程序编程接口(API) ,因此应用程序开发公司需要对每个平台和 API 有基本的了解。这也是选择 Kotlin 而不是 Flutter 和其他跨平台开发带来的缺点。
4. 更高的开发成本
最后,Kotlin SDK 提供了一些半原生功能。因此,开发移动应用程序需要更高的成本,这最终使得它不适合开发 MVP 和应用程序原型。
在深入对比 Flutter 和Kotlin Multiplatform 的优劣之前,让我们先了解一下 Flutter。
什么是 Flutter UI 框架?
Flutter 于 2015 年推出,旨在为谷歌 Fuchsia 市场做准备,它是一个开源软件开发工具包,可以使用一个代码库来制作漂亮的、原生的移动、网络和桌面。
Google 的 UI 框架旨在成为主流技术和迎接其他市场的挑战,提供高效的解决方案。其结果是 Flutter 成为一个理想的跨平台应用程序开发框架。不仅如此,它还进入了顶级品牌使用的技术清单中。
这使得大家更想知道 Flutter 的特点和优势,你将在下文中了解到这些内容。
Flutter 的优点
1. 开源和免费
Flutter 和它的底层编程语言 Dart 都是开源的,可以免费使用。这使得开发人员可以查看文档,在开放式的开发者论坛中发布查询,并最终学习和实现代码。
2. 热加载功能
Flutter 之所以受到移动应用程序开发机构青睐的最大原因之一是它的热加载功能。该功能使任何人都可以更容易地在后端进行任何更改,并同时在前端查看差异。通过这种方式,就可以很容易地确定更改是否与应用程序的其他元素完美结合。
3. 高度可定制
使用 Flutter 进行应用程序开发,开发人员可以在开发环境中使用不同的小部件。这使得他们更容易创建移动解决方案,更快定制外观。
4. 降低开发时间和成本
Flutter 跨平台的好处之一是,它为使用一个代码库为 iOS 和 Android 创建原生类应用程序提供了可能。因此创建一个 Flutter 移动应用程序的成本相当低。
5. 支持 Google Firebase
通过 Firebase 集成工具,开发人员能够将后端工具添加到 Flutter 开发环境中。
6. 适合创建 MVP 开发和应用程序原型
Flutter 提供了以更少的时间、成本和精力为 Android 和 iOS 平台构建应用程序的功能。这使得 Flutter 成为 MVP 开发和创建原型的完美选择,可以用来试水或集资。
使用 Flutter SDK 的缺点
1. 应用程序过大
为应用程序开发计划选择 Flutter 的最大缺点是应用程序太大了。与 React Native 和 Xamarin 相比,即使在这个框架中 Hello World 的发布文件大小也要 6.7 MB 左右。
2. 基于 Dart
不可否认,Dart 很容易学习,而且实现起来更快。然而,它还没有像同类的 Java、 C# 、 JavaScript 和 C语言那样受欢迎。这都阻碍了开发人员报名参加 dart 最佳程序设计课程 和投入到 Flutter 怀抱。
现在,既然我们已经对这两者有了初步的了解。接下来,让我们来看看哪个更适合跨平台开发ーー Kotlin 还是 Flutter。
对比 Kotlin Multiplatform 和 Flutter 要考虑的因素
1. 市场人气
Kotlin 和 Flutter 都是开源的,可以免费使用的工具。正因为如此,开发人员对两者都感兴趣。
如果你查看谷歌趋势(Google Trends),Flutter 的受欢迎程度与 Kotlin 相比上升幅度更大。同样的,如果你通过 GitHub 比较 Kotlin 和 Flutter,前者有 28300 start 和 3290 次 fork,而后者有* 69500 次 start 和 8110 次 fork*。
这表明,与 Kotlin 相比,Flutter 的人气更高。
2. 学习曲线
如果你把学习曲线作为比较 Kotlin 和 Flutter 的一个因素的话,前者无疑会赢。其背后的一个原因是 Kotlin 可以与 Java 互操作,而且谷歌几个月前提供了各种 Kotlin 学习课程。
但是,当谈到 Kotlin Multiplatform 和 Flutter 谁更有优势时,情况就有些不同了。与 Flutter 相比 Kotlin Multiplatform 是一个新的生态系统,市场上可用的资源有限。
正因为如此,Flutter 更胜一筹。
3. 性能
Flutter 让开发人员使用相同的语言布局和后端需求,享受更高的动画速度,等等。
但与 Kotlin 相比,Flutter 在中国在市场上仍远远落后。其背后的主要原因是,Kotlin Multiplatform 代码的编译格式与目标平台完全相同。
因此,在跨平台性能方面 Kotlin 更胜一筹。
4. 第三方库和工具的整合
Kotlin Multiplatform 在本地平台生态系统中运行。因此,应用程序专家可以使用他们在原生开发中使用的工具和库,包括 Jetpack Compose 和 SwiftUI。这最终意味着他们不需要寻找第三方库和工具来连接本地环境。
但是,如果 Flutter 跨平台的 SDK 基本上是一个 UI 开发工具,因此它就需要借助第三方库或工具。
5. 后端开发的范围
当侧重后端服务开发时,Kotlin Multiplatform 比 和 Flutter 更有优势。
虽然 Flutter 可以整合 Firebase ,一个 BaaS (后端即服务)平台,整合后端开发。但是 Kotlin multiplatform 却直接可以让开发人员编写后端代码。
6. 关注多个平台
目前,针对移动设备 (Android 和 iOS) 和网络设计的应用程序都属于 Flutter 使用范围。人们不能使用它在 tvOS、 Android Auto、 CarOS 和 WatchOS 上同时出现。
然而,在 Kotlin Multiplatform 的情况下,就不存在这种限制。它的目的是为移动设备和平台以外的设备开发应用程序项目。
因此,对于移动应用开发服务公司来说,选择 Kotlin Multiplatform 是一个更好的选择,因为他们可以在任何想涉足的平台和设备上推出他们的应用。
7. 工作和薪水范围
另一个需要考虑的重要因素是工作和薪酬范围。
根据 StackShare 社区,Kotlin 编程语言被 268 家公司和 210 个开发者提到,而 Flutter 只被 42 家公司和 146 个开发者列为技术栈。
现在,因为 Kotlin Multiplatform 不是一个独立的平台。这是一种原生语言基础上的试验性扩展,你可以在 Kotlin 的原生环境中使用它,这就给人留下了有更多工作机会的印象。
8. 文档和社区支持
与 Flutter 相比, Kotlin Multiplatform 仍然比较新,实际上还处于试验阶段。因此,后者的文档和社区支持在某种程度上落后于前者。但是,一旦跨平台的功能稳定,文档和社区实力将得到改善,届时更多人将会选择 Kotlin 进行跨平台开发。
谁是跨平台开发大战的胜利者?
Kotlin Multiplatform 和 Flutter 都很可靠,它们的目的都是为了缩短在 Android 和 iOS 平台上应用开发的周期。它们都得到了 Google 的支持。它们相互之间进行着激烈的竞争,并且每次发行都变得越来越有竞争力。
在这种情况下,最明智的做法是咨询移动领域的专家,分析你的跨平台应用的需求和优先级,以确定 Kotlin 和 Flutter 哪个更适合你。
原文:https://medium.com/@jackpatelsa/kotlin-vs-flutter-who-will-rule-the-cross-platform-app-market-6d1d69cad894
分享到:
相关推荐
国外智能机器人大鳄是如何称霸我国市场的?.doc
NB-IoT、LoRa、eMTC、Zigbee、Sigfox、WiFi、蓝牙,谁能称霸物联网时代? (2021-03-13 下午5_59_55).html
### 卷积神经网络为何能在计算机视觉领域称霸? #### 引言 随着深度学习技术的飞速发展,卷积神经网络(Convolutional Neural Network, CNN)在计算机视觉领域取得了巨大成功,成为了该领域的核心技术之一。CNN因...
艾格菲欲称霸中国猪肉市场.doc
根据TheNextWeb的报道,来自Shareaholic统计数据显示,Chrome 依然统治着桌面和移动平台,火狐市场份额已经由第二位滑落至第四位,排名Safari和IE之后。 报告还显示,只有内置于应用的Safari浏览器和Android自带...
它通过收购手段,比如收购敏捷协同开发平台Heroku和社交媒体营销解决方案ExactTarget,将产品线扩展至多个领域,进一步加深了其在市场上的影响力。 值得一提的是,Salesforce对Slack的收购,不仅是因为应对微软等...
随着5G、物联网、电动汽车、智能汽车等新兴应用市场的兴起,化合物半导体器件的市场规模预计在2021年超过700亿人民币。同时,我国在该领域的产品需求很大程度上依赖进口,因此三安光电的本土化生产有望满足市场需求...
未来,苹果可能将全部产品线转向ARM架构,领先于微软的Windows 8跨平台策略。 4. **品牌价值**:苹果被公认为全球最有价值品牌,品牌价值高达1533亿美元。苹果以其卓越的设计和创新赢得了消费者的尊重和忠诚,惠普...
此外,报告还预测了第三势力的出现,这可能意味着新兴品牌或技术的兴起,将重塑市场格局。 ### 3. KingofTheSystem:Android系统失控,Google霸主渐危 这部分讨论了操作系统层面的竞争,尤其强调了Android系统的...
丰田汽车公司作为全球知名的汽车制造商,其在全球汽车市场的扩张之路并非一帆风顺。面对日益激烈的竞争和全球化的挑战,丰田需要跨越四个关键性的难关。首先,依赖日本员工的单一人力资源策略已经到达极限。随着丰田...
总结来看,Intel连续19年称霸半导体产业的现象,体现了公司在技术创新、产品优化以及市场战略上的成功。同时,Apple对Samsung的诉讼则突显了知识产权在高科技行业中的价值,以及企业间竞争的激烈程度。半导体产业的...
### 戴尔如何运用CRM-SCM集成技术称霸个人电脑市场 #### 一、引言 戴尔作为全球知名的个人电脑制造商,在激烈的市场竞争中一直保持着领先地位。这背后的关键因素之一便是其对CRM(客户关系管理)与SCM(供应链管理...
这为亚马逊搭建了一个无边界的平台,使其成为了一个虚拟世界的“超级市场”。亚马逊提供的产品种类丰富,能够满足不同消费者的需求,这种极致的选择性是其吸引用户的重要因素。 其次,技术创新是亚马逊称霸电商领域...
3D手机桌面壁纸给你全新的炫酷体验,让你感受不一的豪华视觉盛宴,让你尽显高端,大气...5.强大的功能表:合理的布局排版,按名称、按时间等排列应用的方式让您管理应用更方便,同时可将单个或多个应用快速添加到屏幕。
石油化工行业:大炼化产业系列报告之PTA篇:景气周期来临,行业龙头开启称霸全球之旅.pdf
魏国在战国初期一跃成为强国,并称霸中原,缘于多方面...重视三晋联盟及周边相对和平的发展环境,改变不利的地理位置,为其称霸提供了良好的内部条件。当时秦国还比较落后,尚不强大,这也使魏国最终实现了称霸中原的目的。
局域网称霸笔记(arp攻击利用)会话劫持,登陆指定IP登陆过的网站
此外,NS拥有的优秀设计工具也将被整合进TI的设计工具平台,为工程师提供更全面的支持。这样的合并意味着TI在提供解决方案时,能够提供更统一、更高效的设计环境,提高工程效率。 总的来说,德州仪器对国家半导体...
称霸四海是一个很经典的海战有戏,但是在xp下进入肉搏战就会退出,该补丁正式为各位修改该稳定设计的补丁,祝大家游戏愉快!! 下载补丁到游戏根目录后运行即可
GPU因其通用性和高性能称霸云端训练市场,在云端训练市场上占比90%,云端推断市场上占比60%。英伟达作为全球云端AI芯片市场的领导者,其GPU市场占有率超过80%。 报告认为,AI芯片发展的关键在于满足两个条件:(1)...