Skip to content

Kotlin Multiplatform サンプル

これは、Kotlin Multiplatform の堅牢でユニークなアプリケーションを紹介することを目的とした、厳選されたプロジェクトのリストです。

現在、このページへの直接の貢献(コントリビューション)は受け付けておりません。 あなたのプロジェクトを Kotlin Multiplatform のサンプルとして掲載するには、GitHub で kotlin-multiplatform-sample トピックを使用してください。 トピックを使用してプロジェクトを掲載する方法については、GitHub ドキュメントを参照してください。

プロジェクトの中には、ユーザーインターフェースに Compose Multiplatform を使用して、ほぼすべてのコードを共有しているものもあれば、ユーザーインターフェースにはネイティブコードを使用し、データモデルやアルゴリズムのみを共有しているものもあります。独自の新しい Kotlin Multiplatform アプリケーションを作成するには、ウェブウィザード(Web wizard)の使用をお勧めします。

GitHub の kotlin-multiplatform-sample トピックを通じて、さらに多くのサンプルプロジェクトを見つけることができます。エコシステム全体を探索するには、kotlin-multiplatform トピックを確認してください。

JetBrains 公式サンプル

名前説明共有されているもの注目のライブラリユーザーインターフェース
公式 KotlinConf アプリケーションKotlinConf のコンパニオンアプリケーションです。 Android、iOS、デスクトップ、および Web 用のクライアントアプリケーションは、Compose Multiplatform を使用した共有 UI で構築されています。 バックエンドアプリケーションは、Ktor サーバーサイドフレームワークと Exposed データベースライブラリを採用しています。
  • UI
  • モデル
  • ネットワーク
  • データストレージ
  • kotlinx-serialization
  • kotlinx-datetime
  • kotlinx-coroutines
  • ktor-client
  • ktor-server
  • multiplatform-settings
  • Android: Jetpack Compose
  • iOS、デスクトップ、Web: Compose Multiplatform
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、デスクトップ、Web: Compose Multiplatform
ChatSwiftUI インフェース内に Compose Multiplatform コンポーネントを埋め込む方法のデモンストレーションです。ユースケースはオンラインメッセージングです。
  • UI
  • モデル
  • ネットワーク
  • Android: Jetpack Compose
  • iOS、デスクトップ、Web: Compose Multiplatform
  • iOS: SwiftUI
Jetcaster MultiplatformCompose サンプルの Jetcaster アプリをマルチプラットフォーム化したもので、オリジナルの Android 版に iOS とデスクトップのターゲットが追加されています。 UI は Compose Multiplatform を使用するように移行され、いくつかのライブラリはマルチプラットフォーム版または代替品に置き換えられています。 移行の理由とプロセスについては、Jetcaster 移行チュートリアルで詳しく説明されています。
  • モデル
  • ネットワーク
  • UI
  • データストレージ
  • coil
  • koin
  • kotlinx-coroutines
  • kotlinx-datetime
  • kotlin-test
  • ktor-client
  • Room
  • Android、iOS、デスクトップ: Compose Multiplatform
KMM RSS ReaderKotlin Multiplatform を本番環境でどのように使用できるかを示すために設計された、RSS フィード購読用のサンプルアプリケーションです。UI はネイティブで実装されていますが、iOS とデスクトップで Compose Multiplatform をどのように使用できるかを示す実験的なブランチもあります。ネットワークには Ktor HTTP Client を使用し、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
  • iOS: 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、デスクトップ、Web: Compose Multiplatform
People In SpaceKotlin Multiplatform が動作できる多くの異なるプラットフォームのショーケースです。ユースケースは、現在宇宙にいる人数と国際宇宙ステーション(ISS)の位置を表示することです。
  • モデル
  • ネットワーク
  • データストレージ
  • 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 / 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 KMPニューヨーク・タイムズ(New York Times)アプリケーションの 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
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 KMPJetpack 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 は、アムステルダムの有名なアムステルダム国立美術館(Rijksmuseum)の美術コレクションを探索するための、没入感のあるマルチモジュール化された Kotlin および Compose Multiplatform アプリです。Rijksmuseum API を利用して、画像や説明を含む様々な美術品に関する詳細情報を取得し、表示します。
  • UI
  • モデル
  • ネットワーク
  • ナビゲーション
  • ViewModel
  • kotlinx-coroutines
  • kotlinx-serialization
  • ktor-client
  • koin
  • navigation-compose
  • Coil
  • Jetpack ViewModel
  • Android、iOS、デスクトップ、Web: Compose Multiplatform