What problem does it solve? Choosing the right React Native UI approach is error-prone: developers reach for Reanimated, @gorhom/bottom-sheet, or RN built-in Pickers when @expo/ui already provides real native SwiftUI and Jetpack Compose equivalents, and they misuse non-virtualized Lists or wrong BottomSheet props. This Skill guides AI agents to build correct native UI with @expo/ui across its universal, drop-in replacement, and platform-specific layers. ## Core Features & Use Cases - Universal components first: Use Host, Column, Row, Button, Text, List, BottomSheet, Switch, Slider, Picker, Menu, and FieldGroup from a single cross-platform API (SDK 56+), with correct props like isPresented/onDismiss for BottomSheet. - Drop-in replacements: Migrate off community libraries (@gorhom/bottom-sheet, datetimepicker, pager-view, slider, and more) via API-compatible imports from @expo/ui/community/<name>. - Platform-specific layers: Build @expo/ui/swift-ui (iOS) and @expo/ui/jetpack-compose (Android) trees with modifiers, RNHostView, and useNativeState, with correct .ios.tsx/.android.tsx file placement outside Expo Router's app/ directory. - Use Case: When adding a map pin detail sheet, use the universal BottomSheet with snapPoints instead of installing @gorhom/bottom-sheet, and use FlatList rather than @expo/ui List for large datasets. ## Quick Start Ask the agent to add a native bottom sheet, settings-style grouped list, or toggle to your Expo app using @expo/ui instead of community libraries.