Skip to content

quesera2/GithubRepoBrowser2

Repository files navigation

GitHub Repo Browser

GitHubの活発なリポジトリを表示するアプリです。ユーザー名を入力して、そのユーザーのリポジトリ一覧を表示することもできます。

Kotlin Multiplatform で構築し、iOS・Android それぞれネイティブ UI で動作します。

スクリーンショット

トレンド画面 検索画面

技術スタック

レイヤー 技術
共通ロジック Kotlin Multiplatform
DI metro
通信 Ktor
JSON kotlinx.serialization
非同期 kotlinx.coroutines
多言語化 Moko Resources
iOS Swift 連携 SKIE
Android UI Jetpack Compose
iOS UI SwiftUI
状態管理 ViewModel (KMP版) + StateFlow

プロジェクト構成

├── shared/              # DI グラフ定義
├── domain/
│   ├── model/           # データモデル
│   └── contract/        # DIP のためインターフェースを定義
├── data/
│   ├── api/             # API クライアント(Ktor)
│   └── repository/      # リポジトリ実装
├── feature/
│   └── search/          # ViewModel + UI 状態
├── androidApp/          # Android アプリ(Jetpack Compose)
└── iosApp/              # iOS アプリ(SwiftUI)

モジュール依存関係

ビルド方法

Android

./gradlew :androidApp:assembleDebug

iOS

iosApp/iosApp.xcodeproj を Xcode で開いて Run。

初回設定

Xcodeが使う Java が 21 となるようにする必要があります。必要に応じて iosApp/.xcode.env.local を作成してください。

export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home"

About

KMP(iOS/AndroidネイティブUI)の設計を考えるリポジトリ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors