expo-ui
この Skill は、`@expo/ui` パッケージを活用し、開発者が React を使用して真のネイティブ UI を構築できるようにします。これには、iOS の SwiftUI と Android の Jetpack Compose が含まれます。クロスプラットフォームのユニバーサルコンポーネント、人気のある React Native コミュニティライブラリのドロップイン代替品、およびプラットフォーム固有の UI ツリーとモディファイアを提供し、ネイティブアプリケーションインターフェースの開発と保守を大幅に簡素化し、ユーザーエクスペリエンスを向上させます。
npx skills add https://github.com/expo/skills --skill expo-uiBefore / After 効果比較
1 组この Skill がない場合、開発者はプラットフォーム固有のネイティブ UI コードを手動で記述するか、機能が限定的で一貫性のないサードパーティの React Native UI ライブラリに依存する必要があり、開発効率が低く、真のネイティブ体験を実現することが困難でした。
この Skill は、SwiftUI と Jetpack Compose をレンダリングするための統一された React インターフェースを提供することで、ネイティブ UI の開発を大幅に簡素化します。開発者はユニバーサルコンポーネントを使用して迅速に構築したり、既存のライブラリをその代替品にシームレスに移行したりできるため、開発効率とアプリケーションのネイティブ感が著しく向上します。
Expo UI (@expo/ui)
@expo/ui renders real native UI from React: SwiftUI on iOS, Jetpack Compose on Android. Start with its universal components (one tree for iOS, Android, and web) and drop to platform-specific SwiftUI/Jetpack Compose only when the universal layer falls short. It also ships drop-in replacements for migrating off RN community UI libraries.
These instructions track the latest Expo SDK. The universal layer requires SDK 56+. Drop-in replacements and the platform-specific layers also exist on SDK 55. For component details on a specific SDK, refer to the Expo UI docs for that version.
Installation
npx expo install @expo/ui
On SDK 56, @expo/ui works in Expo Go, so npx expo start runs it directly — no custom build required. On older SDKs, build a dev client first (npx expo run:ios / npx expo run:android).
Every @expo/ui tree — universal or platform-specific — must be wrapped in Host.
Choosing an approach (read this first)
Work down this list and stop at the first layer that meets the need:
-
Universal components — start here. Import from the
@expo/uiroot. One component tree runs unmodified on iOS, Android, and web from a single source (Compose on Android, SwiftUI on iOS,react-native-web/react-domon web). No platform file splits. →./references/universal.md -
Platform-specific (SwiftUI / Jetpack Compose). Import from
@expo/ui/swift-uior@expo/ui/jetpack-compose. Use only when the universal layer is missing a component or modifier you need, or when you need platform-specific behavior or optimization. Downside: you write two trees and split them into.ios.tsx/.android.tsxfiles (or branch onPlatform.OS) — more code to maintain. →./references/swift-ui.mdand./references/jetpack-compose.md
Already using an RN community UI library? @expo/ui also ships drop-in replacements — API-compatible swaps for popular libraries (@gorhom/bottom-sheet, @react-native-community/datetimepicker, and more), imported from @expo/ui/community/<name>. This is a migration side-path for replacing an existing dependency, not a step in the universal-vs-platform decision above. → ./references/drop-in-replacements.md
References
Consult these resources as needed:
references/
universal.md Universal @expo/ui components and when to use them (SDK 56+)
drop-in-replacements.md API-compatible replacements for RN community UI libraries
swift-ui.md Platform-specific iOS UI: @expo/ui/swift-ui components, modifiers, RNHostView, useNativeState
jetpack-compose.md Platform-specific Android UI: @expo/ui/jetpack-compose components, modifiers, LazyColumn caveat, icons, useNativeState
ユーザーレビュー (0)
レビューを書く
レビューなし
統計データ
ユーザー評価
この Skill を評価