Kotlin Multiplatform で作成された火星の不動産情報を表示する Android アプリケーションです。
本プロジェクトは kmp-sample-library で実装された状態管理(ViewModel、Repository、データ層など)を使用し、Android 側では UI 実装のみを行っています。これにより、ビジネスロジックとプラットフォーム固有の UI 実装を明確に分離しています。
| 一覧画面 | 詳細画面 |
|---|---|
![]() |
![]() |
┌─────────────────────────────────────┐
│ kmp-sample-android │
│ (UI Layer - Android Only) │
│ │
│ ┌──────────┐ ┌───────────────┐ │
│ │ App │────│Feature Module │ │
│ └──────────┘ │ (Home UI) │ │
│ └───────────────┘ │
│ │ │
└─────────────────────────┼──────────┘
│
▼
┌─────────────────────────────────────┐
│ kmp-sample-library (KMP) │
│ │
│ ┌──────────────────────────────┐ │
│ │ ViewModel / Repository │ │
│ │ State Management │ │
│ │ Business Logic │ │
│ │ Data Layer │ │
│ └──────────────────────────────┘ │
└─────────────────────────────────────┘
- Jetpack Compose - モダンな宣言的 UI フレームワーク
- Material3 - Material Design 3 コンポーネント
- Coil - 画像読み込みライブラリ
- ViewModel - UI 状態の管理
- Repository パターン - データ操作の抽象化
- Koin - 依存性注入
- Gradle (Kotlin DSL) - ビルド設定
- Convention Plugins - ビルドロジックの共通化
kmp-sample-android/
├── app/ # メインアプリケーションモジュール
├── core/
│ └── designsystem/ # デザインシステム(テーマ、共通 UI コンポーネント)
├── feature/
│ └── home/ # ホーム画面の UI 実装
└── build-logic/ # ビルドロジック(Convention Plugins)
- app: アプリケーションのエントリポイント。各機能モジュールを統合します。
- core:designsystem: アプリ全体で使用するテーマや UI コンポーネントを提供します。
- feature:home: 火星の不動産情報を表示するホーム画面の UI を実装します。ViewModel や状態管理は
kmp-sample-libraryから提供されます。
- JDK 17 以上
- Android Studio Ladybug | 2024.2.1 以上
- Android SDK (compileSdk 36, minSdk 30)
本プロジェクトは GitHub Packages から kmp-sample-library を取得します。以下の設定が必要です。
- GitHub Personal Access Token を作成(
read:packages権限が必要) local.propertiesに以下を追加:
gpr.user=YOUR_GITHUB_USERNAME
gpr.token=YOUR_GITHUB_TOKEN# リポジトリのクローン
git clone https://github.com/kei-1111/kmp-sample-android.git
cd kmp-sample-android
# ビルド
./gradlew build
# アプリの実行
./gradlew :app:installDebug- kmp-sample-library - ビジネスロジックと状態管理を提供する Kotlin Multiplatform ライブラリ

