iPhoneユーザー向けのUX監査を実行し、問題点と改善案をレポートする。「UX監査して」「iOS UXチェック」「画面を監査」などのリクエストで使用する。
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: ios-ux-audit
description: iPhoneユーザー向けのUX監査を実行し、問題点と改善案をレポートする。「UX監査して」「iOS UXチェック」「画面を監査」などのリクエストで使用する。
allowed-tools: Read, Glob, Grep
argument-hint: [対象画面名 or 省略で全画面]
---
# iOS UX 監査スキル
指定された画面(または全画面)を走査し、iPhoneユーザーのUX品質を監査する。
## デザイン前提: Liquid Glass
本プロジェクトは Apple iOS 26 の **Liquid Glass** デザインを前提とする。
監査時は `@callstack/liquid-glass` (`LiquidGlassView`, `LiquidGlassContainerView`) の使用状況も確認する。
## 監査対象
対象ファイル:
- `src/screens/**/*.tsx` — 画面コンポーネント
- `src/components/**/*.tsx` — UIコンポーネント
- `src/App.tsx` — ナビゲーション構造
引数が指定された場合はその画面のみ、省略時は全画面を対象とする。
## 監査チェックリスト
以下の7カテゴリを順にチェックし、問題があれば具体的なファイル名・行番号と改善案を報告する。
### 1. Safe Area & デバイス対応
- [ ] `SafeAreaView` がルートで使用されているか
- [ ] ノッチ / Dynamic Island 領域に要素が被っていないか
- [ ] ホームインジケータ領域(画面下部)にボタン等が被っていないか
- [ ] `useSafeAreaInsets()` で動的にパディングを取得しているか
- [ ] ステータスバーのスタイル(`light` / `dark`)が背景色と適切か
### 2. キーボード処理
- [ ] `TextInput` を含む画面に `KeyboardAvoidingView` があるか(iOS: `behavior="padding"`)
- [ ] `ScrollView` に `keyboardShouldPersistTaps="handled"` が設定されているか
- [ ] `returnKeyType` が適切に設定されているか(`done`, `next`, `search` 等)
- [ ] キーボードを閉じる手段があるか(`Keyboard.dismiss()` 等)
### 3. ハプティクス
- [ ] ボタンのプレスに触覚フィードバックがあるか
- [ ] 破壊的アクション(削除等)に `notificationAsync(Warning)` があるか
- [ ] タブ切り替え・トグルに `selectionAsync()` があるか
- [ ] 成功・完了時に `notificationAsync(Success)` があるか
### 4. アクセシビリティ
- [ ] すべての `Pressable` / `TouchableOpacity` に `accessibilityLabel` があるか
- [ ] アイコンのみのボタンに `accessibilityLabel` があるか
- [ ] 画像に `accessibilityLabel` または `accessible={false}`(装飾的)があるか
- [ ] `accessibilityRole` が適切に設定されているか(`button`, `link`, `header` 等)
- [ ] 絵文字アイコンがアクセシビリティラベルで補完されているか
### 5. パフォーマンス
- [ ] リスト表示に `FlatList` / `SectionList` を使っているか(`.map()` ではなく)
- [ ] 画像に適切な `resizeMode` と遅延読み込みがあるか
- [ ] 不要な再レンダリングを防ぐ `React.memo` / `useMemo` / `useCallback` があるか
- [ ] `key` prop に配列のインデックスではなく一意のIDを使っているか
### 6. iOS HIG 準拠
- [ ] 絵文字ではなくアイコンライブラリ(`@expo/vector-icons` 等)を使っているか
- [ ] 戻るボタンがiOS標準のシェブロン(`<`)スタイルか
- [ ] モーダル/シート表示が適切か(設定画面等)
- [ ] タッチターゲットが最低44x44ptあるか
- [ ] フォントサイズがiOSの推奨範囲内か(本文: 17pt, キャプション: 12pt以上)
### 7. Liquid Glass デザイン準拠
- [ ] カード・ツールバー・モーダルに `LiquidGlassView` が適用されているか
- [ ] 近接するガラス要素が `LiquidGlassContainerView` でグループ化されているか
- [ ] `effect` プロパティが適切か(カード: `regular`, オーバーレイ: `clear`)
- [ ] ガラス背景上のテキストが十分なコントラストを持つか(WCAG AA以上)
- [ ] `isLiquidGlassSupported` で非対応デバイスにフォールバックがあるか
- [ ] フォールバック時に半透明背景色(例: `rgba(255,255,255,0.8)`)が設定されているか
- [ ] 全画面ガラス背景を避け、アクセント的に使用しているか
- [ ] ガラス要素に `borderRadius` が設定されているか
- [ ] 「透明度を下げる」設定 (`AccessibilityInfo`) を尊重しているか
- [ ] ガラス要素の高さが65px超の場合、テキストに `PlatformColor('labelColor')` を使用しているか
### 8. ジェスチャー & インタラクション
- [ ] スワイプバック(←方向)でナビゲーション戻りができるか
- [ ] リストにプルトゥリフレッシュ (`RefreshControl`) があるか
- [ ] ロングプレスでコンテキストメニューが出るか(必要な箇所)
- [ ] ボタンにプレス状態のフィードバック(opacity/scale)があるか
## 出力フォーマット
```
## iOS UX 監査レポート
### 対象: [画面名 or 全画面]
#### 🔴 Critical(即座に修正すべき)
- **[カテゴリ]** `ファイル名:行番号` — 問題の説明
→ 改善案: ...
#### 🟡 Warning(改善推奨)
- **[カテゴリ]** `ファイル名:行番号` — 問題の説明
→ 改善案: ...
#### 🟢 Good(問題なし)
- [カテゴリ]: ✓ 適切に実装済み
#### 📊 スコア: X / 8 カテゴリ合格
```
## ルール
- コードの変更は行わない。監査とレポートのみ
- 問題箇所は必ずファイルパスと行番号を含める
- 改善案は具体的なコード例を含める
- プロジェクトの `src/theme/tokens.ts` のデザイントークンを考慮する
- 既存の依存パッケージで対応可能な改善を優先する
No comments yet. Be the first to comment!