Communityコーディング&開発github.com

Android Kotlin Compose 開発

Kotlin と Jetpack Compose、MVVM、Hilt、Room 3、DataStore、Paging 3、マルチモジュールプロジェクトを使用した Android アプリ開発のためのエージェントスキル。

Android Kotlin Compose 開発 とは?

このスキルは、Kotlin と Jetpack Compose を用いた Android アプリ開発において、AI エージェントがベストプラクティスに従ってコードを生成したり、設計判断を支援するための包括的なリファレンスです。モジュール化アーキテクチャ、Navigation3、Gradle Convention プラグイン、依存関係管理、テスト(Turbine を使用した Flow テストなど)、テーマ設定、パフォーマンス最適化、セキュリティ、アクセシビリティなど、Android 開発の主要トピックをカバーしています。プロジェクトの新規作成、画面や ViewModel の実装、リポジトリパターン、マルチモジュール構成の設定など、幅広い開発タスクをトリガーに、対応するリファレンスドキュメントやアセットテンプレート(Gradle設定、ProGuardルール、Detektルールなど)への迅速なナビゲーションを提供します。このスキルは、Claude Code や Cursor などの AI エージェントで動作するように設計されており、Kotlin、Jetpack Compose、MVVM、Hilt、Room 3、DataStore、Paging 3 を活用したプロジェクトに特に有用です。

対応✓Claude Code~Codex CLI~Cursor
Part ofMobile
npx skills add Drjacky/claude-android-ninja

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Android Kotlin Compose 開発 は何をしますか?

Kotlin、Jetpack Compose、MVVM、Hilt、Room 3、DataStore、Paging 3、またはマルチモジュールプロジェクトを使用した Android アプリを開発する際に使用します。 Android プロジェクト、スクリーン、ViewModel、リポジトリ、フィーチャーモジュールの作成リクエストや、Android アーキテクチャパターンに関する質問に対応します。

クイックリファレンス

タスク参照ファイル
プロジェクト構造とモジュールmodularization.md
アーキテクチャ層(Domain、Data、UI、Common...)architecture.md
Compose パターン、マテリアルモーション、アニメーション、Modifier、安定性compose-patterns.md
アクセシビリティ、TalkBack、ラベルコピー、ライブ領域、Espresso a11y チェックandroid-accessibility.md
通知、フォアグラウンドサービス、メディア/オーディオ、PiP、共有シートandroid-notifications.md
データ同期とオフラインファーストパターンandroid-data-sync.md
Material 3 テーマ設定、スペーシングトークン、カテゴリフィット、ダイナミックカラーandroid-theming.md
Navigation3、アダプティブナビゲーション、大画面品質階層android-navigation.md
Kotlin ベストプラクティス、View ライフサイクル相互運用kotlin-patterns.md
コルーチンベストプラクティスcoroutines-patterns.md
Gradle、プロダクトフレーバー、BuildConfig、ビルドパフォーマンスgradle-setup.md
テストアプローチtesting.md
国際化と地域化android-i18n.md
アイコン、アダプティブランチャー仕様、カスタム描画android-graphics.md
ランタイムパーミッションandroid-permissions.md
Kotlin 委譲パターンkotlin-delegation.md
クラッシュレポートcrashlytics.md
StrictMode ガードレールandroid-strictmode.md
マルチモジュール依存関係dependencies.md
コード品質(Detekt)code-quality.md
コードカバレッジ(JaCoCo)android-code-coverage.md
セキュリティ、Play Integrity(Standard/Classic)、サーバーデコード、 requestHash/nonce、階層化ポリシー、対策;Credential Manager;補助的なローカルルートチェックandroid-security.md
デザインパターンdesign-patterns.md
パフォーマンス、Play Vitals、オプションの CI レポート(Play Developer Reporting API)、起動、再コンポジション、ジャンク、バッテリーandroid-performance.md
デバッグ、Logcat レベル、ANR、Gradle エラーパターン、R8、メモリリークandroid-debugging.md
マイグレーションガイド(XML、RxJava、ナビゲーション、Compose、Room 2→3)migration.md

ワークフロー決定木

新しいプロジェクトを作成する場合? → assets/settings.gradle.kts.template から設定とモジュールインクルードを開始します → assets/libs.versions.toml.template からバージョンカタログを開始します → assets/convention/ 内のすべてのファイルを build-logic/convention/src/main/kotlin/ にコピーします → build-logic/settings.gradle.kts を作成します(assets/convention/QUICK_REFERENCE.md を参照) → ルートの settings.gradle.kts に includeBuild("build-logic") を追加します → gradle/libs.versions.toml にプラグインエントリを追加します(assets/convention/QUICK_REFERENCE.md を参照) → assets/proguard-rules.pro.template を app/proguard-rules.pro にコピーします → modularization.md を読んで構造とモジュールタイプを確認します → gradle-setup.md をビルドファイルとビルドロジックに使用します

Gradle/ビルドファイルを設定する場合? → gradle-setup.md をモジュール build.gradle.kts のパターンに使用します → gradle-setup.md → 「ビルドパフォーマンス」を最適化ワークフロー、診断、ボトルネックトラブルシューティングに使用します → assets/convention/ からプロジェクトの build-logic/ に Convention プラグインをコピーします → 設定手順と例については assets/convention/QUICK_REFERENCE.md を参照してください → assets/proguard-rules.pro.template を app/proguard-rules.pro にコピーして R8 ルールを設定します

コード品質 / Detekt を設定する場合? → code-quality.md を Detekt Convention プラグインの設定に使用します → assets/detekt.yml.template からルールを開始し、Compose ルールを有効にします

依存関係を追加または更新する場合? → dependencies.md に従います → 依存関係が不足している場合は assets/libs.versions.toml.template を更新します

新しい機能/モジュールを追加する場合? → modularization.md のモジュール命名規則に従います → 機能モジュールにプレゼンテーション層を実装します → 依存関係フローに従います:機能 → コア/ドメイン → コア/データ

UI 画面/コンポーネントを構築する場合? → compose-patterns.md を画面アーキテクチャ、状態、コンポーネント、Modifier について読んでください → compose-patterns.md -> 状態管理 -> 「読み込みとリフレッシュ UX」を使用して、読み込み中およびリフレッシュ中の安定したレイアウトを実現します(コンテキストを消去する全画面スピナーを避ける) → android-theming.md を使用して Material 3 の色、タイポグラフィ、シェイプを設定します → 常に Kotlin コードを kotlin-patterns.md に準拠させます → 機能モジュールに Screen + ViewModel + UiState を作成します → 可能な場合は core/ui の共有コンポーネントを使用します

状態とイベントを処理する場合? → 状態には StateFlow を使用します。厳密な単発 UI コマンドには Channel + receiveAsFlow() を使用します。マルチキャストまたはリプレイを意図したイベントには SharedFlow を使用します(coroutines-patterns.md を参照) → SavedStateHandle でプロセス終了を乗り切ります(compose-patterns.md を参照)

アプリテーマを設定する場合(色、タイポグラフィ、シェイプ)? → android-theming.md に従って Material 3 テーマとダイナミックカラーを設定します → MaterialTheme.colorScheme のセマンティックカラーロールを使用します(ハードコードされた色は禁止)。各塗りつぶしにはその on* パートナーをペアにします - 色ペアルール を参照 → Color.kt に完全な M3 カラーセットを宣言します(サーフェスコンテナ、ディム/ブライト、*Fixed/*FixedDim)。これによりダイナミックカラーとコントラストバリアントの一貫性が保たれます - 完全なカラーロールリファレンス と サーフェスコンテナ階層 を参照 → 奥行きはまずコンテナのトーンで表現し、影は任意のコンテンツの上に浮かぶコンポーネントにのみ使用します - トーンによるエレベーションと影 を参照 → インタラクティブな境界線/フォーカスには outline、装飾的な区切り線には outlineVariant を使用します - outline と outlineVariant を参照 → ユーザー設定で切り替え可能なライト/ダークテーマをサポートします → API 31+ ではダイナミックカラー(Material You)を有効にし、ブランド/拡張色を primary に調和させます - ブランドカラーの調和 を参照 → Android 14+ (API 34) のシステムコントラストスライダーに対応するため、中/高コントラストスキームバリアントを提供し、UiModeManager.getContrast() を読み取ります - ユーザーコントラスト設定 を参照 → 地域限定のパレットオーバーライド(破壊的スコープ、メディアツールバーなど)には、colorScheme.copy(...) を使用したネストされた MaterialTheme を使用します - スコープテーマ を参照 → Card / OutlinedCard / ElevatedCard は重要性ではなくサーフェスの分離に基づいて選択し、シェイプはトークンレベルでオーバーライドします - カードバリアント と コンポーネントシェイプデフォルト を参照

任意の Kotlin コードを記述する場合? → 常に kotlin-patterns.md に従います → 実践が architecture.md、modularization.md、compose-patterns.md と一致していることを確認します

データ/ドメイン層を設定する場合? → architecture.md を読んでください → Hilt の @Binds、スコープ、DI アンチパターン:architecture.md -> ドメイン層 -> 「依存関係インジェクションのセットアップ」 → core/domain にリポジトリインターフェースを作成します → core/data に Room 3/Retrofit/DataStore を使用した実装を作成します → 単純なキーと値のペアには DataStore、複雑なリレーショナルデータには Room 3(suspend / Flow DAO、SQLiteDriver)を使用します

リストとスクロールを実装する場合? → 安定したキーと contentType を持つ LazyColumn/LazyRow を使用します(compose-patterns.md を参照) → 大規模データセットには Paging 3 を使用します(compose-patterns.md -> 「Paging 3」を参照)

ナビゲーションを処理する場合? → アダプティブナビゲーションには Navigation3 を使用します(android-navigation.md を参照) → ナビゲーションのアンチパターンを避けます(android-navigation.md -> 「ナビゲーションアンチパターン」を参照)

パフォーマンスを最適化する場合? → android-performance.md のパフォーマンスチェックリストに従います → ユーザーが自動化された Play Console のバイタル(CI/Slack、Play Console UI なし)を要求した場合は、android-performance.md → オプション:Play Vitals の可観測性(Play Developer Reporting API) を使用します → 高頻度のテキスト入力には BasicTextField2 を使用します

テストする場合? → testing.md をテストの哲学とパターンについて読んでください → Flow の放出テストには Turbine を使用します(testing.md -> 「Turbine を使用した Flow 放出のテスト」を参照) → Repository を作成します

関連スキル