mcpField
A
android-kotlin-compose

android-kotlin-compose

github.com/drjacky開発12988 回インストール4 週間前に更新
リポジトリ

android-kotlin-compose について

android-kotlin-composeは、KotlinとJetpack ComposeでAndroidアプリを開発する人向けのスキルです。タスク別のリファレンスを通じて、モジュール化、UI、データ、テスト、パフォーマンス、移行を扱います。

主な機能

  1. 01Androidプロジェクトとモジュール化の指針
  2. 02Jetpack ComposeのUIパターン
  3. 03MVVMとレイヤードアーキテクチャの指針
  4. 04Gradle設定と依存関係の管理
  5. 05テスト、アクセシビリティ、性能の指針
  6. 06移行とデバッグのリファレンス

活用シーン

  1. 01KotlinによるAndroid新規プロジェクトの構築
  2. 02Compose画面とViewModelの実装
  3. 03機能モジュールとデータ層の設計
  4. 04性能、クラッシュ、アーキテクチャの調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/drjacky/claude-android-ninja --skill android-kotlin-compose

インストール後、Claude Code で/android-kotlin-composeを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

.gitignore
LICENSE.md
README.md
.github/
FUNDING.yml
.github/ISSUE_TEMPLATE/
bug_report.md
feature_request.md
assets/convention/
AndroidApplicationBaselineProfileConventionPlugin.kt
AndroidApplicationComposeConventionPlugin.kt
AndroidApplicationConventionPlugin.kt
AndroidApplicationJacocoConventionPlugin.kt
AndroidFeatureConventionPlugin.kt
AndroidLibraryComposeConventionPlugin.kt
AndroidLibraryConventionPlugin.kt
AndroidLibraryJacocoConventionPlugin.kt
AndroidLintConventionPlugin.kt
AndroidRoomConventionPlugin.kt
AndroidTestConventionPlugin.kt
DetektConventionPlugin.kt
FirebaseConventionPlugin.kt
HiltConventionPlugin.kt
JvmLibraryConventionPlugin.kt
KotlinSerializationConventionPlugin.kt
QUICK_REFERENCE.md
SentryConventionPlugin.kt
SpotlessConventionPlugin.kt
build.gradle.kts
assets/convention/config/
AndroidCompose.kt
AndroidInstrumentationTest.kt
GradleManagedDevices.kt
Jacoco.kt

詳細

Android Kotlin Compose 開発

Google の公式アーキテクチャガイダンスとベストプラクティスに従って、本番品質の Android アプリケーションを作成します。 Kotlin、Jetpack Compose、MVVM アーキテクチャ、Hilt による依存関係注入、Room データベース、または Android のマルチモジュールプロジェクトで Android アプリを構築する場合に使用します。 Android プロジェクト、画面、ViewModel、リポジトリ、機能モジュールの作成依頼や、Android のアーキテクチャパターンについて尋ねられた場合に起動します。

クイックリファレンス

タスクリファレンスファイル
プロジェクト構成とモジュールmodularization.md
アーキテクチャの各レイヤー(Presentation、Domain、Data、UI)architecture.md
Compose パターン、アニメーション、エフェクト、修飾子compose-patterns.md
アクセシビリティと TalkBack のサポートandroid-accessibility.md
通知とフォアグラウンドサービスandroid-notifications.md
データ同期とオフラインファーストのパターンandroid-data-sync.md
Material 3 のテーマ設定とダイナミックカラーandroid-theming.md
Navigation3 とアダプティブナビゲーションandroid-navigation.md
Kotlin のベストプラクティスkotlin-patterns.md
Coroutines のベストプラクティスcoroutines-patterns.md
Gradle とビルド設定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
セキュリティ(暗号化、生体認証、ピン留め)android-security.md
デザインパターンdesign-patterns.md
Android のパフォーマンス、再コンポジション、アプリの起動android-performance.md
デバッグ(Logcat、ANR、R8、メモリリーク)android-debugging.md
移行ガイド(XML、RxJava、Navigation、Compose)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/ビルドファイルを設定していますか? → モジュールのbuild.gradle.ktsのパターンには、gradle-setup.mdを使用してください
→ 最適化のワークフロー、診断、ボトルネックのトラブルシューティングについては、gradle-setup.md → 「Build Performance」を使用してください
→ プロジェクトのbuild-logic/に、assets/convention/の規約プラグインをコピーしてください
→ 設定手順と例については、assets/convention/QUICK_REFERENCE.mdを参照してください
→ R8ルールには、assets/proguard-rules.pro.templateをapp/proguard-rules.proにコピーしてください

コード品質/Detektを設定していますか? → Detektの規約プラグインの設定には、code-quality.mdを使用してください
→ ルールにはassets/detekt.yml.templateをベースにし、Composeルールを有効にしてください

依存関係を追加または更新していますか? → dependencies.mdに従ってください
→ 依存関係がない場合は、assets/libs.versions.toml.templateを更新してください

新しい機能/モジュールを追加していますか? → modularization.mdのモジュール命名規則に従ってください
→ 機能モジュールにプレゼンテーション層を実装してください
→ 依存関係の流れに従ってください:Feature → Core/Domain → Core/Data

UI画面/コンポーネントを作成していますか? → 画面アーキテクチャ、状態、コンポーネント、モディファイアについては、compose-patterns.mdをお読みください
→ Material 3のカラー、タイポグラフィ、シェイプには、android-theming.mdを使用してください
→ Kotlinコードは必ずkotlin-patterns.mdに準拠させてください
→ 機能モジュールにScreen + ViewModel + UiStateを作成してください
→ 可能な場合は、core/uiの共有コンポーネントを使用してください

アプリのテーマ(カラー、タイポグラフィ、シェイプ)を設定していますか? → Material 3のテーマ設定とダイナミックカラーについては、android-theming.mdに従ってください
→ MaterialTheme.colorSchemeのセマンティックなカラーの役割を使用してください(ハードコードしたカラーは使用しないでください)
→ ユーザー設定の切り替えに対応したライト/ダークテーマをサポートしてください
→ API 31以降ではダイナミックカラー(Material You)を有効にしてください

Kotlinコードを記述していますか? → 必ずkotlin-patterns.mdに従ってください
→ 実装がarchitecture.md、modularization.md、compose-patterns.mdに準拠していることを確認してください

データ層/ドメイン層を設定していますか? → architecture.mdをお読みください
→ core/domainにRepositoryインターフェースを作成してください → core/dataにRepositoryを実装してください → core/dataにDataSourceとDAOを作成してください

オフラインファーストやデータ同期を実装していますか? → 同期戦略、競合解決、キャッシュ無効化については、android-data-sync.mdに従ってください
→ 同期メタデータ(syncStatus、lastModified)を含め、単一の信頼できる情報源としてRoomを使用してください
→ WorkManagerでバックグラウンド同期をスケジュールしてください
→ 同期前にネットワーク状態を確認してください
ナビゲーションを設定する場合 → Navigation3 のアーキテクチャ、状態管理、アダプティブナビゲーションについては、android-navigation.md を参照してください
→ 機能モジュールのナビゲーションコンポーネント(Destination、Navigator、Graph)については、modularization.md を参照してください
→ アプリモジュールでナビゲーショングラフを設定してください
→ 機能ナビゲーションの Destination と Navigator インターフェースを使用してください

テストを追加する場合 → パターンと例については、testing.md を参照してください
→ Compose Preview Screenshot Testing の設定については、testing.md → 「Screenshot Testing」を参照してください
→ テストダブルは core/testing に配置してください

実行時権限を扱う場合 → マニフェスト宣言と Compose の権限パターンについては、android-permissions.md を参照してください
→ 状況に応じて権限をリクエストし、「次回から表示しない」を選択した場合のフローも処理してください

通知やフォアグラウンドサービスを表示する場合 → 通知チャンネル、スタイル、アクション、フォアグラウンドサービスについては、android-notifications.md を参照してください
→ 通知を表示する前に、API 33 以降では POST_NOTIFICATIONS 権限を確認してください
→ アプリの起動時に通知チャンネルを作成してください(API 26 以降では必須です)

ViewModel 間でロジックを共有する場合、または基底クラスを避ける場合 → kotlin-delegation.md の説明に従い、インターフェースによる委譲を使用してください
→ バリデーション、分析、機能フラグには、小規模な注入可能なデリゲートを使用してください

クラッシュレポートやモニタリングを追加する場合 → プロバイダーに依存しないインターフェースとモジュールの配置については、crashlytics.md を参照してください
→ DI バインディングを使って、Firebase Crashlytics と Sentry を切り替えてください

StrictMode のガードレールを有効にする場合 → アプリレベルの設定と Compose コンパイラ診断については、android-strictmode.md を参照してください
→ StrictMode のログを送信するには、crashlytics.md の Sentry/Firebase の初期化を使用してください

新しい機能、ビジネスロジック、システムに適したデザインパターンを選ぶ場合 → Android に特化したパターンの指針については、design-patterns.md を参照してください
→ architecture.md および modularization.md に沿ってください

パフォーマンスのリグレッションや起動時の遅延/カクつきを測定する場合 → Macrobenchmark、Baseline Profiles、ProfileInstaller の設定については、android-performance.md を参照してください
→ ベンチマークモジュールは、gradle-setup.md の benchmark ビルドタイプに合わせてください
→ ユーザーからカクつきの調査やカスタムトレースポイントの追加を明示的に依頼された場合は、System Tracing(androidx.tracing)の設定について android-performance.md を参照してください

アプリの初期化やスプラッシュ画面を設定する場合 → App Startup ライブラリ、遅延初期化、スプラッシュ画面については、android-performance.md → 「App Startup & Initialization」を参照してください
→ ContentProvider による自動初期化は避け、代わりに Initializer インターフェースを使用してください
→ 読み込み状態には、setKeepOnScreenCondition とともに installSplashScreen() を使用してください

アイコン、画像、カスタムグラフィックを追加する場合 → Material Symbols のアイコンとカスタム描画については、android-graphics.md を参照してください
→ Iconify API または Google Fonts からアイコンをダウンロードしてください(非推奨の Icons.Default.* ライブラリは避けてください)
→ カスタムグラフィックには、Modifier.drawWithContent、drawBehind、または drawWithCache を使用してください

カスタム UI エフェクト(グロー、シャドウ、グラデーション)を作成する場合 → Canvas 描画、BlendMode、Palette API のパターンについては、android-graphics.md を確認してください
→ アニメーション効果には rememberInfiniteTransition を使用してください
アクセシビリティへの準拠(TalkBack、タッチターゲット、色のコントラスト)を確保するには? → セマンティックプロパティと WCAG ガイドラインについては、android-accessibility.md に従ってください
→ すべてのアイコンと画像に contentDescription を指定してください
→ タッチターゲットは最小でも 48dp × 48dp にしてください
→ TalkBack と Accessibility Scanner でテストしてください

画像や色の抽出を扱うには? → AsyncImage、SubcomposeAsyncImage、rememberAsyncImagePainter、Hilt ImageLoader のセットアップについては、android-graphics.md の「Image Loading with Coil3」を使用してください
→ Palette API と色の抽出については、android-graphics.md を使用してください

複雑なコルーチンフローやバックグラウンド処理を実装するには? → 構造化された並行処理のパターンについては、coroutines-patterns.md に従ってください
→ 適切なディスパッチャー(IO、Default、Main)と適切なキャンセル処理を使用してください
→ 状態管理にはチャネルよりも StateFlow/SharedFlow を優先してください
→ Android のコールバック API(接続状態、センサー、位置情報)を Flow にラップするには callbackFlow を使用してください
→ 一度だけ呼び出されるコールバック(Play Services のタスク、生体認証)には suspendCancellableCoroutine を使用してください
→ ViewModel で複数の Flow を結合するには combine() を使用し、負荷の高い上流処理を共有するには shareIn を使用してください
→ buffer、conflate、debounce、sample でバックプレッシャーを処理してください

複数のクラスで動作を共有するには? → インターフェース委譲のパターンについては、kotlin-delegation.md を使用してください
→ 基底クラスは避け、委譲インターフェースを使用したコンポジションを優先してください
→ 例:Analytics、FormValidator、CrashReporter

既存のコードをリファクタリングしたり、アーキテクチャを改善したりするには? → レイヤーの責務については、architecture.md を確認してください
→ 適用可能なパターンについては、design-patterns.md を確認してください
→ Kotlin 固有の改善については、kotlin-patterns.md に従ってください
→ modularization.md の依存関係ルールに準拠していることを確認してください

クラッシュ、ANR、難読化されたスタックトレースをデバッグするには? → Logcat、ANR トレース、Compose の再コンポジションのデバッグについては、android-debugging.md に従ってください
→ R8 のマッピングファイルと手動での難読化解除については、android-debugging.md を使用してください
→ R8 のビルド設定と keep ルールについては、gradle-setup.md を参照してください

パフォーマンスの問題やメモリーリークをデバッグするには? → 開発ビルドで android-strictmode.md を有効にしてください
→ プロファイリングとベンチマークについては、android-performance.md を使用してください
→ LeakCanary とヒープダンプの分析については、android-debugging.md を使用してください
→ コルーチンのキャンセルパターンについては、coroutines-patterns.md を確認してください

CI/CD やコード品質チェックを設定するには? → Detekt のベースラインと CI 統合については、code-quality.md を使用してください
→ ビルドキャッシュとコンベンションプラグインについては、gradle-setup.md を使用してください
→ テストの構成とカバレッジについては、testing.md を使用してください

機密データやプライバシーに関する懸念に対処するには? → データのスクラブパターンについては、crashlytics.md に従ってください
→ 適切な権限の根拠については、android-permissions.md を使用してください
→ クリアテキストのネットワークトラフィックを検出する方法については、android-strictmode.md を確認してください

レガシーコード(LiveData、Fragments、Accompanist、RxJava)を移行するには? → すべての移行パスについては、migration.md を使用してください
→ 最新の MVVM パターンについては、architecture.md に従ってください
Compose アニメーションを追加していますか? → AnimatedVisibility、AnimatedContent、animate*AsState、Animatable、共有要素については、compose-patterns.md →「Animation」を参照してください
→ GPU アクセラレーションによる変換には、graphicsLayer を使用してください(再コンポーズは発生しません)
→ Layout Inspector でデバッグできるよう、必ず label パラメーターを指定してください

副作用(LaunchedEffect、DisposableEffect)を使用していますか? → エフェクトの選択ガイドについては、compose-patterns.md →「Side Effects」を参照してください
→ 状態駆動のコルーチンには LaunchedEffect(key)、イベント駆動の場合は rememberCoroutineScope を使用してください
→ リスナーやリソースのクリーンアップには DisposableEffect を使用し、必ず onDispose を含めてください
→ onResume/onPause の処理(カメラ、メディア)には LifecycleResumeEffect、onStart/onStop の処理(位置情報、センサー)には LifecycleStartEffect を使用してください

Modifier の順序やカスタム Modifier を扱っていますか? → チェーンの順序規則とパターンについては、compose-patterns.md →「Modifiers」を参照してください
→ カスタム Modifier には Modifier.Node を使用してください(非推奨の Modifier.composed は使用しないでください)
→ 順序:サイズ → パディング → 描画 → インタラクション

Accompanist または非推奨の Compose API から移行していますか? → Accompanist、Compose API、Material、Edge-to-Edge の移行については、migration.md を参照してください
→ 概要については、compose-patterns.md →「Deprecated Patterns & Migrations」を参照してください

Compose の再コンポーズや安定性を最適化していますか? → @Immutable/@Stable アノテーションについては、compose-patterns.md を参照してください
→ 3 つのフェーズ、遅延状態読み取り、Strong Skipping Mode については、android-performance.md →「Compose Recomposition Performance」を参照してください
→ Compose Compiler のメトリクスと安定性レポートについては、gradle-setup.md を確認してください
→ イミュータブルなデータ構造については、kotlin-patterns.md を参照してください

データベース(Room)を扱う必要がありますか? → modularization.md に従い、core/database に DAO とエンティティを定義してください
→ インメモリデータベースのテストと移行テストについては、testing.md を参照してください
→ Room を使用したリポジトリのパターンについては、architecture.md に従ってください

国際化/ローカライズ(i18n/l10n)が必要ですか? → 文字列リソース、複数形、RTL サポートについては、android-i18n.md を参照してください
→ RTL に対応した Compose レイアウトについては、compose-patterns.md に従ってください
→ ロケール固有のテストについては、testing.md を参照してください

ネットワーク呼び出し(Retrofit)を実装していますか? → Retrofit のサービスインターフェース、Hilt NetworkModule、AuthInterceptor については、architecture.md →「Network Layer Setup」を参照してください
→ modularization.md に従い、core/network に API インターフェースを定義してください
→ Retrofit、OkHttp、シリアライズの設定については、dependencies.md に従ってください
→ エラー処理には、kotlin-patterns.md の汎用 Result<T> を使用してください

カスタム lint ルールやコードチェックを作成していますか? → Detekt のカスタムルールについては、code-quality.md を参照してください
→ コンベンションプラグインの設定については、gradle-setup.md に従ってください
→ 実行時チェックについては、android-strictmode.md を確認してください

コードカバレッジのレポートが必要ですか? → JaCoCo の設定については、android-code-coverage.md を参照してください
→ テスト戦略については、testing.md に従ってください
→ コンベンションプラグインとの統合については、gradle-setup.md を確認してください セキュリティ機能(暗号化、生体認証、ピンニング)を実装していますか? → 包括的なセキュリティガイドについては、android-security.mdを使用してください
→ 実行時の権限については、android-permissions.mdに従ってください
→ 個人識別情報の除去とデータプライバシーについては、crashlytics.mdを確認してください

コメント