Agent Skills by ALSEL
Anthropic Claudeソフトウェア開発⭐ リポ 0品質スコア 50/100

mobile-design

モバイルファーストの設計思想に基づき、iOSおよびAndroidアプリのタッチ操作・パフォーマンス・プラットフォーム規約に関する意思決定をサポートします。固定値ではなく原則を重視した指針を提供するため、React Native・Flutter・ネイティブモバイルアプリを開発する際に活用してください。

description の原文を見る

Mobile-first design thinking and decision-making for iOS and Android apps. Touch interaction, performance patterns, platform conventions. Teaches principles, not fixed values. Use when building React Native, Flutter, or native mobile apps.

SKILL.md 本文

モバイルデザインシステム

哲学: タッチファースト。バッテリー意識。プラットフォーム尊重。オフライン対応可能。 コア原則: モバイルはデスクトップの小さい版ではありません。モバイルの制約を考え、プラットフォームの選択を問いかけてください。


🔧 ランタイムスクリプト

検証用に実行してください(読むのではなく、実行するだけ):

スクリプト目的使用方法
scripts/mobile_audit.pyモバイルUX・タッチ監査python scripts/mobile_audit.py <project_path>

🔴 必須: 作業前に参照ファイルを読んでください!

⛔ 関連ファイルを読むまで開発を開始しないでください:

ユニバーサル(常に読む)

ファイルコンテンツステータス
mobile-design-thinking.md⚠️ 暗記排除: 思考を強制し、AI既定値を防止⬜ 最初に重要
touch-psychology.mdフィッツの法則、ジェスチャー、ハプティクス、サムゾーン⬜ 重要
mobile-performance.mdRN/Flutterパフォーマンス、60fps、メモリ⬜ 重要
mobile-backend.mdプッシュ通知、オフラインシンク、モバイルAPI⬜ 重要
mobile-testing.mdテストピラミッド、E2E、プラットフォーム固有⬜ 重要
mobile-debugging.mdネイティブ vs JS デバッグ、Flipper、Logcat⬜ 重要
mobile-navigation.mdタブ/スタック/ドロワー、ディープリンク⬜ 読む
mobile-typography.mdシステムフォント、Dynamic Type、a11y⬜ 読む
mobile-color-system.mdOLED、ダークモード、バッテリー対応⬜ 読む
decision-trees.mdフレームワーク/状態/ストレージ選択⬜ 読む

🧠 mobile-design-thinking.md が優先! このファイルは、AIが暗記されたパターンを使うのではなく、思考することを保証します。

プラットフォーム固有(対象に基づいて読む)

プラットフォームファイルコンテンツ読む時期
iOSplatform-ios.mdHuman Interface Guidelines、SF Pro、SwiftUIパターンiPhone/iPad向けビルド
Androidplatform-android.mdMaterial Design 3、Roboto、ComposeパターンAndroid向けビルド
クロスプラットフォーム上記両方プラットフォーム相違点React Native / Flutter

🔴 iOS向けビルド → platform-ios.md を最初に読んでください! 🔴 Android向けビルド → platform-android.md を最初に読んでください! 🔴 クロスプラットフォーム → 両方読んで条件付きプラットフォームロジックを適用してください!


⚠️ 重大: 仮定する前に問いかけてください(必須)

停止! ユーザーのリクエストが曖昧な場合、好みに頼らないでください。

指定されていない場合は問う必要があります:

側面質問理由
プラットフォーム「iOS、Android、または両方?」すべての設計決定に影響
フレームワーク「React Native、Flutter、またはネイティブ?」パターンとツールを決定
ナビゲーション「タブバー、ドロワー、またはスタックベース?」コアUX決定
状態「状態管理は? (Zustand/Redux/Riverpod/BLoC?)」アーキテクチャ基盤
オフライン「これはオフラインで機能する必要がある?」データ戦略に影響
対象デバイス「スマートフォンのみ、またはタブレット対応?」レイアウト複雑性

⛔ AI モバイルアンチパターン(禁止リスト)

🚫 これらはAIのデフォルト傾向であり、避けなければなりません!

パフォーマンス罪

❌ 絶対しないこと何が悪いのか✅ 常にすること
長いリストにScrollViewすべてのアイテムをレンダリング、メモリ爆発FlatList / FlashList / ListView.builder を使用
インライン renderItem 関数毎回新しい関数、すべてのアイテムが再レンダリングuseCallback + React.memo
keyExtractor 欠落インデックスベースキーはリオーダーで不具合データから一意の安定ID
getItemLayout スキップ非同期レイアウト = カクカクスクロール固定高さの場合は提供
setState() 乱用不要なウィジェット再構築対象状態、const コンストラクタ
Native driver: falseアニメーションがJSスレッドでブロックuseNativeDriver: true は常に
本番環境で console.logJSスレッドを激しくブロックリリースビルド前に削除
React.memo/const スキップすべてのアイテムが変更時に再レンダリングリストアイテムを常にメモ化

タッチ/UX罪

❌ 絶対しないこと何が悪いのか✅ 常にすること
タッチターゲット < 44px正確にタップ不可、フラストレーション最小44pt (iOS) / 48dp (Android)
ターゲット間間隔 < 8px隣接部への誤タップ最小8-12px ギャップ
ジェスチャーのみインタラクション運動機能障害ユーザーを除外常にボタン代替案を提供
ローディング状態なしユーザーがアプリクラッシュと思う常にローディングフィードバック表示
エラー状態なしユーザーが止まって、復旧パスなしエラー表示と再試行オプション
オフライン処理なしネットワーク喪失時にクラッシュ/ブロックグレースフルデグラデーション、キャッシュ
プラットフォーム規約無視ユーザー混乱、筋肉記憶破損iOSはiOS、AndroidはAndroid

セキュリティ罪

❌ 絶対しないこと何が悪いのか✅ 常にすること
AsyncStorage にトークン簡単にアクセス可能、ルート化デバイスで盗難SecureStore / Keychain / EncryptedSharedPreferences
APIキーをハードコードAPK/IPAから逆エンジニアリング可能環境変数、セキュア保存
SSL ピニング スキップMITM 攻撃が可能本番環境でサーティフィケート固定
機密データをログログ抽出可能トークン、パスワード、PII をログしない

アーキテクチャ罪

❌ 絶対しないこと何が悪いのか✅ 常にすること
UIにビジネスロジックテスト不可、保守不可サービスレイヤー分離
すべてにグローバル状態不要な再レンダリング、複雑性ローカル状態がデフォルト、必要時にリフト
ディープリンクを後付け通知、共有機能破損初日からディープリンク計画
dispose/cleanup スキップメモリリーク、ゾンビリスナーサブスクリプション、タイマーをクリーンアップ

📱 プラットフォーム決定マトリックス

統一 vs 分岐

                    統一(両方で同じ)          分岐(プラットフォーム固有)
                    ───────────────────           ──────────────────────────
ビジネスロジック    ✅ 常に                       -
データレイヤー      ✅ 常に                       -
コア機能           ✅ 常に                       -
                    
ナビゲーション      -                             ✅ iOS: エッジスワイプ、Android: バックボタン
ジェスチャー        -                             ✅ プラットフォーム native フィール
アイコン           -                             ✅ SF Symbols vs Material Icons
日付ピッカー       -                             ✅ ネイティブピッカーが最適
モーダル/シート     -                             ✅ iOS: ボトムシート vs Android: ダイアログ
タイポグラフィ     -                             ✅ SF Pro vs Roboto (またはカスタム)
エラーダイアログ   -                             ✅ プラットフォーム規約 |

クイックリファレンス: プラットフォーム既定値

要素iOSAndroid
プライマリフォントSF Pro / SF CompactRoboto
最小タッチターゲット44pt × 44pt48dp × 48dp
バックナビゲーション左エッジスワイプシステムバックボタン/ジェスチャー
ボトムタブアイコンSF SymbolsMaterial Symbols
アクションシートUIActionSheet(下から)ボトムシート / ダイアログ
進捗スピナーリニア進捗 (Material)
プルリフレッシュネイティブ UIRefreshControlSwipeRefreshLayout

🧠 モバイルUX心理学(クイックリファレンス)

タッチ用フィッツの法則

デスクトップ: カーソルは正確 (1px)
モバイル:    指は不正確 (~7mm 接触面積)

→ タッチターゲットは最小44-48px必須
→ 重要アクションはサムゾーン内 (画面下部)
→ 破壊的アクションは容易アクセス外

サムゾーン(片手使用)

┌─────────────────────────────┐
│      リーチ困難              │ ← ナビゲーション、メニュー、戻る
│       (ストレッチ)          │
├─────────────────────────────┤
│      リーチ可能              │ ← セカンダリアクション
│       (自然位置)             │
├─────────────────────────────┤
│      容易リーチ              │ ← プライマリ CTA、タブバー
│    (親指の自然弧内)        │ ← メインコンテンツインタラクション
└─────────────────────────────┘
        [  ホーム  ]

モバイル固有認知負荷

デスクトップモバイル差異
複数ウィンドウ一度に一つのタスク
キーボードショートカットタッチジェスチャー
ホバー状態ホバーなし (タップまたは何もなし)
大きいビューポート限定スペース、垂直スクロール
安定した注意常に中断

詳細: touch-psychology.md


⚡ パフォーマンス原則(クイックリファレンス)

React Native 重要ルール

// ✅ 正解: メモ化された renderItem + React.memo ラッパー
const ListItem = React.memo(({ item }: { item: Item }) => (
  <View style={styles.item}>
    <Text>{item.title}</Text>
  </View>
));

const renderItem = useCallback(
  ({ item }: { item: Item }) => <ListItem item={item} />,
  []
);

// ✅ 正解: すべての最適化を伴う FlatList
<FlatList
  data={items}
  renderItem={renderItem}
  keyExtractor={(item) => item.id}  // 安定ID、インデックスではなく
  getItemLayout={(data, index) => ({
    length: ITEM_HEIGHT,
    offset: ITEM_HEIGHT * index,
    index,
  })}
  removeClippedSubviews={true}
  maxToRenderPerBatch={10}
  windowSize={5}
/>

Flutter 重要ルール

// ✅ 正解: const コンストラクタが再構築を防止
class MyWidget extends StatelessWidget {
  const MyWidget({super.key}); // CONST!

  @override
  Widget build(BuildContext context) {
    return const Column( // CONST!
      children: [
        Text('静的コンテンツ'),
        MyConstantWidget(),
      ],
    );
  }
}

// ✅ 正解: ValueListenableBuilder での対象状態
ValueListenableBuilder<int>(
  valueListenable: counter,
  builder: (context, value, child) => Text('$value'),
  child: const ExpensiveWidget(), // 再構築されない!
)

アニメーションパフォーマンス

GPU加速化 (高速):     CPU結合 (低速):
├── transform         ├── width、height
├── opacity           ├── top、left、right、bottom
└── (これらのみ使用)  ├── margin、padding
                      └── (これらをアニメートしない)

完全ガイド: mobile-performance.md


📝 チェックポイント(モバイル作業前に必須)

モバイルコードを書く前に、このチェックポイントを完了する必要があります:

🧠 チェックポイント:

プラットフォーム:   [ iOS / Android / 両方 ]
フレームワーク:     [ React Native / Flutter / SwiftUI / Kotlin ]
読むファイル:       [ 読んだスキルファイルのリスト ]

適用する3つの原則:
1. _______________
2. _______________
3. _______________

回避するアンチパターン:
1. _______________
2. _______________

例:

🧠 チェックポイント:

プラットフォーム:   iOS + Android (クロスプラットフォーム)
フレームワーク:     React Native + Expo
読むファイル:       touch-psychology.md、mobile-performance.md、platform-ios.md、platform-android.md

適用する3つの原則:
1. すべてのリストで FlatList + React.memo + useCallback
2. 48px タッチターゲット、プライマリ CTA はサムゾーン
3. プラットフォーム固有ナビゲーション (iOS エッジスワイプ、Android バックボタン)

回避するアンチパターン:
1. ScrollView リスト → FlatList
2. インライン renderItem → メモ化
3. AsyncStorage トークン → SecureStore

🔴 チェックポイント記入できない? → スキルファイルに戻って読んでください。


🔧 フレームワーク決定ツリー

何を構築していますか?
        │
        ├── OTA更新 + 高速反復 + ウェブチーム必要
        │   └── ✅ React Native + Expo
        │
        ├── ピクセルパーフェクトカスタムUI + パフォーマンス重視
        │   └── ✅ Flutter
        │
        ├── ディープなネイティブ機能 + シングルプラットフォームフォーカス
        │   ├── iOSのみ → SwiftUI
        │   └── Androidのみ → Kotlin + Jetpack Compose
        │
        ├── 既存RNコードベース + 新機能
        │   └── ✅ React Native (ベアワークフロー)
        │
        └── エンタープライズ + 既存Flutterコードベース
            └── ✅ Flutter

完全な決定ツリー: decision-trees.md


📋 開発前チェックリスト

モバイルプロジェクト開始前に

  • プラットフォーム確認済み? (iOS / Android / 両方)
  • フレームワーク選択済み? (RN / Flutter / ネイティブ)
  • ナビゲーションパターン決定済み? (タブ / スタック / ドロワー)
  • 状態管理選択済み? (Zustand / Redux / Riverpod / BLoC)
  • オフライン要件明確?
  • 初日からディープリンク計画済み?
  • 対象デバイス定義済み? (スマートフォン / タブレット / 両方)

すべてのスクリーン前に

  • タッチターゲット ≥ 44-48px?
  • プライマリ CTA がサムゾーン内?
  • ローディング状態が存在?
  • リトライありのエラー状態が存在?
  • オフライン処理を検討?
  • プラットフォーム規約に従順?

リリース前に

  • console.log 削除済み?
  • 機密データに SecureStore 使用?
  • SSL ピニング有効?
  • リストが最適化済み (memo、keyExtractor)?
  • アンマウント時メモリクリーンアップ?
  • ロウエンドデバイスでテスト済み?
  • すべてのインタラクティブ要素にアクセシビリティラベル?

📚 参照ファイル

特定領域のより詳しいガイダンス:

ファイル使用時期
mobile-design-thinking.md最初! 暗記排除、コンテキストベース思考を強制
touch-psychology.mdタッチインタラクション、フィッツの法則、ジェスチャー設計を理解
mobile-performance.mdRN/Flutter最適化、60fps、メモリ/バッテリー
platform-ios.mdiOS固有設計、HIG準拠
platform-android.mdAndroid固有設計、Material Design 3
mobile-navigation.mdナビゲーションパターン、ディープリンク
mobile-typography.mdタイプスケール、システムフォント、アクセシビリティ
mobile-color-system.mdOLED最適化、ダークモード、バッテリー
decision-trees.mdフレームワーク、状態、ストレージ決定

忘れずに: モバイルユーザーは急いで、中断され、小さい画面で不正確な指を使っています。最悪条件向け設計: 悪いネットワーク、片手、日差し、低バッテリー。そこで機能すれば、どこでも機能します。

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
davila7
リポジトリ
davila7/claude-code-templates
ライセンス
MIT
最終更新
不明

Source: https://github.com/davila7/claude-code-templates / ライセンス: MIT

関連スキル

汎用ソフトウェア開発⭐ リポ 39,967

doubt-driven-development

重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 1,175

apprun-skills

TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。

by yysun
OpenAIソフトウェア開発⭐ リポ 797

desloppify

コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。

by Git-on-my-level
汎用ソフトウェア開発⭐ リポ 39,967

debugging-and-error-recovery

テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

test-driven-development

テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

incremental-implementation

変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。

by addyosmani
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: davila7 · davila7/claude-code-templates · ライセンス: MIT