Kotlin

Kotlin Multiplatform Mobile 现已推出 Alpha 版本

Read this post in other languages:

Kotlin Multiplatform Mobile (KMM) 是一个 SDK,允许您在 iOS 和 Android 应用程序中使用相同的业务逻辑代码。 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,您可以获得这种灵活性,并保留原生编程的优势。 将单个代码库用于 iOS 和 Android 应用的业务逻辑,只在实施原生 UI 有必要时或使用平台特定 API 时编写平台特定代码。

file

KMM 与您的移动项目无缝集成。 Kotlin 编写的共享代码通过 Kotlin/JVM 编译为 JVM 字节码,经 Kotlin/Native 编译为原生二进制文件,因此您可以像使用其他常规移动库一样使用 KMM 业务逻辑模块。

在移动平台之间共享 Kotlin 代码已经为许多公司节省了大量的时间和精力。 这里有一些启发性案例:

  • Quizlet 将业务逻辑从共享 JavaScript 方法迁移到 KMM,大幅提高了其 Android 和 iOS 应用程序的性能。
  • Fastwork 为其应用程序的域和数据层引入 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 之旅:共享 Kotlin 代码可以轻松集成到您的现有代码,和其他常规依赖关系完全一样。 新的 Kotlin Multiplatform Mobile Module 向导将帮助您在项目中添加新的 KMM 模块,让您可以使用已经在 Kotlin 中编写的代码,并将其重构为与 iOS 兼容。

查看这篇 将 KMM 集成到现有项目的指南,了解如何设计多平台项目架构并对其组织迁移。

一个 IDE,两个平台

您不再需要切换 IDE 并运行 Xcode 来检查代码是否在两个移动平台都能正常工作。 使用新插件,您可以直接在 Android Studio 中整合 iOS 设备和模拟器。 这将提供以下功能:

  • 使用预定义运行配置,在模拟器或设备上运行和调试 iOS 应用程序。
  • 在 iOS 模拟器上运行和调试常见测试和 iOS 特定测试,只需点击测试类或方法上的间距图标。

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

无缝集成 iOS 生态

如前所述,KMM 与您的移动项目无缝集成。 对于 Android,您可以在项目的每一个部分使用 Kotlin。 同时,基于 Kotlin/Native 与 Objective-C/Swift 的互操作性, 与 CocoaPods 依赖管理器的集成, 以及按照期望/实际模式 可使用平台特定 API ,KMM 提供了与 iOS 开发流程的紧密集成。

通过 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 库或本地 Pod 库的依赖项,还可以将具有原生目标的多平台项目用作 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 的经验故事以及创建惊人的多平台库!

我们还要感谢帮助我们为新的开发者门户创建内容的团队: Touchlab, IceRock, 和 Kodein Koders。 您的工作将帮助成千上万的开发者深入了解 Kotlin Multiplatform Mobile 并充分利用其全部功能。

干得漂亮,朋友们!

立刻试试吧

介绍过这些酷炫功能,我们荣幸宣布 KMM 现已进入 Alpha 阶段。 这意味着 Kotlin 团队将全力改进这项技术并助力技术发展。 这也是产品将快速开发的信号。 我们会倾听您的反馈,并尽快提供修复和改进。 请通过我们的 跟踪器报告您发现的任何问题,帮助我们提高 KMM 的稳定性。

Alpha 版本意味着一切都已准备就绪,您可以开始使用 KMM 在移动平台之间共享业务逻辑代码。 您可以新建项目或将 KMM 模块轻松集成到现有项目。 在这两种情况下,工作都可以按最低成本完成,您也可以随时返回完全原生开发。 社区正在迅速发展,您可以参与其中塑造整个生态系统的进程。

现在是开始使用KMM! 的大好时机!

要深入 KMM 获得最佳体验并讨论您计划探索的所有功能,欢迎加入Slack (通过这里获得邀请) 并在Stack Overflow上订阅 “kotlin-multiplatform” 标签。

虽然我们已经尽了最大努力,但目前仍然不能保证顺畅迁移。 不过,我们会使用功能标志和提供新版本的迁移指南来尽量避免兼容性问题。

分享您的反馈

这次发布只是旅程的开始,希望您能与我们一路同行。我们期待 您的全面反馈, ,无论好的还是坏的。 您可以分享您与 Kotlin Multiplatform Mobile 的故事,为他人提供灵感,也请分享您对我们应该如何改进 KMM 的任何想法。

Let’s Kotlin!

image description

Discover more