mcpField
E
expo-ui

expo-ui

github.com/pproenca開発220133 回インストール11 週間前に更新
リポジトリ

expo-ui について

Expoの`@expo/ui/swift-ui`とmodifier APIでiOS画面を構築するエージェント向けのリファレンススキルです。Hostの設定、レイアウト、コントロール、iOS 26の構成を優先度別のルールでまとめています。

主な機能

  1. 018カテゴリにわたる53のルール
  2. 02Hostとmodifierの使用指針
  3. 03レイアウトと入力コントロールのパターン
  4. 04iOS 26の画面構成ガイド

活用シーン

  1. 01ネイティブSwiftUIビューでの画面構築
  2. 02React NativeプリミティブからSwiftUIコンポーネントへの移行
  3. 03`@expo/ui/swift-ui`コードのレビューやデバッグ

インストール

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

$npx skills add https://github.com/pproenca/dot-skills --skill expo-ui

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

同梱ファイル

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

AGENTS.md
gotchas.md
metadata.json
README.md
assets/templates/
_template.md
references/
_sections.md
display-chart-data-points.md
display-gauge-current-value-label.md
display-image-system-name.md
display-label-icon-vs-title.md
display-progress-indeterminate.md
display-text-markdown.md
hig-confirmation-dialog-destructive.md
hig-glass-effect-container.md
hig-no-glass-on-glass.md
hig-no-stacked-modals.md
hig-popover-iphone-fallback.md
hig-sheet-detents-partial.md
hig-tint-only-for-brand.md
host-color-scheme-explicit.md
host-ignore-safe-area.md
host-match-contents.md
host-viewport-size-for-form.md
host-wrap-all-swiftui-roots.md
input-button-role-for-destructive.md
input-button-systemimage.md
input-date-picker-range.md
input-picker-style-via-modifier.md
input-securefield-for-passwords.md
input-stepper-bounded.md

詳細

Expo @expo/ui SwiftUI のベストプラクティス

@expo/ui/swift-ui と @expo/ui/swift-ui/modifiers のライブラリリファレンスです。Expo のネイティブ UI ブリッジにおける iOS 向けの機能を扱います。iOS 26 以前でネイティブ SwiftUI ビューを表示する Expo アプリを構築するエージェント向けに、カスケードの影響度に基づいて優先順位付けされた、8 カテゴリ・53 個のルールをまとめています。

適用する場面

次のような場合に、これらのガイドラインを参照してください。

  • @expo/ui/swift-ui を使って新しい画面を構築する場合 — 適切なコンテナー(Form、List、ScrollView)を選び、Host で正しくラップして、モディファイアを適用します
  • React Native のプリミティブ(View、Text、TouchableOpacity)からネイティブの SwiftUI コンポーネントへ移行する場合
  • iOS 26 の機能(Liquid Glass マテリアル、GlassEffectContainer、新しいシートの detent 動作)を対象にする場合
  • @expo/ui/swift-ui または @expo/ui/swift-ui/modifiers からインポートするコードをレビューする場合
  • 「SwiftUI ビューが表示されない/サイズが違う/スタイルが無視される」といった問題をデバッグする場合 — 通常は Host またはモディファイアに原因があります
  • HIG のモダリティガイダンスに従って、Alert、ConfirmationDialog、BottomSheet、Popover などの表示サーフェスを組み合わせる場合
  • useNativeState と worklet への書き込みを使って、TextField、Toggle、Picker、Slider などの制御された入力を作成する場合

このスキルを使用しない場面

  • Android Jetpack Compose — このスキルの対象は iOS SwiftUI のみです。@expo/ui/jetpack-compose には独自の規約があります
  • ユニバーサル(クロスプラットフォーム)コンポーネント — @expo/ui が公開するコンポーネントは少数です。このスキルの対象はプラットフォーム固有の iOS 向け機能です
  • ナビゲーションのルーティング — スタック/タブのルーティングには expo-router と expo-router/unstable-native-tabs を使用してください。このスキルが扱うのは UI の構成のみです
  • iOS 17 より前のフォールバック — ほとんどのルールは iOS 17 以降を前提としています。Liquid Glass のルールには iOS 26 が必要です

優先度別のルールカテゴリ

優先度カテゴリ影響度プレフィックス
1セットアップと Host の境界CRITICALhost-
2iOS 26 HIG の構成ルールCRITICALhig-
3モディファイアシステムCRITICALmod-
4レイアウトコンポーネントHIGHlayout-
5入力とコントロールHIGHinput-
6ナビゲーションとオーバーレイHIGHnav-
7表示とフィードバックMEDIUM-HIGHdisplay-
8状態と横断的なパターンMEDIUMstate-

クイックリファレンス

1. セットアップと Host の境界(CRITICAL)
2. iOS 26 HIG の構成ルール(CRITICAL)
3. モディファイアシステム(重要)
  • mod-prop-not-style — モディファイアは RN のスタイルではなく、modifiers プロパティを通して適用します
  • mod-composition-order — モディファイアの順序には意味があります。それぞれが前のモディファイアをラップします
  • mod-import-from-modifiers-subpath — @expo/ui/swift-ui/modifiers からインポートします
  • mod-frame-vs-fixedsize — frame はサイズを提案し、fixedSize は flex の対象から外します
  • mod-padding-vs-frame — 内側の余白には padding、外側の境界には frame を使います
  • mod-presentation-on-sheet-content — Presentation モディファイアはシートのコンテンツに適用します
  • mod-disabled-prop — disabled モディファイアを使い、条件付きでレンダリングしないようにします
  • mod-animation-wraps-trigger — withAnimation で、状態に応じて変化するプロパティをラップします
4. レイアウトコンポーネント(高)
5. 入力とコントロール(高)
6. ナビゲーションとオーバーレイ(高)
7. 表示とフィードバック(MEDIUM-HIGH)
8. 状態と横断的なパターン(MEDIUM)

使用方法

詳しい説明とコード例については、各リファレンスファイルをお読みください。

各ルールファイルには、次の内容が含まれます。

  • SwiftUI ブリッジで重要となる理由の簡単な説明
  • 現実的なドメインに基づく誤ったコード例
  • 誤った例からの差分を最小限にした正しいコード例
  • 該当する場合:代替アプローチ、使用すべきでないケース、警告の注記、信頼できる参照 URL

注意点

gotchas.md を参照してください。実際の使用で問題点が明らかになったら、項目を追加します。

関連スキル

  • Android Jetpack Compose コンポーネントについては、対応するスキルで @expo/ui/jetpack-compose を対象にします
  • ナビゲーションのルーティング(スタック、タブ)には、expo-router を直接使用します
  • フォーム検証ライブラリについては、react-hook-form スキルを参照してください

コメント