From expo
Integrates Jetpack Compose Views, modifiers, and components like LazyColumn and Icon into Expo apps using @expo/ui/jetpack-compose for Android UI in React Native.
npx claudepluginhub expo/skills --plugin expo-deploymentThis skill uses the workspace's default tool permissions.
> 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.
Install and use Jetpack Compose components/modifiers like LazyColumn and Icon in Expo SDK 55 apps via @expo/ui/jetpack-compose, with API and docs guidance.
Builds Android-native UI in Expo SDK 55 using @expo/ui/jetpack-compose for Jetpack Compose views, modifiers, Host embedding, LazyColumn, and Icon.
Provides native Jetpack Compose UI components including LazyColumn scrolling lists and XML vector icons for Android-specific screens in Expo React Native apps.
Share bugs, ideas, or general feedback.
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.
npx expo install @expo/ui
A native rebuild is required after installation (npx expo run:android).
@expo/ui/jetpack-compose, modifiers from @expo/ui/jetpack-compose/modifiers..d.ts type files to confirm the exact API before using a component or modifier. Run node -e "console.log(path.dirname(require.resolve('@expo/ui/jetpack-compose')))" to locate the package, then read the relevant {ComponentName}/index.d.ts files. This is the most reliable source of truth.Host. Use <Host matchContents> for intrinsic sizing, or <Host style={{ flex: 1 }}> when you need explicit size (e.g. as a parent of LazyColumn). Example:import { Host, Column, Button, Text } from "@expo/ui/jetpack-compose";
import { fillMaxWidth, paddingAll } from "@expo/ui/jetpack-compose/modifiers";
<Host matchContents>
<Column verticalArrangement={{ spacedBy: 8 }} modifiers={[fillMaxWidth(), paddingAll(16)]}>
<Text style={{ typography: "titleLarge" }}>Hello</Text>
<Button onPress={() => alert("Pressed!")}>Press me</Button>
</Column>
</Host>;
ScrollView/FlatList for scrollable lists. Wrap in <Host style={{ flex: 1 }}>.<Icon source={require('./icon.xml')} size={24} /> with Android XML vector drawables. To get icons: go to Material Symbols, select an icon, choose the Android platform, and download the XML vector drawable. Save these as .xml files in your project's assets/ directory (e.g. assets/icons/wifi.xml). Metro bundles .xml assets automatically — no metro config changes needed.