What problem does it solve? Choosing the right UI approach in an Expo app is confusing: developers often reach for Reanimated, @gorhom/bottom-sheet, or React Native built-ins when @expo/ui already provides real native SwiftUI and Jetpack Compose components. This Skill guides you to the correct @expo/ui layer and prevents common mistakes like using the wrong BottomSheet props or placing platform-specific files inside Expo Router routes. ## 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+). - Drop-in replacements: Migrate off community libraries like @gorhom/bottom-sheet, @react-native-community/datetimepicker, and @react-native-picker/picker via API-compatible @expo/ui/community imports. - Platform-specific layers: Build SwiftUI trees on iOS and Jetpack Compose trees on Android when universal components are insufficient, with correct .ios.tsx/.android.tsx file placement. - Component discovery script: Run list-components.js against a project's node_modules to enumerate the exact components and modifiers available in the installed @expo/ui version. - Use Case: You need a slide-up detail sheet for a map screen. Instead of installing @gorhom/bottom-sheet, use the universal BottomSheet with isPresented/onDismiss and snapPoints, wrapped in Host. ## Quick Start Ask the AI to build a settings screen or bottom sheet using @expo/ui universal components instead of React Native built-ins or community libraries.