<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 のパワーも利用できます。