Kotlin Multiplatform 範例
這是一個精選專案清單,旨在展示 Kotlin Multiplatform 強大且獨特的應用。
我們目前不接受對此頁面的貢獻。 若要將您的專案作為 Kotlin Multiplatform 範例展示,請在 GitHub 上使用 kotlin-multiplatform-sample 主題。 請參閱 GitHub 文件 以了解如何在主題中展示您的專案。
一些專案使用 Compose Multiplatform 作為使用者介面,共用了幾乎所有的程式碼。 其他專案則在使用者介面使用原生程式碼,僅共用例如資料模型和演算法等部分。 若要建立您自己的全新 Kotlin Multiplatform 應用程式,我們建議使用 web 精靈。
您可以在 GitHub 上透過 kotlin-multiplatform-sample 主題找到更多範例專案。 若要探索整個生態系統,請查看 kotlin-multiplatform 主題。
JetBrains 官方範例
| 名稱 | 描述 | 共用內容 | 值得關注的程式庫 | 使用者介面 |
| 官方 KotlinConf 應用程式 | KotlinConf 的伴隨應用程式。 其 Android、iOS、桌面與 Web 的用戶端應用程式是使用 Compose Multiplatform 以共用 UI 方式建置。 後端應用程式則由 Ktor 伺服器端架構 與 Exposed 資料庫程式庫支援。 |
|
|
|
| Image Viewer | 一個用於拍攝、檢視與儲存圖片的應用程式。包含地圖支援。UI 使用 Compose Multiplatform。於 KotlinConf 2023 推出。 |
|
|
|
| Chat | 展示如何在 SwiftUI 介面中內嵌 Compose Multiplatform 元件。使用案例為線上通訊。 |
|
| |
| Jetcaster Multiplatform | 將 Compose 範例應用程式 Jetcaster 改為多平台版本,在原始的 Android 版本中加入了 iOS 與桌面目標。 UI 已遷移至 Compose Multiplatform,且多個程式庫已被多平台版本或替代方案取代。 遷移的考量與過程已在 Jetcaster 遷移教學中說明。 |
|
|
|
| KMM RSS Reader | 一個用於讀取 RSS 來源的範例應用程式,旨在展示 Kotlin Multiplatform 如何應用於生產環境。UI 以原生方式實作,但有一個實驗性分支展示了如何在 iOS 與桌面上使用 Compose Multiplatform。網路功能透過 Ktor HTTP 用戶端實現,而 XML 剖析則以原生方式實作。UI 狀態 (UI State) 的共用採用了 Redux 架構。 |
|
|
|
| Kotlin Multiplatform Sample | 一個簡單的計算機應用程式。展示如何使用 expected 與 actual 宣告將 Kotlin 與原生程式碼整合。 | 演算法 |
|
推薦範例
| 名稱 | 描述 | 共用內容 | 值得關注的程式庫 | 使用者介面 |
| Confetti | 展示 Kotlin Multiplatform 與 Compose Multiplatform 許多不同面向的作品。使用案例為一個用於獲取並顯示研討會日程資訊的應用程式。包含對 Wear 與 Auto 平台的支援。使用 GraphQL 進行用戶端-伺服器通訊。其架構在 KotlinConf 2023 中有深入探討。 |
|
|
|
| People In Space | 展示 Kotlin Multiplatform 可以執行的多種不同平台。使用案例為顯示目前在太空中的人數以及國際太空站的位置。 |
|
|
|
| Sessionize / Droidcon | 一個使用 Sessionize API 查看 Droidcon 活動議程的應用程式。可以針對任何在 Sessionize 中儲存演講資訊的活動進行自訂。與 Firebase 整合,因此執行時需要 Firebase 帳戶。 |
|
|
|
| KaMPKit | 一組用於 Kotlin Multiplatform 開發的程式碼與工具。旨在展示建置 Kotlin Multiplatform 應用程式時的程式庫、架構選擇與最佳實務。使用案例為下載並顯示狗品種的資訊。已在此 影片教學中介紹。 |
|
|
|
其他社群範例
| 名稱 | 描述 | 共用內容 | 值得關注的程式庫 | 使用者介面 |
| NYTimes KMP | 一個基於 Compose Multiplatform 的紐約時報 (New York Times) 應用程式版本。允許使用者瀏覽與閱讀文章。請注意,若要建置並執行此應用程式,您需要一個 紐約時報的 API 金鑰。 |
|
|
|
| Focus Bloom | 一個生產力與時間管理應用程式。允許使用者排定任務並提供其成就的回饋。 |
|
|
|
| Recipe App | 一個用於檢視食譜的展示應用程式。展示了動畫的使用。 |
|
|
|
| D-KMP-sample | 一個展示 宣告式 UI 與 Kotlin MultiPlatform 架構 的範例應用程式。使用案例為檢索並顯示不同國家的疫苗接種統計數據。 |
|
|
|
| Notflix | 一個從 The Movie Database 獲取資料以顯示目前趨勢、即將上映以及熱門電影與電視節目的應用程式。需要您在 The Movie Database 建立 API 金鑰。 |
|
|
|
| Twine - RSS Reader | Twine 是一個使用 Kotlin 與 Compose Multiplatform 建置的多平台 RSS 閱讀器應用程式。它具有優美的使用者介面與體驗來瀏覽訂閱源,並支援 Material 3 基於內容的動態佈景主題。 |
|
|
|
| Shopping By KMP | 一個使用 Jetpack Compose Multiplatform 建置的跨平台應用程式,這是一個透過 Kotlin 在多個平台間共用 UI 的宣告式架構。該應用程式允許使用者在 Android、iOS、Web、桌面、Android Automotive 與 Android TV 上瀏覽、搜尋與購買購物目錄中的產品。 |
|
|
|
| Music App KMP | 一個展示如何在不同平台上與原生 API(如 MediaPlayer)互動的應用程式。它使用 Spotify API 來獲取資料。 |
|
|
|
| Rijksmuseum | Rijksmuseum 是一個多模組化 (multimodular) 的 Kotlin 與 Compose Multiplatform 應用程式,提供了一種沈浸式的方式來探索阿姆斯特丹著名的荷蘭國立博物館 (Rijksmuseum) 的藝術收藏。它利用 Rijksmuseum API 來獲取並顯示各種藝術作品的詳細資訊,包括圖片與描述。 |
|
|
|
