Kotlin Multiplatform Mobile已迈入Alpha

Kotlin Multiplatform Mobile(KMM)是一个能让你在iOS和Android应用程序中共用业务逻辑代码的SDK。KMM今天发布Alpha版,你可以马上使用其共享移动应用程序中的业务逻辑。它包含适用于Android Studio的新KMM插件,可以在同一IDE中编写,运行,测试和调试共享代码。加入像VMWare,Autodesk和Yandex这样的优秀团队,他们使用Kotlin在其移动应用程序中共享代码。在移动平台之间重用代码从未如此简单!

file

Kotlin Multiplatform Mobile是什么?

Kotlin Multiplatform Mobile (KMM)是JetBrains提供的用于跨平台移动开发的SDK。它用到了Kotlin的多平台特性 ,以及各种工具和功能,旨在让构建移动跨平台应用程序的端到端体验尽可能迷人和高效。

Android和iOS版本的应用程序通常有很多共同点,但也存在很大的区别,尤其是在UI方面,从滚动行为的细微差别到完全不同的导航逻辑。同时应用程序的业务逻辑(包括数据管理,分析和身份验证等功能)通常是相同的。这就是为什么跨平台应用程序的某些部分能共享,同时其他部分需要完全分开的原因。

使用KMM,灵活性及Native编程的优势都能兼得。将某个单独的代码库用于iOS和Android应用程序的业务逻辑,并在需要时,编写平台特定代码去实现本机UI或API。

file

KMM能无缝接入到你的移动项目。用Kotlin编写的共享代码通过Kotlin/JVM编译为JVM字节码,并通过Kotlin/Native编译为本机二进制文件,因此你可以像使用其他标准移动库一样使用KMM的业务逻辑模块。

在移动平台之间共享Kotlin代码已经为许多公司节省了大量时间和人力。以下是一些令人激动的案例:

  • Quizlet将他们的业务逻辑从JavaScript共享方案迁移到KMM,极大提高了Android和iOS应用程序的性能。
  • Fastwork为其应用程序的domain和数据层引入了KMM,以在移动平台之间共享业务逻辑和API服务,从而极大地提高了团队的生产力。 –Yandex.Disk通过尝试集成一个小功能开始的,当实验成功后,他们通过KMM实现了整个数据同步逻辑。

这些团队和很多其他团队取得的非凡成就是我们灵感的重要部分,我们希望他们的故事能鼓励你开始使用KMM在移动平台之间共享代码。

享受使用KMM创建移动应用程序

KMM对移动开发领域来说还很陌生,但我们相信它是真正的游戏规则改变者。因此,我们在Kotlin内部分配了一个单独的团队来推动KMM前进,并为使用Kotlin创建跨平台移动应用程序提供最佳的开发人员体验。

作为迈出的第一步,今天我们很高兴向你展示** 适用于Android Studio的KMM插件的第一个预览版和新的 KMM开发人员门户**。

让我们的KMM之旅启程吧!

在熟悉的环境中工作

使用新的KMM插件,你可以在Android Studio中编写,运行,测试和调试共享代码,而无需切换到其他IDE。通过Preferences | Plugins,在Marketplace搜索Kotlin Multiplatform Mobile,点击Install按钮进行安装。

只需单击几下即可配置新的应用程序

通过** New Kotlin Multiplatform Mobile Project 向导,只需点击几下,便可创建有共享代码库的可运行的移动应用程序项目。要观察项目在两个平台上如何工作,只需选择所需的运行配置,然后点击Run** 按钮。

file

生成的项目将包含如何连接到特定于平台的API和基本测试范围的示例。你可以使用该向导来探索KMM的基本功能,也可以将其用作新的KMM生产应用程序的脚手架工具。

跟随教程安装插件并通过向导创建你的第一个多平台应用程序。

轻松接入KMM到现有项目

你还可以直接在现有项目中开始KMM之旅:就像其他任何常规依赖项一样,共享的Kotlin代码可以轻松地集成到现有的代码中。 新的Kotlin多平台移动模块向导将帮助你向项目中添加新的KMM模块,因此可以使用已编写的Kotlin代码,并对其进行重构使其与iOS兼容。

参考将KMM集成到现有项目指南,了解如何设计多平台项目的架构以及如何迁移。

一个IDE,两个平台

不再需要切换IDE到Xcode来检查代码是否在两个平台上都能正常工作。通过新插件,iOS真机和模拟器都已直接集成到Android Studio中。并为你提供以下功能:

  • 在模拟器或具有预定义运行配置的设备上运行并调试IOS应用程序
  • 只需单击测试类或方法上的gutter图标,即可在iOS模拟器上运行并调试通用及IOS指定测试

对于应用程序和测试,你都可以在iOS上设置断点并调试代码。

img

无缝集成IOS生态

如上所述,KMM已和你的移动端项目无缝集成。对于Android,可以在项目的任何位置使用Kotlin。同时得益于Kotlin/Native与Objective-C/Swift的互操作性,KMM提供了与iOS开发过程的紧密集成。 与CocoaPods依赖项管理器集成,以及使用特定于平台的API的能力与期望/实际模式。

享受在Kotlin/Native中混合编写Swift与Kotlin代码

Kotlin/Native提供了与Objective-C/Swift的双向互操作性。 Kotlin模块可以在Swift/Objective-C中完整使用。你可以使用Kotlin代码中的Objective-C框架和库,也可以使用Swift库(如果它们的API已通过@ objc导出到Objective-C)。

更多信息请查阅Kotlin/Native与Swift/Objective-C的互操作性.

轻松管理IOS依赖

Kotlin/Native集成了CocoaPods依赖管理器。你可以添加对CocoaPods存储库中或本地存储的Pod库的依赖,也可以将面向native目标的多平台项目用作CocoaPods依赖(Kotlin Pod)。直接在Android Studio中管理Pod依赖项,并享受完全的编码辅助,包括代码高亮和代码补全。

这是标准的KMM库配置示例:

通过将库的名称和路径添加到Podfile,将库作为Kotlin Pod连接到你的iOS项目:

更多信息请查阅CocoaPods集成.

了解如何在新的开发人员门户上创建优质的多平台移动应用

新的KMM开发人员门户,旨在让KMM从入门到生产的开发之旅更加舒适和高效。

使用KMM时,文档将是你最值得信任的同伴。各种各样的专业内容,从入门到高级开发专题。包含常见案例的有用资源,例如网络组建和数据存储层,乃至围绕KMM的开发流程

想了解在项目中应用KMM的优势?可以通过案例研讨的其他团队产品所使用KMM的一手经验中学习。

社区的力量

我们感谢以下公司和独立开发者,他们投入的时间、知识以及经验对于该版本至关重要:Kevin Galligan, Alec Strong, Arkadii Ivanov, Ben Asher, John O’Reilly, Louis CAD, Kris Wong, Aleksey Mikhailov和许多其他优秀的工程师。感谢你在YouTrack上报告问题,参与产品调研及回访,分享有关你使用KMM的经历以及创建的让人惊讶的多平台库!

我们还要感谢帮助新的开发者门户网站创建内容的团队:TouchlabIceRockKodein Koders 。你们的工作将帮助成千上万的开发者能更深入地了解Kotlin Multiplatform Mobile并发挥它的全部潜力。

大伙们,摇滚起来!

现在尝试

伴随所有这些非常酷的特性,我们很高兴宣布** KMM已进入Alpha**。这意味着Kotlin团队将全力改进这项技术并促进其发展。这也表明该产品将快速迭代。我们将倾听你的反馈,并尽快提供修复和改进。请通过tracker反馈你发现的任何问题,来帮助我们提高KMM的稳定性。

使用Alpha意味着你已经准备就绪,可以开始使用KMM在移动平台之间共享业务逻辑代码。可以创建一个新项目,也可以轻松地将KMM模块集成到现有项目中。在这两种情况下,都能以最低的成本完成工作,并且你始终可以回到纯native开发魂晶。社区发展迅速,你可以参与社区来带动整个生态的发展。

因此,现在是开始使用KMM的最好时机!

更多KMM的深入体验,及交流你即将探索的特性,请加入Slack的多平台爱好者社区(在这里获取邀请),并在Stack Overflow上订阅“kotlin-multiplatform”标签。

我们已竭尽全力,仍不能保证迁移万无一失。我们将通过feature flags及提供新版本的迁移指南来尽量避免兼容性问题。

分享反馈

该版本只是旅程的开始,但这个过程中我们需要帮助。希望能收到你的所有反馈。通过分享你使用Kotlin Multiplatform Mobile的经历来鼓舞他人,并请分享你对改善KMM的任何想法。

Let’s Kotlin!

此条目发表在官方分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注