Compose Concepts — Compose マルチプラットフォーム サンプル集
概要
このリポジトリは「Compose に関するランダムなコードスニペット」を集めた Kotlin Multiplatform のサンプル集です。composeApp モジュールに共通コード(commonMain)を配置し、Android、iOS、Desktop(JVM)をターゲットにした UI コンポーネントやプレビューを含みます。README にはプレビューGIF(例: Globe)が含まれ、共通UIを各プラットフォームへ流用するためのソースセット構成が示されています。小規模ながらマルチプラットフォームでの Compose の使い方を把握する入り口として有用です。
リポジトリの統計情報
- スター数: 2
- フォーク数: 0
- ウォッチャー数: 2
- コミット数: 3
- ファイル数: 11
- メインの言語: Kotlin
主な特徴
- Kotlin Multiplatform 構成(Android / iOS / Desktop を想定)
- 共通 UI を composeApp/src/commonMain に配置して共有
- Compose のプレビューやデモ GIF を含む小さなサンプル群
- Gradle Kotlin DSL(build.gradle.kts)を用いたビルド設定
技術的なポイント
このプロジェクトの中心は「Compose を使ったマルチプラットフォーム共通 UI の配置」と「それを各プラットフォームで動かすためのソースセット分離」です。composeApp/src 以下に commonMain を置くことで、Compose のUIコンポーネント(Composable関数)やロジックをプラットフォームに依存しない形で実装できます。Kotlin Multiplatform の利点として、ビジネスロジックや UI 部分(Compose が対応する範囲)を一度書いて複数ターゲットで再利用できる点があり、このリポジトリはその基本的な構成例を示します。
ビルド面では Gradle Kotlin DSL(build.gradle.kts)を採用しており、マルチプラットフォームプラグインや各ターゲット向けの依存関係を明示的に管理する想定です。iOS 向けには Compose for iOS(experimental/alpha の機能)を利用するケースが多く、リポジトリ設計上はプラットフォーム固有の設定やブリッジ(expect/actual パターンや Kotlin/Native のバインディング)が必要になります。Desktop(JVM)は Compose for Desktop を用いることでデスクトップネイティブアプリとして動作確認が可能です。
実装上の注意点としては、Compose の再コンポジションやステート管理(ViewModel や State Hoisting)の実践、プレビューの活用が挙げられます。README にある「Previews」や GIF(Globe)は、開発中の UI を素早く確認するための手段を示しており、Compose の @Preview 相当の仕組みやプラットフォーム別にプレビューが動く環境を整えることが効率化に寄与します。また、共通コードとプラットフォーム固有コードの境界を明確にすることで、UI の共有度合いやネイティブ機能の呼び出しを管理しやすくなります。
このリポジトリは小規模でファイル数も限られますが、Compose Multiplatform の入門的な構成例として、共通 UI 配置、プレビューの扱い、Gradle 設定の雛形を学ぶのに適しています。実際の商用アプリではさらにテスト、CI、ネイティブ統合(UIKit/SwiftUI との橋渡し)やプラットフォーム別最適化が必要です。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- README.md: file
- build.gradle.kts: file
- composeApp: dir
- gradle.properties: file
…他 6 ファイル
composeApp/src 内は commonMain などのソースセットを想定しており、共通の Kotlin コードと Compose コンポーネントを配置する構成です。
まとめ
Compose マルチプラットフォームの基本構成とプレビュー活用を示す軽量サンプル集。入門やプロトタイプ作成に有用です。
リポジトリ情報:
- 名前: compose_concepts
- 説明: 説明なし
- スター数: 2
- 言語: Kotlin
- URL: https://github.com/pedromassango/compose_concepts
- オーナー: pedromassango
- アバター: https://avatars.githubusercontent.com/u/33294549?v=4
READMEの抜粋:
Random compose code snippets
Previews
Globe
This is a Kotlin Multiplatform project targeting Android, iOS, Desktop (JVM).
- /composeApp is for code that will be shared across your Compose Multiplatform applications.
It contains several subfolders:
- commonMain is for code that’s common for all targets.
- Other folders are for Kotlin code that will be compiled for only t…