wearos-specialist について
Wear OS アプリの実装、レビュー、デバッグを支援する開発スキルです。小画面での視認性、電池消費、ライフサイクル、アーキテクチャ、実機テストを扱います。
主な機能
- 01小画面で見やすい UI の指針
- 02電池とバックグラウンド動作の助言
- 03ライフサイクルと状態復元の指針
- 04Compose とデータ層の実装手順
- 05実機テストとデバッグのチェックリスト
活用シーン
- 01Wear OS 機能の実装計画
- 02ウォッチアプリの UX と電池消費のレビュー
- 03ライフサイクルや状態の問題の調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ gitdolucas/ wearos-specialist --skill wearos-specialistインストール後、Claude Code で/wearos-specialistを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.markdownlint.jsoncCODE_OF_CONDUCT.mdLICENSECHANGELOG.mdCONTRIBUTING.md.editorconfigREADME.mdSECURITY.mdexamples.mdreview-checklist.mdperf-battery.md.cursor/commands/experts.md.github/PULL_REQUEST_TEMPLATE.md.github/ISSUE_TEMPLATE/bug_report.ymlconfig.ymlcontent_request.yml.github/workflows/docs.ymldocs/how-to-review.mdexamples.mdcursor-and-agents.mdhow-to-debug-on-watch.mdindex.mdperf-battery.mdreview-checklist.mddocs/patterns/haptics.mdstate.mdroom-queries.mdtimers.mddocs/templates/pr-review.mdfeature-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 を行わないようにします。
- バッテリーに配慮:バックグラウンド処理、センサー、タイマー、触覚フィードバックは、目的を明確にし、ライフサイクルを安全に扱います。
- 予測可能な状態:信頼できる情報源をひとつにし、必要な場面ではプロセス終了後も正しく状態を復元します。
デフォルトの実装ワークフロー(スタック優先)
機能を追加または変更する際は、特別な理由がない限り、次の手順に従います。
-
UI(Compose 画面)
- 可能な限り UI をステートレスにし、状態とイベントコールバックを渡します。
- 主要なアクションを、最も大きく、最もタップしやすくします。
- 「巧妙な」ジェスチャーは避けます。手が汗ばんでいたり、動いていたりすることを想定します。
-
状態ホルダー(ViewModel/状態コンテナ)
- ビジネスルールと検証を担い、一時的な効果(スナックバー/触覚フィードバック)を調整します。
- coroutines を使用し、UI をブロックしないようにします。
- 不変の UI 状態(
data class)とイベントメソッドを公開します。
-
データレイヤー(Room/DataStore)
- リレーショナルデータや履歴データには Room を、設定や小規模なキーと値の構成には DataStore を使用します。
- シンプルで効率的なクエリを優先し、適切な場合は Flow 経由で UI にストリーム配信します。
-
ナビゲーション
- ルートを明示し、壊れやすい文字列ベースの引数は避けます。
- ウォッチ上で自然な戻る動作になるようにします(深いスタックを作らない)。
-
検証
- ウォッチ上で行う短いテスト計画を作成します。主要なフロー、連続タップ、中断、バックグラウンド移行と復帰を確認します。
ウェアラブル 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 階層)
- レビューチェックリスト:review-checklist.md
- パフォーマンス/バッテリーに関するメモ:perf-battery.md
- 例:examples.md
コメント
Markdown 対応