开始使用 Kotlin Multiplatform Mobile (KMM)

2,034 阅读9分钟

在移动应用程序开发领域,对跨平台解决方案的需求正在迅速增长。开发人员正在寻求最大限度地提高代码重用率、提高生产力并跨多个平台交付高质量应用程序的方法。Kotlin Multiplatform Mobile (KMM) 作为一个强大的工具出现,它允许开发人员编写在 iOS 和 Android 平台上运行的共享代码,从而应对这些挑战。在本文中,我们将探讨如何开始使用 Kotlin Multiplatform Mobile 的基本步骤。

如果您不熟悉 Kotlin Multiplatform Mobile (KMM),我们建议您参考我们关于 Kotlin Multiplatform Mobile (KMM) 的文章。它提供了对 Kotlin Multiplatform Mobile (KMM) 及其优势的更多见解。

先决条件:

  • Kotlin基础知识
  • Android Studio基础知识
  • 终端使用基础知识

Kotlin Multiplatform Mobile (KMM) 入门

一般来说,从 Kotlin 多平台开始是一项相对简单的工作,特别是如果您之前有基于 Kotlin 的 Android 开发经验。您会发现自己使用相同的 IDE、编程语言 (Kotlin) 和 Gradle 进行依赖项管理。此外,您将能够像在原生 Android 项目中一样使用 Kotlin 流程。

要开始使用 Kotlin Multiplatform Mobile,请按照以下步骤操作:

第 1 步:设置开发环境

确保您安装了以下工具:

  • Android Studio (latest version)
  • Xcode (latest version)
  • JDK
  • Kotlin Multiplatform Plugin
  • Kotlin Plugin

对于 Java Development Kit (JDK) ,它通常与 Android Studio 一起自动安装。但是,要确认它的存在,您可以在 Android Studio 终端或命令行中执行以下命令:

java -version

运行此命令将为您提供有关系统上安装的 Java 版本的信息。通过验证 Java 版本,您可以确保您拥有 Android Studio 和 Kotlin Multiplatform Mobile 开发所需的 JDK。

对于 Kotlin Multiplatform Mobile Plugin ,您可以通过选择 设置/首选项 | 从 Android Studio 中安装它。Plugins,然后在 Marketplace 中搜索 Kotlin Multiplatform Mobile 并安装它。

对于 Kotlin Plugin,它已经与每个 Android Studio 版本捆绑在一起。

此外,需要注意的是,如果您的意图涉及编写 iOS 特定代码并在模拟器或物理设备上运行 iOS 应用程序,则必须拥有运行 MacOS 的 Mac,因为此功能是 Mac 平台独有的,无法在 Windows 等其他操作系统上完成。

第 2 步:创建您的第一个 Kotlin Multiplatform 项目

要创建 Kotlin Multiplatform Mobile 项目,您可以使用之前安装在 Android Studio 中的 KMM 插件。此插件使您能够利用 Kotlin 多平台移动应用程序模板来启动您的新项目。请按照以下步骤继续:

  1. 启动 Android Studio,确保安装并启用 KMM 插件。
  2. 选择启动新项目的选项(文件 | 新建 | 新项目) ,您将看到一个项目模板列表。
  3. 从可用选项中选择 Kotlin Multiplatform Mobile App 模板。
  4. 提供必要的项目详细信息,例如项目名称、包名称和项目位置。
  5. 选择您要定位的平台,例如 iOS 和 Android。
  6. 指定每个平台的配置设置,包括 SDK 版本和支持的最低版本。
  7. 选择要创建项目的目录,然后单击“完成”以启动项目创建过程。

按照这些步骤,您可以使用 Android Studio 中的 KMM 插件创建 Kotlin Multiplatform Mobile 项目。这将为您奠定必要的基础,以开始开发您的跨平台应用程序。

项目设置向导 (Android Studio)

第 3 步:检查项目结构

KMM 插件为您的 Kotlin Multiplatform Mobile (KMM) 项目生成一个基础模板。该模板具有独特的结构,在您继续编写代码时需要遵循该结构。

在 Android Studio 中,将视图从Android切换到Project,以便您可以看到项目的完整结构。以下是您的应用程序的主要组件:

  • androidApp:
    是一个构建到 Android 应用程序中的 Kotlin 模块。它使用 Gradle 作为构建系统。androidApp 模块依赖共享模块并将其用作常规 Android 库。
  • iosApp:
    是一个构建到 iOS 应用程序中的 Xcode 项目。它依赖并使用共享模块作为 iOS 框架。共享模块可以用作常规框架或CocoaPods 依赖项,具体取决于您在 iOS 框架分发的上一步中选择的内容。在本教程中,它是一个常规的框架依赖项。
  • shared:
    是一个 Kotlin 模块,包含 Android 和 iOS 应用程序通用的逻辑——您在平台之间共享的代码。它使用Gradle
    作为构建系统,帮助您自动化构建过程。共享模块构建到 Android 库和 iOS 框架中。

共享模块由三个源集组成:androidMaincommonMainiosMain。 这些源代码集可用于在共享模块中编写特定于平台的代码。

有关如何在共享模块中编写特定于平台的代码的更多见解,我们鼓励您参考我们关于 Kotlin Multiplatform Mobile (KMM) 中预期和实际机制的文章。
<<链接到 KMM 中的预期和实际>>

KMM项目结构

注意:源集是一个 Gradle 概念,用于逻辑上组合在一起的许多文件,其中每个组都有自己的依赖项。

第 4 步:定义共享代码

在项目中的共享 Kotlin 模块中,定义将跨平台使用的共享代码。这可以包括数据模型、业务逻辑、网络请求和实用程序功能。

在大多数情况下,建议将您的 UI 组件放在特定于平台的代码中。这种方法允许您利用适用于每个平台的最新 UI 技术,例如适用于 iOS 的 SwiftUI 和适用于 Android 的 Jetpack Compose。通过这样做,您可以充分利用特定于平台的 UI 功能。

但是,还有一种替代方法,您可以在 Android 和 iOS 平台之间实现 UI 组件的 100% 代码共享。JetBrains 开发了 Compose Multiplatform,它使您能够跨两个平台共享相同的 UI 代码。这使您可以利用单个 UI 代码库,同时仍然受益于 Kotlin Multiplatform Mobile 的优势。

因此,根据您的项目要求和偏好,您可以为每个平台使用特定于平台的 UI 技术,或者选择使用 Compose Multiplatform 进行 100% 的代码共享。

第 5 步:实施特定于平台的代码

在特定于平台的模块中,您可以实现特定于平台的代码,包括 UI 组件、平台 API 和其他特定于平台的功能。确保特定于平台的代码与共享代码交互以实现所需的功能。

第 6 步:运行您的应用程序

要从 Android Studio 中同时运行您的应用程序的 Android 和 iOS 版本,请执行以下步骤:

  1. 在运行配置中选择所需的应用程序。
  2. 单击“运行”按钮开始执行。

重要的是要确保您有一个配置为运行您的应用程序的活动模拟器。但是,请注意,iOS 版本的应用程序只能在 Mac 上运行,因为 iOS 模拟器在其他操作系统上不可用。

第 7 步:测试和部署

KMM 提供用于跨平台测试共享代码的工具。您可以编写涵盖通用功能的共享测试,以及专注于特定于平台的行为的特定于平台的测试。一旦您的代码经过测试并准备就绪,您就可以构建您的应用程序并将其部署到 iOS 和 Android 平台。

有关如何在 KMM 项目中为特定平台和共享模块编写测试用例的更多见解,我们鼓励您参考我们关于在 Kotlin Multiplatform Mobile (KMM) 中进行测试的文章。
<<KMM 测试链接>>

Kotlin 多平台移动设备的最佳实践

  1. 保持共享代码与平台无关: 避免在共享模块中包含特定于平台的代码或依赖项。这确保了最大程度的代码重用,并使共享代码专注于业务逻辑和数据处理。
  2. 拥抱广泛的代码共享: 通过在可行的情况下最大化共享代码的数量,充分利用 KMM 的代码共享概念。通过这样做,您可以显着减少开发时间并确保跨多个平台的一致性。
  3. 为每个平台维护单独的 UI 组件: 通过为每个平台使用单独的 UI 组件来增强用户体验。这种方法可确保每个平台上的用户都拥有类似本机的体验,同时允许您利用适用于每个特定平台的最新 UI 技术。
  4. 必要时利用特定于平台的代码: 虽然目标是最大限度地重用代码,但在某些情况下需要特定于平台的功能。KMM 允许您利用特定于平台的代码和 API,同时仍然维护共享代码库。
  5. 遵循平台指南: 在实施特定于平台的代码时采用相应的平台指南和最佳实践。

结论

Kotlin Multiplatform Mobile (KMM) 为高效构建跨平台应用程序开辟了新的可能性。通过设置您的开发环境、创建 KMM 项目、利用共享代码和特定于平台的代码、严格测试并获得社区支持,您可以自信地踏上 KMM 之旅。拥抱代码重用的力量,使用 Kotlin Multiplatform Mobile 开发令人惊叹的跨平台应用程序。编码愉快!

关注公众号:Android老皮
解锁  《Android十大板块文档》 ,让学习更贴近未来实战。已形成PDF版

内容如下

1.Android车载应用开发系统学习指南(附项目实战)
2.Android Framework学习指南,助力成为系统级开发高手
3.2023最新Android中高级面试题汇总+解析,告别零offer
4.企业级Android音视频开发学习路线+项目实战(附源码)
5.Android Jetpack从入门到精通,构建高质量UI界面
6.Flutter技术解析与实战,跨平台首要之选
7.Kotlin从入门到实战,全方面提升架构基础
8.高级Android插件化与组件化(含实战教程和源码)
9.Android 性能优化实战+360°全方面性能调优
10.Android零基础入门到精通,高手进阶之路

敲代码不易,关注一下吧。ღ( ´・ᴗ・` ) 🤔