--- name: expo-ui-jetpack-compose description: expo-ui-jetpack-compose risk: unknown source: community --- --- name: expo-ui-jetpack-compose description: `@expo/ui/jetpack-compose` package lets you use Jetpack Compose Views and modifiers in your app. --- > The instructions in this skill apply to SDK 55 only. For other SDK versions, refer to the Expo UI Jetpack Compose docs for that version for the most accurate information. ## When to Use - You need to build Android-native UI in Expo using `@expo/ui/jetpack-compose`. - The task involves choosing Compose views or modifiers, embedding them in `Host`, or translating Jetpack Compose patterns into Expo UI code. - You are working specifically against Expo SDK 55 behavior for Jetpack Compose integration. ## Installation ```bash npx expo install @expo/ui ``` A native rebuild is required after installation (`npx expo run:android`). ## Instructions - Expo UI's API mirrors Jetpack Compose's API. Use Jetpack Compose and Material Design 3 knowledge to decide which components or modifiers to use. - Components are imported from `@expo/ui/jetpack-compose`, modifiers from `@expo/ui/jetpack-compose/modifiers`. - When about to use a component, fetch its docs to confirm the API - https://docs.expo.dev/versions/v55.0.0/sdk/ui/jetpack-compose/{component-name}/index.md - When unsure about a modifier's API, refer to the docs - https://docs.expo.dev/versions/v55.0.0/sdk/ui/jetpack-compose/modifiers/index.md - Every Jetpack Compose tree must be wrapped in `Host`. Use `` for intrinsic sizing, or `` when you need explicit size (e.g. as a parent of `LazyColumn`). Example: ```jsx import { Host, Column, Button, Text } from "@expo/ui/jetpack-compose"; import { fillMaxWidth, paddingAll } from "@expo/ui/jetpack-compose/modifiers"; Hello ; ``` ## Key Components - **LazyColumn** — Use instead of react-native `ScrollView`/`FlatList` for scrollable lists. Wrap in ``. - **Icon** — Use `` with Android XML vector drawables from [Material Symbols](https://fonts.google.com/icons).