Expo Nedir?
Expo, React Native üzerine kurulu bir geliştirme platformudur. React Native'in karmaşık native konfigürasyonlarını soyutlayarak çok daha hızlı uygulama geliştirme imkânı sunar. 2026 itibarıyle React Native projeleri için önerilen varsayılan başlangıç noktasıdır.
Expo Workflow'ları
Managed Workflow (Expo Go)
- Sıfır native konfigürasyon
- Expo Go uygulaması ile anlık test
- Expo SDK kütüphaneleri ile hızlı geliştirme
- Sınırlı native modül desteği
Development Build (Önerilen)
- Custom native modüller eklenebilir
- expo-dev-client ile test
- Managed workflow esnekliği + native erişim
- Çoğu proje için ideal seçim
Bare Workflow
- Tam native erişim
- React Native CLI'a yakın deneyim
- Expo modüllerini seçmeli kullanabilirsin
Expo SDK Temel Modülleri
| Modül | Amaç |
|---|---|
| expo-router | Dosya tabanlı navigasyon |
| expo-camera | Kamera erişimi |
| expo-notifications | Push bildirimler |
| expo-image-picker | Görsel seçme |
| expo-secure-store | Güvenli veri saklama |
| expo-location | Konum servisleri |
| expo-av | Ses/video oynatma |
| expo-file-system | Dosya işlemleri |
| expo-in-app-purchases | Uygulama içi satın alma |
| expo-sqlite | Yerel veritabanı |
EAS (Expo Application Services)
EAS Build
- Cloud'da iOS ve Android build alma
- Mac gerekmeden iOS build (CI/CD entegrasyonu)
- Farklı profiller: development, preview, production
- Ücretsiz tier mevcut (sınırlı build sayısı)
EAS Submit
- Store'a otomatik gönderi
- TestFlight ve Play Console entegrasyonu
- Tek komutla dağıtım
EAS Update
- OTA (Over-the-Air) güncellemeler
- Store onayı gerekmeden JS değişiklikleri yayınlama
- Kritik bug fix'ler için hızlı deploy
- Branch ve channel sistemi ile staging/production ayrımı
Expo vs React Native CLI
| Özellik | Expo | RN CLI |
|---|---|---|
| Setup | Dakikalar | Saatler |
| Native modül | expo-modules | Manuel linking |
| iOS build | EAS (Mac gereksiz) | Xcode zorunlu |
| OTA update | EAS Update | CodePush (deprecated) |
| Konfigürasyon | app.json/app.config.js | Xcode + Gradle |
| Yeni modül ekleme | npx expo install | npm + pod install + linking |
Best Practices
- Yeni projelere Expo ile başla (her zaman eject edilebilir)
- Development build kullan (Expo Go sınırlı kalabilir)
- expo-router ile dosya tabanlı navigasyon tercih et
- EAS Build ile CI/CD pipeline kur
- Expo SDK modüllerini native alternatiflere tercih et
- app.config.js kullanarak dinamik konfigürasyon yap
2026 İtibariyle Güncel Durum
- Expo SDK 55+ ile New Architecture varsayılan olarak aktif
- expo-router v4 ile gelişmiş deep linking ve typed routes desteği
- EAS Build M2 Mac'ler ile daha hızlı iOS build süreleri
- Expo Modules API ile custom native modül yazmak kolaylaştı
Expo, React Native'in "should be default" deneyimidir. Yeni projelerde kesinlikle Expo ile başlayın.
2026 Güncel Durum
- Expo SDK 55 (Şubat 2026): React Native 0.83, New Architecture always-on
- Legacy Architecture desteği SDK 55'te tamamen kaldırıldı
- Hermes v1 opsiyonel olarak kullanılabilir
- EAS Build bulut tabanlı derleme için standart yöntem
- EAS Update ile OTA güncelleme desteği
- expo-router v4 ile file-based routing