mcpField
E
expo-ui-jetpack-compose

expo-ui-jetpack-compose

github.com/expo開発3.5k12.8k 回インストール今日更新
リポジトリ

expo-ui-jetpack-compose について

Expo SDK 55 向けの Jetpack Compose 開発スキルです。`@expo/ui` の Compose コンポーネントやモディファイアを扱い、型定義とドキュメントで API を確認する方法を示します。

主な機能

  1. 01`@expo/ui` の Compose API の利用
  2. 02`Host` による Compose ツリーのラップ
  3. 03`.d.ts` 型定義とドキュメントの確認
  4. 04スクロールリスト向け `LazyColumn` の利用
  5. 05XML ベクター drawable によるアイコン追加

活用シーン

  1. 01Expo アプリでの Compose インターフェース構築
  2. 02コンポーネントやモディファイアの API 確認
  3. 03スクロールリストと Material アイコンの実装

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/expo/skills --skill expo-ui-jetpack-compose

インストール後、Claude Code で/expo-ui-jetpack-composeを入力して読み込まれたか確認します。

同梱ファイルagents/openai.yaml

詳細

このスキルの手順は SDK 55 のみに適用されます。他の SDK バージョンについては、最も正確な情報を確認するため、そのバージョンの Expo UI Jetpack Compose ドキュメントを参照してください。

インストール

npx expo install @expo/ui

インストール後にネイティブの再ビルドが必要です(npx expo run:android)。

手順

  • Expo UI の API は Jetpack Compose の API を反映しています。Jetpack Compose と Material Design 3 の知識を活用して、使用するコンポーネントや修飾子を決定してください。Jetpack Compose または Material 3 について、より詳しいガイダンス(例:どのコンポーネントを選ぶか、レイアウトパターン、テーマ設定)が必要な場合は、サブエージェントを起動して Jetpack Compose と Material Design 3 のベストプラクティスを調査させてください。
  • コンポーネントは @expo/ui/jetpack-compose から、修飾子は @expo/ui/jetpack-compose/modifiers からインポートします。
  • コンポーネントや修飾子を使用する前に、必ず .d.ts 型ファイルを読んで正確な API を確認してください。 node -e "console.log(path.dirname(require.resolve('@expo/ui/jetpack-compose')))" を実行してパッケージの場所を特定し、該当する {ComponentName}/index.d.ts ファイルを読んでください。これが最も信頼できる情報源です。
  • コンポーネントを使用する際は、ドキュメントを取得して API を確認してください:https://docs.expo.dev/versions/v55.0.0/sdk/ui/jetpack-compose/{component-name}/index.md
  • 修飾子の API が不明な場合は、ドキュメントを参照してください:https://docs.expo.dev/versions/v55.0.0/sdk/ui/jetpack-compose/modifiers/index.md
  • すべての Jetpack Compose ツリーは Host でラップする必要があります。固有サイズには <Host matchContents> を、明示的なサイズが必要な場合(例:LazyColumn の親として使用する場合)には <Host style={{ flex: 1 }}> を使用してください。例:
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>;

主なコンポーネント

  • LazyColumn — スクロール可能なリストには、react-native の ScrollView/FlatList の代わりに使用してください。<Host style={{ flex: 1 }}> でラップします。
  • Icon — Android XML ベクター drawable を使って <Icon source={require('./icon.xml')} size={24} /> を使用してください。アイコンを取得するには、Material Symbols にアクセスし、アイコンを選択して Android プラットフォームを選び、XML ベクター drawable をダウンロードします。これらはプロジェクトの assets/ ディレクトリ(例:assets/icons/wifi.xml)に .xml ファイルとして保存してください。Metro は .xml アセットを自動的にバンドルするため、Metro の設定変更は不要です。

コメント