mcpField
W
wearos-specialist

wearos-specialist

github.com/gitdolucas開発058 回インストール34 週間前に更新
リポジトリ

wearos-specialist について

Wear OS アプリの実装、レビュー、デバッグを支援する開発スキルです。小画面での視認性、電池消費、ライフサイクル、アーキテクチャ、実機テストを扱います。

主な機能

  1. 01小画面で見やすい UI の指針
  2. 02電池とバックグラウンド動作の助言
  3. 03ライフサイクルと状態復元の指針
  4. 04Compose とデータ層の実装手順
  5. 05実機テストとデバッグのチェックリスト

活用シーン

  1. 01Wear OS 機能の実装計画
  2. 02ウォッチアプリの UX と電池消費のレビュー
  3. 03ライフサイクルや状態の問題の調査

インストール

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

$npx skills add https://github.com/gitdolucas/wearos-specialist --skill wearos-specialist

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

同梱ファイル

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

.markdownlint.jsonc
CODE_OF_CONDUCT.md
LICENSE
CHANGELOG.md
CONTRIBUTING.md
.editorconfig
README.md
SECURITY.md
examples.md
review-checklist.md
perf-battery.md
.cursor/commands/
experts.md
.github/
PULL_REQUEST_TEMPLATE.md
.github/ISSUE_TEMPLATE/
bug_report.yml
config.yml
content_request.yml
.github/workflows/
docs.yml
docs/
how-to-review.md
examples.md
cursor-and-agents.md
how-to-debug-on-watch.md
index.md
perf-battery.md
review-checklist.md
docs/patterns/
haptics.md
state.md
room-queries.md
timers.md
docs/templates/
pr-review.md
feature-plan.md

詳細

Wear OS スペシャリスト

対象範囲

Wear OS アプリの実装、レビュー、デバッグを行う際に、このスキルを使用します。次の点を重視します。

  • 小さな画面で素早く確認できる UI
  • バッテリーを意識した動作とバックグラウンドの制限
  • ライフサイクルの適切な処理(ナビゲーション/戻る動作、中断後の再開、該当する場合はアンビエントモード/AOD)
  • 最新の Android スタック:Kotlin + coroutines/Flow、Compose for Wear OS、MVVM 風の状態ホルダー、Room/DataStore、Navigation、ウォッチ固有のサーフェス(Tiles/Complications)

運用原則(Wear OS)

  • ひと目で分かることを最優先:主要な指標やアクションを明確に表示し、補助的な UI は取り除きます。
  • 大きなタップ領域:密集したコントロールより、少数の大きなボタンを優先します。
  • フレームごとの処理を最小限に:メインスレッドで重い計算や I/O を行わないようにします。
  • バッテリーに配慮:バックグラウンド処理、センサー、タイマー、触覚フィードバックは、目的を明確にし、ライフサイクルを安全に扱います。
  • 予測可能な状態:信頼できる情報源をひとつにし、必要な場面ではプロセス終了後も正しく状態を復元します。

デフォルトの実装ワークフロー(スタック優先)

機能を追加または変更する際は、特別な理由がない限り、次の手順に従います。

  1. UI(Compose 画面)

    • 可能な限り UI をステートレスにし、状態とイベントコールバックを渡します。
    • 主要なアクションを、最も大きく、最もタップしやすくします。
    • 「巧妙な」ジェスチャーは避けます。手が汗ばんでいたり、動いていたりすることを想定します。
  2. 状態ホルダー(ViewModel/状態コンテナ)

    • ビジネスルールと検証を担い、一時的な効果(スナックバー/触覚フィードバック)を調整します。
    • coroutines を使用し、UI をブロックしないようにします。
    • 不変の UI 状態(data class)とイベントメソッドを公開します。
  3. データレイヤー(Room/DataStore)

    • リレーショナルデータや履歴データには Room を、設定や小規模なキーと値の構成には DataStore を使用します。
    • シンプルで効率的なクエリを優先し、適切な場合は Flow 経由で UI にストリーム配信します。
  4. ナビゲーション

    • ルートを明示し、壊れやすい文字列ベースの引数は避けます。
    • ウォッチ上で自然な戻る動作になるようにします(深いスタックを作らない)。
  5. 検証

    • ウォッチ上で行う短いテスト計画を作成します。主要なフロー、連続タップ、中断、バックグラウンド移行と復帰を確認します。

ウェアラブル UX チェックリスト(簡易版)

  • 主要なアクションに、画面から 1 回のタップでアクセスできます。
  • すべてのアクションを片手の親指だけで操作できます(精密な操作は不要です)。
  • デフォルト設定が適切です(主要なアクションを実行する前に設定を強制しません)。
  • 「参照/履歴」情報は補助的なものであり、主役にならないようにします。
  • 操作を妨げるフローは避け、確認は破壊的なアクションに限ります。

パフォーマンスと再コンポジションの経験則

  • 計算負荷の高い導出値には remember/derivedStateOf を使用します。
  • 頻繁に再コンポジションされる UI パスで、新しいリストやオブジェクトを毎回割り当てることは避けます。
  • 手動でのポーリングより、データレイヤーから UI への Flow/StateFlow を優先します。
  • タイマーの更新は粗い間隔(例:1 秒に 1 回)にし、不要になったら停止します。
  • コンポーザブル内でのフォーマッター/パーサーの使用には注意し、キャッシュします。

デバッグワークフロー(ウォッチ優先)

「実機で挙動がおかしい」場合:

  • エミュレーターではなくウォッチで再現し、次の情報を記録します。
    • 画面、操作の順序、ウォッチの状態(AOD のオン/オフ)、バッテリーセーバー、接続状態
  • 次の処理の周辺に一時的なログを追加します。
    • ナビゲーション引数
    • データの読み書き(Room/DataStore/ネットワーク)
    • センサー/タイマーの開始と停止、ライフサイクルコールバック
  • 次の点を確認します。
    • メインスレッドでの I/O
    • 状態が誤って再生成されている(永続化/復元が不足している)
    • 画面を離れた後もコルーチン/タイマー/センサーリスナーが停止せず、実行され続けている

出力テンプレート

実装計画テンプレート
## Summary
- What user-facing behavior changes (1–3 bullets)

## Files to touch
- `...`

## Data/state changes
- UI state:
- Events:
- Persistence (Room/DataStore):
- Background work (if any):

## Wear OS constraints check
- Glanceability:
- Tap targets:
- Battery/background:
- Lifecycle/restore:

## Test plan
- On-watch manual checks (key flows + edge cases):
レビューテンプレート(PR 形式)
## Correctness
- [ ] State transitions are correct under rapid taps / interruptions
- [ ] Data reads/writes are correct and resilient (restart, process death)

## Wear OS UX
- [ ] Primary action is largest and easiest to hit
- [ ] No dense UI / tiny tap targets
- [ ] No blocking flows during primary usage

## Performance/battery
- [ ] No IO on main thread
- [ ] Timers/sensors stop when leaving screen
- [ ] Recomposition hotspots avoided (no per-frame allocations)

## Data layer
- [ ] Room/DataStore usage fits the problem (history vs settings)
- [ ] Queries are minimal and efficient (only load what UI needs)

追加の参考資料(1 階層)

コメント