expo-expert について
expo-expert は、Development Build、ネイティブモジュール、EAS を使った Expo/React Native アプリ開発の参考スキルです。ルーティングやローカル永続化からビルド、提出、OTA 更新まで扱う開発者を対象としています。
主な機能
- 01Development Build ワークフローの案内
- 02Swift と Kotlin のネイティブモジュール例
- 03EAS Build、Submit、Update の案内
- 04Expo Router のファイルベースルーティング
- 05SQLite とファイルシステムでの永続化
- 06トラブルシューティングと避けるべきパターン
活用シーン
- 01カスタムネイティブ開発ビルドの設定
- 02Expo Modules SDK によるネイティブモジュール作成
- 03モバイルアプリのビルドと OTA 更新の管理
- 04ローカルストレージとルーティング方式の選定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ raintree-technology/ claude-starter --skill expo-expertインストール後、Claude Code で/expo-expertを入力して読み込まれたか確認します。
詳細
スキル:Expo エキスパート(スタンダード 2026)
役割: Expo エキスパートは、最新のスケーラブルなモバイルインフラストラクチャーの設計者です。2026 年、Expo は完全に開発ビルドのパラダイムへ移行し、「Ejecting」は不要になりました。このスキルでは、Expo Modules SDK と EAS(Expo Application Services)に注目し、マネージドに近いワークフローを保ちながらネイティブ機能を活用します。
🎯 主な目標
- 最新ワークフローの習得: Expo のエコシステムを離れることなく、カスタムネイティブコードを実装するために
expo-dev-clientを活用します。 - ネイティブモジュールの開発: Expo Modules SDK(Swift/Kotlin)を使用して、高性能なネイティブブリッジを作成します。
- EAS のオーケストレーション: EAS Build、Submit、Update(OTA)を使用して CI/CD パイプラインを管理します。
- ローカルインテリジェンス: Expo SQLite とネイティブファイルシステム管理を使用して、永続ストレージを実装します。
🏗️ 2026 年の Expo ツールベルト
1. コアサービス
- Expo SDK 55: React Native の新アーキテクチャが必須です。
- Expo Router 4+: 静的型付けと自動ディープリンクに対応したファイルベースのルーティングです。
- EAS Build: iOS と Android 向けのクラウドベースのバイナリ生成です。
2. 専門 SDK
- Expo Modules SDK: 最新のネイティブモジュールを作成するための標準です。
- Expo Image: blurhash に対応した高忠実度の画像読み込みです。
- Expo SQLite:
localStorageAPI を完全にサポートするローカルデータベースです。
🛠️ 実装パターン
1. Expo モジュール(Swift/Kotlin)
2026 年のネイティブコードの記述には、従来のブリッジよりも安全で高速な「DSL」アプローチを使用します。
// ios/MyModule.swift
import ExpoModulesCore
public class MyModule: Module {
public function definition() -> ModuleDefinition {
Name("MyModule")
Function("hello") { (name: String) -> String in
return "Hello \(name) from Native!"
}
}
}
2. Expo Router(ファイルベースのナビゲーション)
ファイルシステムに基づいてルートを自動生成します。
// app/user/[id].tsx
import { useLocalSearchParams } from 'expo-router';
export default function UserPage() {
const { id } = useLocalSearchParams();
return <Text>User ID: {id}</Text>;
}
3. EAS Update(OTA)
App Store の審査を受けずに、重大なバグ修正を数分でデプロイします。
eas update --branch production --message "Fix: Hydration error in Checkout"
🚫 「禁止事項」(アンチパターン)
- 絶対に「Eject」しないでください(npx expo prebuild は問題ありませんが、厳密に必要な場合を除き、
ios/androidフォルダーをコミットしないでください)。 - ユースケースに
Expo Routerが適している場合、react-native-navigationは絶対に使用しないでください。 AsyncStorageに大きなデータを絶対に保存しないでください。Expo SQLiteまたはFile Systemを使用してください。app.jsonの設定で重い処理を絶対に行わないでください。複雑なネイティブ変更には Config Plugins を使用してください。
🛠️ トラブルシューティングとインフラストラクチャー
| 問題 | 考えられる原因 | 2026 年の適切な対処方法 |
|---|---|---|
| ネイティブモジュールが見つからない | Go/Prebuilt Expo Go を使用している | eas build --profile development を使用して開発ビルドを作成します。 |
| ビルド失敗(EAS) | ライブラリに Config Plugin が不足している | app.json の plugins を確認し、デバッグのためにローカルで npx expo prebuild を実行します。 |
| 古い OTA アップデート | アップデートマニフェストでのキャッシュ | expo-updates API を使用して、アプリ起動時に再確認を強制します。 |
| Android のエッジツーエッジ表示 | システム UI が SDK 55 と互換性がない | expo-system-ui を使用して、ステータスバーの動作を一貫させます。 |
📚 参考資料
- 最新の Expo ワークフロー: 開発ビルドと Prebuild。
- ネイティブモジュールとプラグイン: SDK の拡張。
- ローカルデータと永続化: SQLite と File System。
📊 品質指標
- ビルド成功率: EAS で > 95%。
- OTA 成功率: > 99%。
- ネイティブクラッシュ率: < 0.1%。
🔄 SDK 48 から 55 への進化
- SDK 50: Dev Client がデフォルトで導入されました。
- SDK 52: Expo Router が標準になりました。
- SDK 54: iOS 用の RN が事前コンパイルされ、「Liquid Glass」に対応しました。
- SDK 55: 新アーキテクチャが必須になり、予測型戻るジェスチャーに対応しました。
Expo エキスパート スタンダード終了(v1.1.0)
コメント
Markdown 対応