mcpField
E
expo-ios-screen-scaffolder

expo-ios-screen-scaffolder

github.com/pproencaデザイン・UI218124 回インストール11 週間前に更新
リポジトリ

expo-ios-screen-scaffolder について

Expo iOS Screen Scaffolder は、Expo Router アプリ向けのパラメーター付き画面テンプレートを提供します。iOS のルートやレイアウトを追加する開発者向けで、一般的な画面形式を扱い、各テンプレートが従うルールも示します。

主な機能

  1. 016 種類の画面テンプレート
  2. 02ルートや画面値のプレースホルダー
  3. 03ネイティブナビゲーションとセーフエリアのパターン
  4. 04リスト、フォーム、シート、設定画面
  5. 05生成ファイルに expo-ios-hig ルールを明記

活用シーン

  1. 01iOS のリストや詳細ルートのひな形作成
  2. 02フォームやモーダルシートの作成
  3. 03ネイティブタブやグループ設定の構築
  4. 04既存画面への規約の適用

インストール

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

$npx skills add https://github.com/pproenca/dot-skills --skill expo-ios-screen-scaffolder

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

同梱ファイル

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

config.json
gotchas.md
metadata.json
assets/templates/
detail-screen.tsx.template
form-screen.tsx.template
list-screen.tsx.template
modal-sheet.tsx.template
native-tabs-layout.tsx.template
settings-screen.tsx.template
references/
conventions.md

詳細

Expo iOS 画面スキャフォルダー

HIG に準拠した Expo Router 画面を生成するパラメーター化テンプレートです。すべてのテンプレートは、生成時点でネイティブな画面を作成します。ネイティブナビゲーション、仮想化リスト、セーフエリア、セマンティックカラー、SF Symbols、触覚フィードバック、誠実な空状態を備えているため、新しい画面は後から修正するのではなく、最初から適切な状態で始められます。生成される各ファイルには、準拠する expo-ios-hig のルールが記載されます。

適用するタイミング

ユーザーが次のことを希望する場合に、このスキルを使います。

  • iOS 向け Expo アプリで新しい画面、ルート、レイアウトを作成または追加する
  • リスト、詳細、フォーム、モーダルシート、タブバー、設定画面のスキャフォールドを作成する
  • 新しい Expo 機能を始めるにあたり、最初のコミットからネイティブらしい画面にする
  • 既存の画面を references/conventions.md の規約に準拠させる

使用可能なテンプレート

スキャフォールドを作成するには、テンプレートを読み込み、プレースホルダーを置き換えて、app/ 配下のルートパスに結果を書き込みます。プレースホルダーは単一の波括弧を使います(例:{ScreenName})。リテラルの TSX 波括弧はそのままにします。

テンプレート生成内容プレースホルダー
list-screen.tsx.template大きなタイトルのリスト:FlashList + RefreshControl + 空状態 + 下部セーフエリアのインセット{ScreenName} {Entity} {entity_plural} {Title} {route_path} {sf_symbol}
detail-screen.tsx.templateプッシュ表示される詳細画面:端から端までのスクロール、セマンティックカラー、システム共有ボタン{ScreenName} {Entity} {entity} {entityId}
form-screen.tsx.template作成フォーム:キーボード回避、設定済み入力欄、楽観的保存 + 触覚フィードバック{ScreenName} {Entity} {entity}
modal-sheet.tsx.templateデテント + グラバーと「キャンセル/完了」を備えた formSheet ルート{ScreenName} {Title} {route_name}
native-tabs-layout.tsx.templateSF Symbol アイコンを使ったルート NativeTabs レイアウト(タブごとに繰り返し){tab_name} {Tab_label} {tab_sf_symbol}
settings-screen.tsx.templateグループ化された設定:SectionList + プラットフォーム標準の Switch 行{ScreenName} {Title}

共通のプレースホルダー:

  • {ScreenName} — Screen サフィックスを付けた PascalCase のコンポーネント名。例:TrailsScreen
  • {Entity} / {entity} / {entity_plural} — PascalCase、camelCase、複数形。例:Trail / trail / trails
  • {entityId} — ファイル名に対応する動的ルートパラメーター名([trailId].tsx → trailId)
  • {Title} — ナビゲーションバーのタイトル文字列。例:Trails
  • {route_path} / {route_name} — ナビゲーションに使うルートセグメント
  • {sf_symbol} / {tab_sf_symbol} — Apple の SF Symbols アプリにある SF Symbol 名
  • {file_path} — ヘッダーコメントに記載する出力先パス

使い方

  1. 画面の種類に合ったテンプレートを選びます。
  2. プレースホルダーの値を決めます(上の表と各テンプレート内のヘッダーコメントを参照してください)。
  3. 値を置き換え、ルートパスに書き込みます。例:app/(trails)/index.tsx、app/(trails)/[trailId].tsx。
  4. インポートされた関連機能(use{Entity}List、create{Entity}、…)を実装します。スキャフォールドが担当するのはビュー、データレイヤーはあなたが担当します。
  5. 各テンプレートが適用するルールと、そこから逸脱する場合については、references/conventions.md を読んでください。

セットアップ

config.json は任意です。プロジェクトの設定が異なる場合は、初回使用時に上書きしてください。

  • app_dir — Expo Router のルートディレクトリ(デフォルトは app)
  • components_dir — 共通コンポーネントのディレクトリ(デフォルトは components)
  • list_component — リストテンプレート用の FlashList(デフォルト)または FlatList

関連スキル

  • expo-ios-hig — これらのテンプレートが従うルールです。生成される各ファイルにそのルールが記載されます。
  • expo-ios-hig-verify — スキャフォールドの作成後に実行し、画面がネイティブな状態を保っていることを確認します。

コメント