Skip to content

Kotlin 多平台範例

這是一份精選的專案列表,旨在展示 Kotlin 多平台的強大與獨特應用。

我們目前不接受對此頁面的貢獻。 若要將您的專案標記為 Kotlin 多平台範例,請在 GitHub 上使用 kotlin-multiplatform-sample 主題。 請參閱 GitHub 文件,了解如何在主題中展示您的專案。

有些專案使用 Compose Multiplatform 共享幾乎所有用於使用者介面的程式碼。 其他專案則使用原生程式碼來處理使用者介面,並僅共享例如資料模型和演算法。 若要建立您全新的 Kotlin 多平台應用程式,我們建議使用 網路精靈

您可以在 GitHub 上透過 kotlin-multiplatform-sample 主題找到更多範例專案。 若要探索整個生態系統,請查看 kotlin-multiplatform 主題。

JetBrains 官方範例

名稱說明共享內容值得注意的函式庫使用者介面
Image Viewer一個用於擷取、檢視和儲存圖片的應用程式。支援地圖功能。UI 使用 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、桌面和網頁上的 Compose Multiplatform
Chat一個展示如何在 SwiftUI 介面中嵌入 Compose Multiplatform 元件的範例。使用案例為線上訊息傳遞。
  • 使用者介面 (UI)
  • 模型
  • 網路
  • Android 上的 Jetpack Compose
  • iOS、桌面和網頁上的 Compose Multiplatform
  • iOS 上的 SwiftUI
KMM RSS Reader一個用於消費 RSS 訂閱的範例應用程式,旨在展示 Kotlin 多平台如何在生產環境中使用。使用者介面 (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 多平台和 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、桌面和網頁上的 Compose Multiplatform
People In Space一個展示 Kotlin 多平台可以在許多不同平台上運行的專案。使用案例為顯示目前在太空中的人數以及國際太空站的位置。
  • 模型
  • 網路
  • 資料儲存
  • kotlinx-serialization
  • kotlinx-coroutines
  • kotlinx-datetime
  • ktor-client
  • koin
  • multiplatform-settings
  • SQLDelight
  • Android 和 Wear OS 上的 Jetpack Compose
  • iOS、桌面和網頁上的 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 多平台開發的程式碼和工具集合。旨在展示建構 Kotlin 多平台應用程式時的函式庫、架構選擇和最佳實踐。使用案例為下載和顯示狗品種資訊。在該 影片教學 中首次推出。
  • 模型
  • 網路
  • ViewModel
  • 資料儲存
  • ktor-client
  • koin
  • multiplatform-settings
  • kermit
  • SQLDelight
  • Android 上的 Jetpack Compose
  • iOS 上的 SwiftUI

其他社群範例

名稱說明共享內容值得注意的函式庫使用者介面
NYTimes KMP一個基於 Compose Multiplatform 的 New York Times 應用程式版本。允許使用者瀏覽和閱讀文章。請注意,要建置和運行應用程式,您需要 來自 The New York Times 的 API 密鑰
  • 使用者介面 (UI)
  • 模型
  • 網路
  • kotlinx-serialization
  • kotlinx-datetime
  • kotlinx-coroutines
  • ktor-client
  • molecule
  • decompose
  • horologist
  • Android 和 Wear 上的 Jetpack Compose
  • iOS、桌面和網頁上的 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、桌面和網頁上的 Compose Multiplatform
D-KMP-sample一個用於 具備 Kotlin 多平台的宣告式 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 是一個用於在多個平台之間共享 UI 的宣告式框架,支援 Kotlin。該應用程式允許使用者在 Android、iOS、網頁、桌面、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、網頁、桌面、Automotive 和 Android TV 上的 Compose Multiplatform
Music App KMP一個應用程式,展示了如何在不同平台上與 MediaPlayer 等原生 API 互動。它使用 Spotify API 獲取數據。
  • 模型
  • 網路
  • 使用者介面 (UI)
  • kotlinx-coroutines
  • kotlinx-serialization
  • ktor-client
  • decompose
  • Android、iOS、桌面和網頁上的 Compose Multiplatform
RijksmuseumRijksmuseum 是一個多模組的 Kotlin 和 Compose Multiplatform 應用程式,它提供了一種沉浸式的方式來探索阿姆斯特丹著名國家博物館的藝術收藏。它利用 Rijksmuseum API 來擷取和顯示有關各種藝術品的詳細資訊,包括圖片和描述。
  • 使用者介面 (UI)
  • 模型
  • 網路
  • 導航
  • ViewModel
  • kotlinx-coroutines
  • kotlinx-serialization
  • ktor-client
  • koin
  • navigation-compose
  • Coil
  • Jetpack ViewModel
  • Android、iOS、桌面和網頁上的 Compose Multiplatform