Skip to content

Kotlin Multiplatform 示例

这是一个精选项目列表,旨在展示 Kotlin Multiplatform 强大且独特的应用。

我们当前不接受对本页面的贡献。 要将您的项目作为 Kotlin Multiplatform 的示例展示,请在 GitHub 上使用 kotlin-multiplatform-sample 主题。 关于如何在主题中展示您的项目,请参阅 GitHub 文档

有些项目使用 Compose Multiplatform 共享几乎所有用户界面代码。 其他项目则为用户界面使用原生代码,并仅共享例如数据模型和算法。 要创建您自己的全新 Kotlin Multiplatform 应用程序,我们推荐使用 Web 向导

您可以通过 kotlin-multiplatform-sample 主题在 GitHub 上找到更多示例项目。 要全面探索整个生态系统,请查看 kotlin-multiplatform 主题。

JetBrains 官方示例

名称描述共享内容?值得注意的库用户界面
Image Viewer一个用于拍摄、查看和存储图片的应用程序。包含地图支持。用户界面使用 Compose Multiplatform。于 KotlinConf 2023 推出。
  • UI
  • 模型
  • 网络
  • 动画
  • 数据存储
  • kotlinx-serialization
  • kotlinx-datetime
  • kotlinx-coroutines
  • play-services-maps
  • play-services-locations
  • android-maps-compose
  • accompanist-permissions
  • Android 上的 Jetpack Compose
  • iOS、桌面和 Web 上的 Compose Multiplatform
Chat演示如何在 SwiftUI 界面中嵌入 Compose Multiplatform 组件。用例是在线消息。
  • UI
  • 模型
  • 网络
  • Android 上的 Jetpack Compose
  • iOS、桌面和 Web 上的 Compose Multiplatform
  • iOS 上的 SwiftUI
KMM RSS Reader一个用于消费 RSS 订阅的示例应用程序,旨在展示 Kotlin Multiplatform 如何在生产环境中使用。UI 采用原生实现,但有一个实验性分支展示了 Compose Multiplatform 如何在 iOS 和桌面使用。网络通信通过 Ktor HTTP Client 实现,而 XML 解析采用原生实现。使用 Redux 架构共享 UI 状态。
  • 模型
  • 网络
  • UI 状态
  • 数据存储
  • kotlinx-serialization
  • kotlinx-coroutines
  • ktor-client
  • voyager
  • coil
  • multiplatform-settings
  • napier
  • SQLDelight
  • Android 上的 Jetpack Compose
  • iOS 和桌面上的 Compose Multiplatform(在实验性分支上)
  • iOS 上的 SwiftUI
Kotlin Multiplatform Sample一个简单的计算器应用程序。展示了如何使用 `expected` 和 `actual` 声明集成 Kotlin 和原生代码。

算法

  • Android 上的 Jetpack Compose
  • SwiftUI

推荐示例

名称描述共享内容?值得注意的库用户界面
Confetti展示了 Kotlin Multiplatform 和 Compose Multiplatform 的多个不同方面。用例是用于获取和显示会议日程信息的应用程序。包含对 Wear 和 Auto 平台的支持。使用 GraphQL 进行客户端-服务器通信。架构在 KotlinConf 2023 进行了深入讨论。
  • UI
  • 模型
  • 网络
  • 数据存储
  • 导航
  • kotlinx-serialization
  • kotlinx-datetime
  • kotlinx-coroutines
  • decompose
  • koin
  • jsonpathkt-kotlinx
  • horologist
  • google-cloud
  • firebase
  • bare-graphql
  • apollo
  • accompanist
  • Android、Auto 和 Wear 上的 Jetpack Compose
  • iOS、桌面和 Web 上的 Compose Multiplatform
People In Space展示了 Kotlin Multiplatform 可运行的多个不同平台。用例是显示当前在太空中的人数和国际空间站的位置。
  • 模型
  • 网络
  • 数据存储
  • kotlinx-serialization
  • kotlinx-coroutines
  • kotlinx-datetime
  • ktor-client
  • koin
  • multiplatform-settings
  • SQLDelight
  • Android 和 Wear OS 上的 Jetpack Compose
  • iOS、桌面和 Web 上的 Compose Multiplatform
  • iOS 和 macOS 上的 SwiftUI
Sessionize / Droidcon一个用于使用 Sessionize API 查看 Droidcon 活动议程的应用程序。可定制用于任何在 Sessionize 中存储演讲的活动。与 Firebase 集成,因此运行需要 Firebase 帐户。
  • UI
  • 模型
  • 网络
  • 数据存储
  • kotlinx-coroutines
  • kotlinx-datetime
  • ktor-client
  • koin
  • multiplatform-settings
  • firebase
  • kermit
  • accompanist
  • hyperdrive-multiplatformx
  • SQLDelight
  • Android 上的 Jetpack Compose
  • iOS 上的 Compose Multiplatform
KaMPKit一个用于 Kotlin Multiplatform 开发的代码和工具集合。旨在展示构建 Kotlin Multiplatform 应用程序时的库、架构选择和最佳实践。用例是下载和显示狗的品种信息。在此视频教程中介绍。
  • 模型
  • 网络
  • ViewModel
  • 数据存储
  • ktor-client
  • koin
  • multiplatform-settings
  • kermit
  • SQLDelight
  • Android 上的 Jetpack Compose
  • iOS 上的 SwiftUI

其他社区示例

名称描述共享内容?值得注意的库用户界面
NYTimes KMP一个基于 Compose Multiplatform 的《纽约时报》应用程序版本。允许用户浏览和阅读文章。请注意,要构建和运行此应用程序,您需要一个来自 《纽约时报》的 API 密钥
  • UI
  • 模型
  • 网络
  • kotlinx-serialization
  • kotlinx-datetime
  • kotlinx-coroutines
  • ktor-client
  • molecule
  • decompose
  • horologist
  • Android 和 Wear 上的 Jetpack Compose
  • iOS、桌面和 Web 上的 Compose Multiplatform
Focus Bloom一个生产力与时间管理应用程序。允许用户安排任务并提供关于他们成就的反馈。
  • UI
  • 模型
  • 动画
  • 数据存储
  • kotlinx.serialization
  • kotlinx.coroutines
  • kotlinx.datetime
  • koin
  • navigation-compose
  • multiplatform-settings
  • SQLDelight
  • Android、iOS 和桌面上的 Compose Multiplatform
Recipe App一个用于查看食谱的演示应用程序。展示了动画的使用。
  • UI
  • 模型
  • 数据存储

kotlinx-coroutines

  • Android 上的 Jetpack Compose
  • iOS、桌面和 Web 上的 Compose Multiplatform
D-KMP-sample一个关于 使用 Kotlin MultiPlatform 的声明式 UI 架构的示例应用程序。用例是检索和显示不同国家/地区的疫苗接种统计数据。
  • 网络
  • 数据存储
  • ViewModel
  • 导航
  • ktor-client
  • multiplatform-settings
  • SQLDelight
  • Android 上的 Jetpack Compose
  • iOS 上的 SwiftUI
Notflix一个从 The Movie Database 消费数据以显示当前热门、即将上映和流行的电影与电视节目的应用程序。要求您在 The Movie Database 创建一个 API 密钥。
  • 模型
  • 网络
  • 缓存
  • ViewModel
  • kotlinx-coroutines
  • kotlinx-serialization
  • kotlinx-datetime
  • ktor-client
  • multiplatform-settings
  • napier
  • Android 上的 Jetpack Compose
  • iOS 上的 SwiftUI
Twine - RSS ReaderTwine 是一个使用 Kotlin 和 Compose Multiplatform 构建的多平台 RSS 阅读器应用。它具有出色的用户界面和体验,可用于浏览订阅源,并支持 Material 3 基于内容的动态主题。
  • 模型
  • 网络
  • 数据存储
  • UI
  • kotlinx-coroutines
  • kotlinx-serialization
  • kotlinx-datetime
  • ktor-client
  • napier
  • decompose
  • Android 和 iOS 上的 Compose Multiplatform
Shopping By KMP一个使用 Jetpack Compose Multiplatform 构建的跨平台应用程序,Jetpack Compose Multiplatform 是一个用于使用 Kotlin 在多个平台间共享 UI 的声明式框架。该应用程序允许用户在 Android、iOS、Web、桌面、Android Automotive 和 Android TV 上浏览、搜索和购买购物目录中的产品。
  • 模型
  • 网络
  • 数据存储
  • UI
  • ViewModel
  • 动画
  • 导航
  • UI 状态
  • 用例
  • 单元测试
  • UI 测试
  • kotlinx-coroutines
  • kotlinx-serialization
  • kotlinx-datetime
  • ktor-client
  • datastore
  • koin
  • google-map
  • navigation-compose
  • coil
  • kotest
  • Android、iOS、Web、桌面、automotive 和 Android TV 上的 Compose Multiplatform
Music App KMP一个展示了如何在不同平台上与 `MediaPlayer` 等原生 API 交互的应用程序。它使用 Spotify API 获取数据。
  • 模型
  • 网络
  • UI
  • kotlinx-coroutines
  • kotlinx-serialization
  • ktor-client
  • decompose
  • Android、iOS、桌面和 Web 上的 Compose Multiplatform
RijksmuseumRijksmuseum 是一个多模块的 Kotlin 和 Compose Multiplatform 应用,提供了一种沉浸式方式来探索阿姆斯特丹著名的 `Rijksmuseum` 的艺术收藏。它利用 `Rijksmuseum` API 获取和显示各种艺术品的详细信息,包括图片和描述。
  • UI
  • 模型
  • 网络
  • 导航
  • ViewModel
  • kotlinx-coroutines
  • kotlinx-serialization
  • ktor-client
  • koin
  • navigation-compose
  • Coil
  • Jetpack ViewModel
  • Android、iOS、桌面和 Web 上的 Compose Multiplatform