它包含适用于AndroidStudio的新KMM插件,允许您在同一IDE中编写、运行、测试和调试共享代码。与VMWare、Autodesk和Yandex等优秀团队一道在移动应用中使用Kotlin分享代码。在移动平台之间重用代码从未如此简单!
什么是KotlinMultiplatformMobile?KotlinMultiplatformMobile(KMM)是JetBrains提供的跨平台移动开发SDK。它使用Kotlin的多平台功能,包含各种工具和功能,旨在使移动跨平台应用程序的端到端构建体验尽可能愉快和高效。
应用程序的Android和iOS版本通常有很多共同点,但也会有很大不同–尤其在UI方面–无论是滚动行为的微妙变化,还是迥异的导航逻辑。同时,应用程序的业务逻辑,包括数据管理、分析和认证等功能,往往是相同的。因此,标准操作是跨平台共享应用程序的某些部分,同时保持其他部分完全相互独立。
通过KMM,您可以获得这种灵活性,并保留原生编程的优势。将单个代码库用于iOS和Android应用的业务逻辑,只在实施原生UI有必要时或使用平台特定API时编写平台特定代码。
KMM与您的移动项目无缝集成。Kotlin编写的共享代码通过Kotlin/JVM编译为JVM字节码,经Kotlin/Native编译为原生二进制文件,因此您可以像使用其他常规移动库一样使用KMM业务逻辑模块。
在移动平台之间共享Kotlin代码已经为许多公司节省了大量的时间和精力。这里有一些启发性案例:
1)Quizlet将业务逻辑从共享JavaScript方法迁移到KMM,大幅提高了其Android和iOS应用程序的性能。
2)Fastwork为其应用程序的域和数据层引入KMM,在移动平台之间共享业务逻辑和API服务,显著提升了团队的生产力。
3)Yandex.Disk起先只是尝试集成一个小功能,当实验证明成功后,他们在KMM中实施了整个数据同步逻辑。
以上案例和其他团队取得的大量骄人成绩是我们的一大灵感来源,我们希望这些故事会鼓励您开始使用KMM在移动平台之间共享代码。
享受使用KMM创建移动应用程序KMM仍然是移动开发领域的新面孔,但我们相信它能够彻底颠覆游戏规则。因此,我们在Kotlin内部分配了一个单独的团队专注推进KMM,并为开发者提供最佳的Kotlin跨平台移动应用程序创建体验。
我们迈出的第一步,就是在今天向您隆重展示适用于AndroidStudio的KMM插件的第一个预览,以及新的KMM开发者门户。随我们踏上KMM之旅!
享受熟悉的工作环境有了新的KMM插件,您可以在AndroidStudio中编写、运行、测试和调试共享代码,而无需切换到其他IDE。如需安装,请选择Preferences
Plugins,在Marketplace中搜索KotlinMultiplatformMobile,然后点击Install按钮。
只需几次点击即可配置全新的应用程序借助NewKotlinMultiplatformMobileProject向导,您只需点击几下就可以通过共享代码库创建随时可运行的移动应用程序项目。要查看它在两个平台上的工作情况,只需选择对应的运行配置,然后点击Run按钮。
生成的项目将包含如何连接到平台特定API和基本测试覆盖的示例。您可以使用此向导探索KMM的基本功能,也可以将其用作新KMM生产应用程序的基架工具。按照通过此教程安装插件,并跟随向导创建您的第一个多平台应用程序。
安装插件,并跟随向导创建您的第一个多平台应用程序。您还可以在当前项目中开始KMM之旅:共享Kotlin代码可以轻松集成到您的现有代码,和其他常规依赖关系完全一样。新的KotlinMultiplatformMobileModule向导将帮助您在项目中添加新的KMM模块,让您可以使用已经在Kotlin中编写的代码,并将其重构为与iOS兼容。
阅读原文可查看文章《将KMM集成到现有项目的指南》,了解如何设计多平台项目架构并对其组织迁移。
一个IDE,两个平台您不再需要切换IDE并运行Xcode来检查代码是否在两个移动平台都能正常工作。使用新插件,您可以直接在AndroidStudio中整合iOS设备和模拟器。这将提供以下功能:
1)使用预定义运行配置,在模拟器或设备上运行和调试iOS应用程序。
2)在iOS模拟器上运行和调试常见测试和iOS特定测试,只需点击测试类或方法上的间距图标。
对于应用程序和测试,您都可以在iOS上设置断点和调试代码。
无缝集成iOS生态
如前所述,KMM与您的移动项目无缝集成。对于Android,您可以在项目的每一个部分使用Kotlin。同时,基于Kotlin/Native与Objective-C/Swift的互操作性,与CocoaPods依赖管理器的集成,以及按照期望/实际模式可使用平台特定API,KMM提供了与iOS开发流程的紧密集成。
通过Kotlin/Native在Swift代码中轻松使用KotlinKotlin/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库或本地Pod库的依赖项,还可以将具有原生目标的多平台项目用作CocoaPods依赖项(KotlinPod)。直接在AndroidStudio中管理Pod依赖项,体验包括高亮显示和补全的完整编码支持。
这是典型KMM库配置的外观:
向Podfile添加库名和路径,将库作为KotlinPod连接到iOS项目:
阅读原文可详细了解CocoaPods集成。
了解如何在全新开发者门户中创建更优质多平台移动应用新的KMM开发者门户力求使您的使用过程更加舒适高效。从您的第一次KMM体验直到将其投入生产,全程提供全面支持。
文档部分是您在使用KMM时值得信赖的资源。您可以找到适合各种专业水平的内容,包括入门教程以及更高级的开发主题。其中包含关于常见任务的实用信息,比如组织网络和数据存储层,甚至围绕KMM组织开发过程。
正在寻找使用KMM为应用程序提供优势的新灵感?在案例研究部分,从已在产品中使用KMM的各种团队获取第一手经验。
社区的力量我们感谢以下公司和独立开发者,他们投入的时间、知识和专业技能是构筑这一版本的基础:KevinGalligan,AlecStrong,ArkadiiIvanov,BenAsher,JohnO’Reilly,LouisCAD,KrisWong,AlekseyMikhailov以及其他的优秀工程师。感谢您在YouTrack上报告问题、参与产品研究和采访、分享KMM的经验故事以及创建惊人的多平台库!
我们还要感谢帮助我们为新的开发者门户创建内容的团队:Touchlab,IceRock,和KodeinKoders。
您的工作将帮助成千上万的开发者深入了解KotlinMultiplatformMobile并充分利用其全部功能。干得漂亮,朋友们!
立刻试试吧介绍过这些酷炫功能,我们荣幸宣布KMM现已进入Alpha阶段。这意味着Kotlin团队将全力改进这项技术并助力技术发展。这也是产品将快速开发的信号。我们会倾听您的反馈,并尽快提供修复和改进。请通过我们的跟踪器报告您发现的任何问题,帮助我们提高KMM的稳定性。
Alpha版本意味着一切都已准备就绪,您可以开始使用KMM在移动平台之间共享业务逻辑代码。您可以新建项目或将KMM模块轻松集成到现有项目。在这两种情况下,工作都可以按最低成本完成,您也可以随时返回完全原生开发。社区正在迅速发展,您可以参与其中塑造整个生态系统的进程。
现在是开始使用KMM!的大好时机!
要深入KMM获得最佳体验并讨论您计划探索的所有功能,欢迎加入Slack(通过这里获得邀请)并在StackOverflow上订阅“kotlin-multiplatform”标签。
虽然我们已经尽了最大努力,但目前仍然不能保证顺畅迁移。不过,我们会使用功能标志和提供新版本的迁移指南来尽量避免兼容性问题。
分享您的反馈这次发布只是旅程的开始,希望您能与我们一路同行。我们期待您的全面反馈,,无论好的还是坏的。您可以分享您与KotlinMultiplatformMobile的故事,为他人提供灵感,也请分享您对我们应该如何改进KMM的任何想法。
Let’sKotlin!
视频号推广:有手机就能操作
新平台推视频内部测试
条件如下: