mcpField
A
android-room-database

android-room-database

github.com/krutikjainデータ・データベース14148 回インストール31 週間前に更新
リポジトリ

android-room-database について

Android Room データベース向けのスキルで、エンティティ、DAO、トランザクション、マイグレーション、ローカル永続化のテストを扱います。データベース設計や安全なスキーマ変更を行う Android 開発者向けです。

主な機能

  1. 01エンティティ、キー、索引、リレーションの設計
  2. 02DAO クエリとトランザクション境界の計画
  3. 03スキーマのエクスポートとマイグレーション管理
  4. 04クエリとマイグレーションのテスト
  5. 05永続化モデルとドメインモデルの分離

活用シーン

  1. 01アプリのローカルデータモデル設計
  2. 02エンティティ変更時の移行計画
  3. 03旧スキーマからのマイグレーション検証
  4. 04DAO クエリとトランザクション動作のテスト

インストール

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

$npx skills add https://github.com/krutikjain/android-agent-skills --skill android-room-database

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

同梱ファイル

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

agents/
openai.yaml
references/
official-links.md
patterns.md
scenarios.md
scripts/
run_examples.sh

詳細

Android Room データベース

使用するタイミング

  • リクエストが Room データベース、Android の DAO クエリとマイグレーション、Room スキーマのエクスポートに関する場合に、このスキルを使用します。
  • 主な成果:Room のエンティティ、DAO、トランザクション、マイグレーション、スキーマのエクスポート、およびテストに適したローカル永続化をモデル化します。
  • 難しい点がスキーマ設計、DAO クエリ、トランザクション、マイグレーション、または Room のテストである場合に、このスキルを使用します。主な作業がデータベースの契約自体ではなくリアクティブ API のマイグレーションである場合に限り、android-rxjava-to-coroutines-migration に引き継ぎます。
  • 対象範囲が広がった場合は、次のスキルに引き継ぎます。
  • android-local-persistence-datastore
  • android-testing-unit

ワークフロー

  1. 永続化の契約から着手します。エンティティ、キー、インデックス、リレーション、およびデータが信頼できる唯一の情報源、キャッシュ、オフラインファーストの状態のどれにあたるかを確認します。
  2. トランザクションの境界、クエリの形式、ページング、無効化の動作を含め、DAO のアクセスパターンを明示的にモデル化します。
  3. エンティティを変更する前に、エクスポートするスキーマ、マイグレーションの手順、自動マイグレーションの適用可否、破壊的フォールバックの方針など、スキーマの進化を計画します。
  4. Room のアノテーションだけで十分と決めつけず、再現性のあるテストでマイグレーションとクエリの動作を検証します。
  5. Room の境界が正しくなった後に限り、DataStore、同期、リアクティブ API に関する質問を引き継ぎます。

ガードレール

  • スキーマをエクスポートし、任意のツール出力ではなく契約の一部として扱います。
  • エンティティは永続化に専念させます。テーブルの構造を上位レイヤーに漏らさず、ドメインモデルや UI モデルにマッピングします。
  • 一貫性を保つ必要がある複数ステップの書き込みには、明示的なトランザクションを使用します。
  • リリースビルドで信頼する前に、実際の古いスキーマに対してマイグレーションをテストします。

アンチパターン

  • Room エンティティをアプリ全体でドメインモデルとして扱うこと。
  • スキーマをエクスポートしたり、マイグレーションパスを検証したりせずに編集すること。
  • 画面で必要なのが限定的なプロジェクションだけなのに、広範な SELECT * クエリを書くこと。
  • データベース、同期、リアクティブストリームのマイグレーション問題を、区別のない一つのタスクにまとめること。

レビューの重点項目

  • エンティティのキー、インデックス、リレーション、スキーマの所有権。
  • DAO クエリの形式、トランザクション、無効化の動作。
  • マイグレーションの安全性、スキーマのエクスポート、テストカバレッジ。
  • Room のモデルと上位レイヤーのアプリモデルの明確な境界。

例

正常系
  • シナリオ:スキーマを考慮したエンティティで、タスク項目とリマインダーフラグを永続化します。
  • コマンド:cd examples/orbittasks-compose && ./gradlew :app:testDebugUnitTest
エッジケース
  • シナリオ:明示的なマイグレーションパスを用いて、スキーマ変更の失敗から復旧します。
  • コマンド:python3 scripts/eval_triggers.py --skill android-room-database
障害からの復旧
  • シナリオ:Room のリクエストを DataStore、ネットワーク、モダナイゼーションに関するプロンプトとは分けて扱います。
  • コマンド:cd examples/orbittasks-xml && ./gradlew :app:testDebugUnitTest

完了チェックリスト

  • エンティティ、DAO、トランザクションが実際の永続化の契約に合致しています。
  • スキーマのエクスポートとマイグレーション戦略が明確です。
  • クエリとマイグレーションのテストで、リスクの高いパスをカバーしています。
  • Room 以外の懸念事項はデータベースのタスクに混在させず、適切に引き継いでいます。

公式リファレンス

コメント