<AI> 結論から言うと、Swift で Expo は使えます。 かつて「Expo は JavaScript/TypeScript だけで開発するもので、 ネイティブコード(Swift/Kotlin)は触れない」というイメージがありましたが、現在は大きく変わっています。 具体的には、以下の形で Swift を Expo プロジェクトと併用・連携させることができます。 1. Expo Modules API (ネイティブ機能の追加) Expo には「Expo Modules API」という機能があり、 Swift を使って独自のネイティブモジュールを作成し、React Native 側からその機能を利用できます。 Swift 5 などのモダンな言語で書くことができます。 npx create-expo-module コマンドで、Swift のテンプレートを生成できます。 既存の Expo プロジェクトに Swift コードを組み込んで、カスタム機能(独自ビューや特定APIの呼び出し)を追加できます。 2. Custom Native Code (Prebuild) Expo の「Prebuild」機能を使うと、 React Native のプロジェクトを基盤に、Xcode でネイティブの設定(iOS/Swift)をカスタマイズできます。 Expo Go アプリでは使えない、カスタムのネイティブ依存関係がある場合でも、 開発ビルド(Development Builds)を作成することで、Swift コードをネイティブプロジェクトに直接追加できます。 3. Expo UI (SwiftUI の利用) 最新の Expo (SDK 53/54) では、 Expo のアプリから iOS の SwiftUI や Android の Jetpack Compose コンポーネントを直接利用できる 「Expo UI」というライブラリも導入されています。 これにより、React Native のコンポーネントの中で、SwiftUI で書かれたネイティブの UI を動かすことができます。 まとめ 「Swift で Expo」は可能です。 独自の機能を Swift で書き、UI 部分は React Native で開発するという、ハイブリッドな開発手法が推奨されています。 昔の「Eject (Expo からの脱出)」は不要で、Expo の便利なエコシステムを活用しながら Swift のパワーも利用できます。