Skip to content

Kotlin Multiplatform のサンプル

Kotlin Multiplatform の堅牢かつユニークな活用方法を示すことを目的とした、厳選されたプロジェクトのリストです。

現在、このページへの貢献は受け付けておりません。 ご自身のプロジェクトを Kotlin Multiplatform のサンプルとして紹介したい場合は、GitHub で kotlin-multiplatform-sample トピックを使用してください。 プロジェクトをトピックで紹介する方法については、GitHub ドキュメントを参照してください。

一部のプロジェクトでは、ユーザーインターフェースに Compose Multiplatform を使用して、ほとんどのコードを共有しています。 その他では、ユーザーインターフェースにネイティブコードを使用し、例えばデータモデルとアルゴリズムのみを共有しています。 新しい Kotlin Multiplatform アプリケーションを作成するには、ウェブウィザードを使用することをお勧めします。

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
ChatCompose Multiplatform コンポーネントを SwiftUI インターフェース内に埋め込む方法を示すデモンストレーションです。ユースケースはオンラインメッセージングです。
  • UI
  • モデル
  • ネットワーキング
  • Android 上の Jetpack Compose
  • iOS、デスクトップ、ウェブ上の Compose Multiplatform
  • iOS 上の SwiftUI
KMM RSS ReaderKotlin Multiplatform をプロダクションでどのように使用できるかを示すために設計された、RSS フィードを消費するサンプルアプリケーションです。UI はネイティブで実装されていますが、Compose Multiplatform を iOS およびデスクトップで使用できる実験的なブランチがあります。ネットワーキングは Ktor HTTP クライアントを使用して行われ、XML パースはネイティブで実装されています。UI ステートの共有には Redux アーキテクチャが使用されています。
  • モデル
  • ネットワーキング
  • 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

推奨サンプル

名前説明共有されているもの主なライブラリユーザーインターフェース
ConfettiKotlin 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、デスクトップ、ウェブ上の Compose Multiplatform
People In SpaceKotlin Multiplatform が実行できる多くの異なるプラットフォームのショーケースです。ユースケースは、現在宇宙にいる人数と国際宇宙ステーションの位置を表示することです。
  • モデル
  • ネットワーキング
  • データストレージ
  • kotlinx-serialization
  • kotlinx-coroutines
  • kotlinx-datetime
  • ktor-client
  • koin
  • multiplatform-settings
  • SQLDelight
  • Android および Wear OS 上の Jetpack Compose
  • iOS、デスクトップ、ウェブ上の Compose Multiplatform
  • iOS および macOS 上の SwiftUI
Sessionize / DroidconSessionize 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
KaMPKitKotlin Multiplatform 開発のためのコードとツールのコレクションです。Kotlin Multiplatform アプリケーションを構築する際のライブラリ、アーキテクチャの選択、ベストプラクティスを紹介するために設計されています。ユースケースは、犬の品種に関する情報をダウンロードして表示することです。このビデオチュートリアルで紹介されました。
  • モデル
  • ネットワーキング
  • ViewModel
  • データストレージ
  • ktor-client
  • koin
  • multiplatform-settings
  • kermit
  • SQLDelight
  • Android 上の Jetpack Compose
  • iOS 上の SwiftUI

その他のコミュニティサンプル

名前説明共有されているもの主なライブラリユーザーインターフェース
NYTimes KMPNew York Times アプリケーションの Compose Multiplatform ベースのバージョンです。ユーザーが記事を閲覧・購読できます。アプリケーションをビルドして実行するには、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-sampleDeclarative UIs with Kotlin MultiPlatform architecture のサンプルアプリケーションです。ユースケースは、異なる国のワクチン接種統計を取得・表示することです。
  • ネットワーキング
  • データストレージ
  • ViewModel
  • ナビゲーション
  • ktor-client
  • multiplatform-settings
  • SQLDelight
  • Android 上の Jetpack Compose
  • iOS 上の SwiftUI
NotflixThe 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 KMPKotlin を使用して複数のプラットフォーム間で UI を共有するための宣言型フレームワークである Jetpack Compose Multiplatform を使用して構築されたクロスプラットフォームアプリケーションです。このアプリケーションにより、ユーザーは 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 KMPMediaPlayer のようなネイティブ 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