Generated banner for Expo UI Jetpack Compose
Generated logo for Expo UI Jetpack Compose

Expo UI Jetpack Compose

OpenAIOfficialCreated by Expo TeamDistributed by OpenAI

  • Skill
  • Tool integration
  • Software development
  • MIT
  • No issues found

From the author

`@expo/ui/jetpack-compose` package lets you use Jetpack Compose Views and modifiers in your app.
— the description by Expo Team

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

The expo-ui-jetpack-compose skill provides guidance on using the @expo/ui/jetpack-compose package to incorporate native Jetpack Compose views and modifiers into Expo projects. It outlines the necessary installation steps, including the requirement for a native Android rebuild, and provides patterns for structuring UI trees using the Host component. The skill emphasizes leveraging existing Jetpack Compose and Material Design 3 knowledge while utilizing provided type definitions and documentation to ensure correct API implementation.

What it does

  • Enables the use of Jetpack Compose components and modifiers within Expo apps.
  • Provides a Host component wrapper required for all Jetpack Compose UI trees.
  • Supports the integration of Android XML vector drawables as icons.
  • Offers guidance on replacing standard React Native scrollable lists with LazyColumn.
  • Directs users to specific documentation and type definitions for API verification.

When to use it

  • When you need to integrate native Jetpack Compose UI elements into an Expo Android project.
  • When building scrollable lists that require the performance of LazyColumn.
  • When implementing Material Design 3 components within an Expo environment.
  • When you need to use specific Android XML vector drawables for UI icons.

Advantages

  • Allows for native Android UI performance and look-and-feel within Expo.
  • Mirrors the familiar Jetpack Compose API for developers.
  • Enables direct usage of Material Design 3 components.
  • Provides a structured approach to managing native UI trees in React Native.

Usage examples

“How do I create a basic layout using Jetpack Compose components in Expo?”
You must wrap your components in a Host element. You can then use components like Column and Text, applying modifiers like fillMaxWidth and paddingAll to define the layout.
“How do I add an icon to my Expo app using this package?”
Download an Android XML vector drawable from Material Symbols, save it to your assets folder, and use the Icon component with the source prop pointing to the file.

Install

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/openai/expo-ui-jetpack-compose/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip expo-ui-jetpack-compose.zip -d .agents/skills

Documentation by Expo Team

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), consult current Jetpack Compose and Material Design 3 documentation before implementing.

  • Components are imported from @expo/ui/jetpack-compose, modifiers from @expo/ui/jetpack-compose/modifiers.

  • Always read the .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.

  • 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 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>;

Key Components

  • LazyColumn — Use instead of react-native ScrollView/FlatList for scrollable lists. Wrap in <Host style={{ flex: 1 }}>.

  • Icon — Use <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.

Files

Requirements and compatibility

Written for: OpenAI Codex

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Needs network access, Needs Node.js

Security

No issues found by our static scan· No issues found

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Created by
Expo Team
Publisher
OpenAI (Official)
Distributed by
OpenAI
Source
openai/plugins · plugins/expo/skills/expo-ui-jetpack-compose · commit d420d13
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from plugins/expo/LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Expo Team or OpenAI.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download expo-ui-jetpack-compose.zip