mcpField
M
mobile-design

mobile-design

github.com/sickn33デザイン・UI48.7k3.7k 回インストール今日更新
リポジトリ

mobile-design について

mobile-designは、プラットフォーム、タッチ操作、性能、オフライン対応、アクセシビリティ、安全性を考慮したモバイルアプリ設計・実装向けスキルです。既存プロジェクトの規約を保ちながら、対象を絞った変更を支援します。

主な機能

  1. 01プラットフォーム別の設計チェック
  2. 02タッチ操作とアクセシビリティの指針
  3. 03性能とバッテリーへの配慮
  4. 04オフラインとバックエンドの指針
  5. 05モバイルセキュリティ対策
  6. 06ソース監査補助ツール

活用シーン

  1. 01モバイル操作の変更レビュー
  2. 02iOSやAndroidの動作計画
  3. 03アプリの性能リスク確認
  4. 04モバイルソースパターンの監査

インストール

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

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill mobile-design

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

同梱ファイル

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

mobile-navigation.md
decision-trees.md
mobile-typography.md
mobile-debugging.md
mobile-backend.md
mobile-design-thinking.md
mobile-testing.md
mobile-performance.md
mobile-color-system.md
platform-ios.md
platform-android.md
touch-psychology.md
scripts/
test_mobile_audit_review.py
mobile_audit.py

詳細

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

(モバイルファースト・タッチファースト・プラットフォームを尊重)

理念: タッチファースト。バッテリーに配慮。プラットフォームを尊重。オフライン対応。 基本原則: モバイルは小さなデスクトップではありません。 運用ルール: まず制約を考え、見た目はその次です。

このスキルは、モバイルアプリの設計や開発におけるデスクトップ中心の考え方、AI のデフォルト設定、安全でない前提を防ぐためのものです。


1. 範囲とリスク

既存のプロジェクトやプラットフォームの要件を使用し、その規約を維持してください。 実装に影響する不足情報についてのみ質問してください。対象を絞った修正のために、 ヒアリングやフレームワークの切り替えを必須にしてはいけません。以前の MFRI スコアは、 次元や範囲に一貫性がない未検証のヒューリスティックであり、安全性やリリースの判定基準ではありません。 代わりに、具体的なインタラクション、データ、アクセシビリティ、パフォーマンスのリスクを記録してください。

2. 関連するチェック項目を選ぶ

新しいアプリでは、プラットフォーム、フレームワーク、対象ユーザー、デバイスの種類、ナビゲーション、 オフライン要件、実際の出力を確認してください。既存の作業では、そのコンテキストを再利用してください。 変更する動作に必要な参考資料だけを読んでください。ユーザーの範囲指定とリポジトリの指示は、 このスキルが提案する手順より優先されます。

3. 必須の参考資料の確認(必須)

参考資料一覧(タスクに必要なものを確認)
ファイル目的ステータス
mobile-design-thinking.md暗記の防止、コンテキストの明確化コンテキスト資料
touch-psychology.mdフィッツの法則、親指ゾーン、ジェスチャータスクに応じて
mobile-performance.md60fps、メモリ、バッテリータスクに応じて
mobile-backend.mdオフライン同期、プッシュ通知、APIタスクに応じて
mobile-testing.mdデバイスおよび E2E テストタスクに応じて
mobile-debugging.mdネイティブと JS のデバッグタスクに応じて
プラットフォーム固有(条件付き)
プラットフォームファイル
iOSplatform-ios.md
Androidplatform-android.md
クロスプラットフォーム上記の両方

プラットフォーム固有の動作を変更する前に、該当するプラットフォームのガイダンスを確認してください。


4. AI モバイルのアンチパターン(厳禁)

🚫 パフォーマンス上の誤り(絶対に避ける)
❌ 絶対にしないこと理由✅ 必ず行うこと
長いリストに ScrollView を使うメモリの急増FlatList / FlashList / ListView.builder
計測せずに行を頻繁に更新する避けられる処理が発生する可能性ID や状態の更新をプロファイルし、有用な場合に限ってメモ化する
キーにインデックスを使う並べ替え時の不具合安定した ID を使う
JS スレッドのアニメーションカクつきネイティブドライバー / GPU
本番環境で console.log を使うJS スレッドをブロックログを除去する
一律にメモ化が有効だと主張する利点がないまま複雑さが増す可能性プロファイルを行い、対象を絞って最適化する

🚫 タッチと UX に関する誤り
❌ 絶対にしないこと理由✅ 必ず行うこと
タップ領域が小さすぎるタップを外しやすいプラットフォームの論理単位を使う:通常は iOS で 44pt、Android で 48dp
ジェスチャーだけで操作するユーザーを排除するボタンも用意する
読み込み状態を表示しない動作していないように見える明確なフィードバック
エラーから復帰できない行き止まりになる再試行とメッセージ
プラットフォームの慣習を無視する身体で覚えた操作が崩れるiOS ≠ Android

🚫 セキュリティ上の禁忌
❌ 絶対にしないこと理由✅ 常に行うこと
AsyncStorage にトークンを保存する簡単に盗まれるSecureStore / Keychain を使用する
アプリに秘密情報を埋め込む抽出される可能性があるサーバーの秘密情報はサーバーに保管し、ユーザーごとの認証情報は安全に管理する
TLS 検証を無効にするMITM のリスクプラットフォーム標準の TLS を使用し、正当な管理対象の脅威モデルがある場合に限りピンニングを使用する
機密データをログに記録するPII の漏えい秘密情報は絶対にログに記録しない

5. プラットフォームの統一と差異のマトリックス

UNIFY                          DIVERGE
──────────────────────────     ─────────────────────────
Business logic                Navigation behavior
Data models                    Gestures
API contracts                  Icons
Validation                     Typography
Error semantics                Pickers / dialogs
プラットフォームのデフォルト設定
要素iOSAndroid
フォントSF ProRoboto
最小タッチ領域44pt48dp
戻る端からのスワイプシステムの戻る操作
シートボトムシートダイアログ / シート
アイコンSF SymbolsMaterial Icons

6. モバイル UX の心理学(必須)

フィッツの法則(タッチ操作の現実)
  • 指はカーソルとは異なります
  • 正確性は低くなります
  • 精度よりも届きやすさが重要です

ルール:

  • 主要な CTA は親指の届く範囲に配置します
  • 破壊的な操作は離れた位置に配置します
  • ホバーを前提にしません

7. パフォーマンスの指針

React Native(固定高さの例示パターン)
const Row = React.memo(({ item }) => (
  <View><Text>{item.title}</Text></View>
));

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

<FlatList
  data={items}
  renderItem={renderItem}
  keyExtractor={(i) => i.id}
  getItemLayout={(_, i) => ({
    length: ITEM_HEIGHT,
    offset: ITEM_HEIGHT * i,
    index: i,
  })}
/>
Flutter(静的ウィジェットの例)
class Item extends StatelessWidget {
  const Item({super.key});

  @override
  Widget build(BuildContext context) {
    return const Text('Static');
  }
}
  • 可能な限りすべてに const を使用します
  • 対象を絞った再ビルドのみ行います

8. 実装の根拠

対象プラットフォーム、変更した動作、実際に行ったチェックを明記してください。代表的なデバイスとデータでプロファイリングしてください。静的なパターンのスキャンでは、タッチ領域、コントラスト、フレームレート、バッテリー、プラットフォームのナビゲーション、セキュアストレージの動作を測定できません。

9. フレームワークの選択

変更を求められていない限り、既存のスタックを維持してください。新しい作業では、チームの経験、ネイティブ連携、アクセシビリティ、デプロイポリシー、測定されたワークロードの制約を比較してください。Expo OTA はランタイムの互換性とストアポリシーの範囲内に限られます。審査を回避したり、任意のネイティブコードを配信したりすることは許可されません。あらゆる状況で最速または最小となるフレームワークはありません。

10. リリース準備チェックリスト

リリース前
  • プラットフォームの論理単位でタップ領域を確認済み
  • オフライン時の動作に対応済み
  • セキュアストレージを使用済み
  • リストを最適化済み
  • ログを削除済み
  • ローエンドデバイスでテスト済み
  • アクセシビリティラベルを設定済み
  • 具体的なリスクと、実施できなかったチェックを文書化済み

11. 関連スキル

  • frontend-design – ビジュアルシステムとコンポーネント
  • frontend-dev-guidelines – RN/TS アーキテクチャ
  • backend-dev-guidelines – モバイルに適した API
  • error-tracking – クラッシュとパフォーマンスのテレメトリー

最終原則: モバイルユーザーは、気が散りやすく、中断されやすく、せっかちです。通信環境が悪くバッテリー残量が少ない状況で、片手で操作していることもよくあります。 その現実に合わせて設計しなければ、アプリは気づかれないまま失敗します。


使用する場面

このスキルは、概要に記載されたワークフローまたはアクションを実行する場合に適用できます。

制限事項

  • このスキルは、タスクが上記の説明に明確に合致する場合にのみ使用してください。
  • 出力を、環境固有の検証、テスト、専門家によるレビューの代わりとして扱わないでください。
  • 必要な入力、権限、安全上の境界、成功基準が不足している場合は、作業を中断して確認を求めてください。

監査ヘルパーと制限事項

対象プロジェクトのディレクトリで、python scripts/mobile_audit.py . --json を実行してください。 このヘルパーは読み取り専用で、検査範囲が限定されており、参考情報を提供します。プロジェクトのコードをインポートすることはなく、準拠を宣言することもありません。compliant は null です。終了コード 2 は、検査が不完全、またはモバイルソースが検出されなかったことを意味します。ソースパターンのヒントはコメントにも一致する場合があり、複数のファイルにまたがる動作を見落とす場合もあります。編集前に検出結果を検証してください。このカタログのレビューでは、シミュレーター、実機、スクリーンリーダー、GPUでの実行は行っていません。

詳細な確認には、タッチ操作のガイダンス、タイポグラフィ、カラー、ナビゲーション、意思決定を参照してください。コードブロックはバージョンに依存する断片であり、完全性が認定されたアプリではありません。実行前に、最新の API を確認してください。

コメント