mcpField
P
platform-conventions

platform-conventions

github.com/owl-listenerデザイン・UI3.1k1.1k 回インストール8 週間前に更新
リポジトリ

platform-conventions について

iOS Human Interface GuidelinesとMaterial Designの規約を適用するデザインスキルです。各プラットフォームのパターンを比較し、ネイティブ、統一、ハイブリッドの方針を選ぶ際に役立ちます。

主な機能

  1. 01iOSとAndroidのナビゲーション比較
  2. 02プラットフォーム固有のコントロールとジェスチャーの整理
  3. 03タイポグラフィとアクセシビリティ規約の適用
  4. 04ネイティブ、統一、ハイブリッドのパターン選択

活用シーン

  1. 01クロスプラットフォームの改修前にナビゲーションを確認
  2. 02共通コンポーネントをiOSとAndroidに対応付け
  3. 03文字の拡大とジェスチャー動作を確認

インストール

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

$npx skills add https://github.com/owl-listener/designer-skills --skill platform-conventions

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

詳細

プラットフォームの慣例

iOS Human Interface Guidelines と Material Design、ならびにプラットフォームネイティブな製品デザインとクロスプラットフォームの製品デザインの間にあるトレードオフに精通しています。

できること

プラットフォームで必須とされる UI パターンを特定し、iOS と Android の重要な違いを整理して、各プラットフォームの慣例に従うべき場合と、統一されたクロスプラットフォームデザインが適切な場合をチームが判断できるよう支援します。

プラットフォームの慣例が重要な理由

ユーザーは時間の大半を OS とネイティブアプリで過ごします。そのため、ナビゲーション、コントロール、操作パターンについて強い筋肉の記憶が形成されます。明確な理由なく製品がプラットフォームの慣例から外れると、ユーザーは製品を使うことよりも、製品の使い方を理解することに認知的な負荷を費やすことになります。

主な違い:iOS(HIG)と Android(Material Design 3)

ナビゲーション
パターンiOSAndroid
戻るナビゲーション左端から右にスワイプ、または左上の戻るボタンシステムの戻るジェスチャー(左右どちらかの端からスワイプ)または予測型の戻る操作、アプリバーの戻る矢印
主な構造画面下部のタブバー、iPad ではサイドバー画面下部のナビゲーションバー、またはナビゲーションドロワー(ハンバーガーメニュー)
ナビゲーション履歴スタック方式。各タブに独自のスタックがありますアプリ全体で単一の戻るスタックを使用します。デフォルトではタブごとに独立した履歴は保持されません
下部ナビゲーション最大 5 個のタブ。ラベルは必須ではありません3~5 個のタブ。ラベルが必要です

デザイン上の留意点:iOS ユーザーは左端からのスワイプで常に戻れることを期待するため、そのジェスチャー領域を確保してください。Android ではシステムの戻るジェスチャーがこの操作を担うため、競合することなく、アプリ内の左端からのスワイプをドロワーに使用できます。

コントロールとコンポーネント
コンポーネントiOS の慣例Android(Material 3)の慣例
トグルスイッチUISwitch — ピル型で、リスト内では右寄せSwitch — サムとトラックで構成され、インラインまたはリスト内に表示できます
破壊的操作の確認画面下部のアクションシートに、赤色の破壊的操作を表示テキストボタン付きダイアログ。破壊的操作には赤色/エラーのトーンを使用
日付/時刻ピッカーホイールピッカー、またはインラインのカレンダーテキスト入力への切り替えが可能なカレンダー
選択メニューホイールピッカーまたはアクションシート展開式ドロップダウンまたはモーダルのボトムシート
プライマリボタン塗りつぶしの長方形。フォーム内では全幅塗りつぶしボタン(M3 ではデフォルトで角丸)
フローティングアクション慣例ではありません。状況に応じたボタンを使用FAB — 主要な画面操作として右下に配置
引っ張って更新ネイティブの UIRefreshControlSwipeRefreshLayout — ジェスチャーは同じで、見た目は異なります
タイポグラフィ
属性iOSAndroid
システムフォントSF Pro(テキスト)/SF Compact(時計)Roboto/Google Sans
Dynamic Type必須 — ユーザーはシステム全体のテキストサイズを調整できますスケーラブルピクセル(sp)— システムのフォントスケールに従う必要があります
文字スタイルiOS のテキストスタイル(Large Title、Title 1–3、Body など)Material の文字スケール(Display、Headline、Title、Body、Label)

どちらのプラットフォームでも、アプリはユーザーが設定したシステムのフォントサイズを尊重する必要があります。拡大縮小されない固定のポイントサイズを使用することは、両プラットフォームでアクセシビリティ上の問題となります。

操作とジェスチャーの慣例
ジェスチャーiOS の動作Android の動作
スワイプして削除テーブルビューで標準スワイプして閉じる/アーカイブする(状況による)
長押しPeek/コンテキストメニュー(iOS 13 以降のコンテキストメニュー)コンテキストアクションモード。長押しで選択
引っ張って更新標準標準
ピンチして拡大マップや画像で標準標準
戻るスワイプ戻る操作専用 — 常に前の画面に戻ります予測型の戻るジェスチャー。アプリはプレビューを表示するよう設定できます
ビジュアルとアイコン
領域iOSAndroid
アイコンライブラリSF Symbols(数千種類、ウェイト可変、自動スケーリング)Material Symbols(丸みのあるスタイル、アウトライン、シャープなスタイル)
角の丸み大きめの「スクワークル」曲線(スーパー楕円)中程度 — Material 3 ではコンポーネントに目立つ丸みを使用
システムカラーダークモード/ライトモードに自動で適応するダイナミックカラーMaterial You のダイナミックカラー — 壁紙から生成
モーダル表示下からスライドして表示されるシート。つまみ付きボトムシート(標準またはモーダル)、または全画面ダイアログ

クロスプラットフォームのデザイン方針

各プラットフォームのガイドラインに厳密に従う場合
  • プラットフォームへの習熟度が品質の重要な指標となる、ネイティブまたはネイティブに近いアプリ(バンキング、ヘルスケア、ユーティリティアプリ)
  • OS 機能(共有シート、ウィジェット、Siri/Google Assistant)と深く連携するアプリ
  • そのプラットフォームに慣れたパワーユーザーが多いアプリ
統一したデザインが適切な場合
  • プラットフォーム間で機能の同等性が高く、デザインの一貫性によって保守コストを削減できる製品
  • デバイス間の継続性が重要な製品(例:ユーザーが iPhone、Android、ウェブの間で切り替えて利用する)
  • ユーザーが OS の操作パターンではなく、主に製品独自のデザインシステムを使う B2B ツール
ハイブリッドアプローチ

ほとんどのクロスプラットフォーム製品では、統一されたビジュアル言語とコンポーネント言語を採用しつつ、ナビゲーション(システムレベルの慣例)、システムコントロール、ジェスチャーの競合にはプラットフォーム固有の調整を加える中間的なアプローチが取られます。製品は独自の見た目を保ちながら、OS の操作に従います。

避けるべきこと

  • スワイプアップ操作と競合するジェスチャーナビゲーションを使う Android で、下部タブバーを使用しないでください
  • iOS のスワイプバックジェスチャーを無効にしないでください — ジェスチャーを実行しても何も起きなければ、ユーザーは戸惑い、信頼を失います
  • 主要な意思決定パターンとして、Android で iOS のアクションシートを使ったり、iOS で Android のダイアログを使ったりしないでください
  • どちらのプラットフォームでも Dynamic Type/SP スケーリングを無視しないでください — テキストサイズの固定はアクセシビリティ上の問題です
  • 正当な理由なく FAB パターンを iOS に持ち込まないでください — iOS にはネイティブの前例がありません

ベストプラクティス

  • 大きなデザインフェーズの開始前に、各プラットフォームの最新ガイドラインを確認してください。iOS HIG と Material 3 はどちらも頻繁に更新されます
  • 解決策を提案する前に、設計対象のインタラクションについて、各プラットフォームのネイティブアプリを調査してください
  • コンポーネント対応表を作成し、デザインシステム、iOS、Android でそれぞれの要素がどう呼ばれるかを記録してください
  • プラットフォームごとに実機でテストしてください — シミュレーターでの動作やジェスチャーの処理は、実機とは異なります
  • プラットフォーム固有のパターンに迷った場合は、OS に標準搭載されているものを使ってください。すでにテストされ、ユーザーにも馴染みがあります

コメント