What problem does it solve? Choosing and correctly implementing native UI components in Expo apps is error-prone: developers reach for community libraries like @gorhom/bottom-sheet or Reanimated when @expo/ui already provides native equivalents, misuse non-virtualized lists for large datasets, or crash apps by importing platform-specific modules on the wrong OS. ## Core Features & Use Cases - Universal component guidance: Directs you to cross-platform @expo/ui components (Host, Column, Row, Button, Text, List, BottomSheet, Switch, Slider, Picker, FieldGroup) that render SwiftUI on iOS and Jetpack Compose on Android from one tree. - Drop-in replacements: Maps community libraries (@gorhom/bottom-sheet, datetimepicker, pager-view, segmented-control, and more) to API-compatible @expo/ui/community imports for migration. - Platform-specific layers: Provides rules for @expo/ui/swift-ui and @expo/ui/jetpack-compose, including .ios.tsx/.android.tsx file placement outside Expo Router routes and Host wrapping requirements. - Component discovery script: Runs list-components.js against node_modules to enumerate the exact components and modifiers available in the installed @expo/ui version. - Use Case: When adding a slide-up detail sheet to a map screen, use the universal BottomSheet with isPresented/onDismiss instead of installing @gorhom/bottom-sheet. ## Quick Start Ask the agent to add a native bottom sheet, picker, or settings-style list to your Expo app using @expo/ui instead of community libraries.