Technical & DevelopmentIntermediate
expo-ui-jetpack-compose
Jetpack Compose UI components for Expo
Developer Setup
Setup & Installation
bash
npx skills add https://github.com/expo/skills --skill expo-ui-jetpack-composenpx skills add https://github.com/expo/skills --skill expo-ui-jetpack-composeOr paste this URL into your assistant to install:
Overview
What This Skill Does
@expo/ui/jetpack-compose lets you use native Android Jetpack Compose components and Material Design 3 modifiers directly in a React Native/Expo app. It maps the Compose API to JSX so you can render native Android UI trees without writing Kotlin.
Application
When to use this Skill
- Configuring integration settings for custom agent workflows.
- Optimizing query execution and response latency in production.
- Developing clean, standard-compliant implementations for enterprise services.
- Troubleshooting connection timeouts and authentication handshakes.
- Monitoring API rate limits and execution pipelines programmatically.
Documentation
Show Skills.md file
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.
Installation
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. If you need deeper Jetpack Compose or Material 3 guidance (e.g. which component to pick, layout patterns, theming), spawn a subagent to research Jetpack Compose and Material Design 3 best practices.
- Components are imported from
@expo/ui/jetpack-compose, modifiers from@expo/ui/jetpack-compose/modifiers. - Always read the
.d.tstype files to confirm the exact API before using a component or modifier. Runnode -e "console.log(path.dirname(require.resolve('@expo/ui/jetpack-compose')))"to locate the package, then read the relevant{ComponentName}/index.d.tsfiles. This is the most reliable source of truth. - 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<Host matchContents>for intrinsic sizing, or<Host style={{ flex: 1 }}>when you need explicit size (e.g. as a parent ofLazyColumn). 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>;
Lines 1 - 30 of 35
Recommendations