Expo Nedir, Expo Go Nedir? React Native ile Expo Rehberi
Expo nedir, Expo Go ne işe yarar, React Native ile ilişkisi ne? Expo mu bare React Native mi sorusuna net cevap ve 2026 karar rehberi.
Türkçe

Kısa cevap: Expo, React Native uygulamalarını daha hızlı geliştirmek, test etmek ve yayınlamak için kullanılan açık kaynak bir framework ve araç setidir. Expo Go ise bu uygulamaları derlemeden, QR kod ile doğrudan telefonunuzda çalıştıran ücretsiz test uygulamasıdır. React Native uygulamanın kendisini yazdığınız framework; Expo onun üzerine kurulu ve React Native dokümantasyonunun da önerdiği geliştirme yoludur.
Ne zaman Expo, ne zaman bare React Native? Yeni projelerin neredeyse tamamında Expo ile başlayın. Expo SDK dışında bir native modül gerektiğinde Development Build kullanın, native klasörlere doğrudan erişmeniz gerektiğinde npx expo prebuild ile Bare Workflow'a geçin. Bare React Native CLI çoğunlukla mevcut bir native uygulamaya React Native eklerken anlamlıdır.
SHFT olarak Domino's, Securitas ve BulutTahsilat gibi projelerde React Native ve Expo ile production'a çıkan mobil uygulamalar geliştiriyoruz. Uygulamanız için deneyimli bir ekip arıyorsanız React Native ile mobil uygulama geliştirme sayfamıza göz atabilirsiniz.
Bu rehberde
Expo Go nedir, nasıl kullanılır?
Expo nedir ve nasıl çalışır?
Expo Go mu, Development Build mi?
Managed ve Bare Workflow farkı
New Architecture projenizi etkiler mi?
EAS ne işe yarar?
React Native CLI ne zaman mantıklı?
Performans ve uygulama boyutu
Expo Go nedir?
Expo Go, React Native uygulamanızı bilgisayarınızda derlemeden doğrudan telefonunuzda çalıştırmanızı sağlayan ücretsiz bir test uygulamasıdır. App Store ve Google Play'den indirilir. Projenizi başlattığınızda terminalde bir QR kod çıkar; bu kodu okuttuğunuzda uygulamanız Expo Go içinde açılır ve kodda yaptığınız her değişiklik anında telefona yansır.
Expo Go nasıl kullanılır?
Telefonunuza App Store ya da Google Play'den Expo Go'yu indirin.
Yeni bir proje oluşturun:
npx create-expo-app@latestProje klasöründe geliştirme sunucusunu başlatın:
npx expo startTerminaldeki QR kodu Android'de Expo Go ile, iOS'ta telefonun kamerasıyla okutun.
Bilmeniz gereken bir sınır var: store'daki Expo Go yalnızca Expo SDK'nın güncel sürümünü destekler. Projeniz eski bir SDK kullanıyorsa ya da Expo SDK dışında bir native modüle ihtiyaç duyuyorsa, aşağıda anlattığımız Development Build'e geçmeniz gerekir.
Expo nedir ve nasıl çalışır?
Expo, React Native üzerine inşa edilmiş bir framework ve araç setidir. Dört ana component'i var:
Expo (framework): Hem iOS hem Android için ortak mantığa sahip React Native uygulamaları geliştirmenizi sağlayan open source framework.
Expo Go: App Store ve Play Store'da herkese açık olan test uygulaması. QR kod ile tarayarak uygulamanızı fiziksel cihazda çalıştırmanızı sağlar. Native kurulum gerektirmez.
Development Build: Expo Go'nun projenize özel versiyonu. Native modüller, config plugin'ler veya özel kütüphaneler gerektiren projelerde Development Build'e geçmeniz gerekir.
EAS (Expo Application Services): Build, deploy ve güncelleme süreçlerini yöneten servis. Expo'nun birincil iş modeli ve modern React Native projelerinin omurgası.
Expo Go mu, Development Build mi: hangisini kullanmalısınız?
Bu iki kavramın farkını anlamak, Expo projelerinde en sık karşılaşılan karışıklığı ortadan kaldırır.
Expo Go, Expo'nun standart SDK'sını içeren hazır bir test ortamıdır. Projeniz yalnızca Expo SDK'sının sunduğu modülleri kullanıyorsa Expo Go yeterlidir. Hızlı başlangıç, ek yapılandırma gerektirmemesi ve QR kod ile anında test imkanı Expo Go'nun en büyük avantajları.
Development Build ise projeye özel bir Expo Go versiyonu oluşturur. Şu durumlarda Development Build gereklidir:
Expo SDK dışında bir native modül kullanıyorsunuz; örneğin özel bir ödeme SDK'sı, Bluetooth veya biyometrik kimlik doğrulama.
Config plugin ile native konfigürasyon değişikliği yapıyorsunuz.
Uygulamanız push notification, background task veya deep link gibi sistem seviyesi özellikler gerektiriyor.
Fintech projelerinde Development Build neredeyse her zaman zorunludur. Biyometrik doğrulama, POS entegrasyonu ve push notification, Expo Go'nun kapsamı dışında kalır.
Managed Workflow ile Bare Workflow arasındaki fark nedir?
Expo'da iki farklı çalışma biçimi var: Managed ve Bare.
Managed Workflow'da iOS ve Android klasörleri yoktur. Yapılandırma app.json veya app.config.js üzerinden yönetilir. Expo sizin yerinize native katmanı yönetir. Native koda doğrudan müdahale gerektirmeyen projeler için idealdir ve geliştirme sürecini önemli ölçüde hızlandırır.
Bare Workflow'a geçmek için expo prebuild komutu kullanılır:
Bu komut iOS ve Android klasörlerini oluşturur; native kodu doğrudan düzenleyebilir hale gelirsiniz. Eski yazılarda bahsedilen "eject" kavramının güncel karşılığı budur. Eject kalıcı ve geri dönüşü zordu; prebuild ise tekrarlanabilir ve CI/CD ortamlarında güvenle kullanılabilir.
Bare Workflow'a geçiş genellikle şu durumlarda gerekir: özel native modül geliştiriyorsunuz, mevcut native bir uygulamayı React Native ile genişletiyorsunuz veya proje çok spesifik platform konfigürasyonları gerektiriyor.
New Architecture nedir, projenizi etkiler mi?
Expo SDK 52 ile birlikte New Architecture varsayılan olarak etkinleştirildi. Bu değişiklik React Native projelerinde performans açısından önemli bir dönüm noktasıdır.
Hermes, Facebook tarafından geliştirilen ve React Native için optimize edilmiş JavaScript engine'dir. Uygulama başlangıç süresini düşürür, bellek kullanımını azaltır ve TTI (Time to Interactive) değerini iyileştirir. Expo projelerinde Hermes artık varsayılan olarak etkin gelir.
JSI (JavaScript Interface), JavaScript ve native katman arasındaki bridge'i ortadan kaldırır. Eski mimaride JS ve native kod birbirleriyle asenkron mesajlar aracılığıyla iletişim kuruyordu; bu durum özellikle animasyon ve real-time data akışında performans sorunları yaratıyordu. JSI ile JS kodu native modüllere senkron ve doğrudan erişebilir hale geldi.
Fabric, React Native'in yeni rendering mimarisidir. UI güncellemelerini daha öngörülebilir ve performanslı hale getirir. Karmaşık liste animasyonları ve concurrent rendering gibi senaryolarda farkı belirgindir.
Yeni bir proje açıyorsanız New Architecture ile başlamak doğru tercih. Mevcut projeyi geçiriyorsanız önce dependency'lerinizin New Architecture uyumluluğunu kontrol edin.
EAS ne işe yarar?
EAS (Expo Application Services), Expo projelerinin cloud tabanlı build, güncelleme ve store'a gönderme altyapısıdır: EAS Build, EAS Update ve EAS Submit. Expo Go geliştirme sırasında test için kullanılır; EAS ise uygulamanızı production'a taşıyan katmandır. Build profilleri, OTA güncelleme ve CI/CD akışının kurulumu için EAS rehberimize bakabilirsiniz.
React Native CLI'yi ne zaman kullanmak mantıklıdır?
Açık söylemek gerekirse: çoğu proje için React Native CLI'yi doğrudan kullanmak artık gerekli değil. Expo'nun Bare Workflow'u, native koda tam erişim sağlarken Expo araçlarını da kullanmaya devam etmenizi sağlar.
React Native CLI'nin hala mantıklı olduğu durumlar:
Mevcut native bir iOS veya Android uygulamasına React Native ekliyorsunuz (brownfield development).
Expo'nun desteklemediği çok spesifik native konfigürasyonlar gerekiyor.
Takımın tamamı native development konusunda deneyimli ve Expo'nun getirdiği katman gereksiz.
Bu durumların dışında Expo ile başlamak ve gerektiğinde Bare Workflow'a geçmek çok daha temiz bir yol.
React Native uygulaması için performans ve uygulama boyutu nasıl optimize edilir?
Expo ile geliştirilen uygulamalar için bazı pratik optimizasyon önerileri:
Gereksiz Expo modüllerini dahil etmeyin. Her eklenen modül uygulama boyutunu artırır. app.json dosyasında yalnızca ihtiyaç duyulan modülleri açık tutun.
Resim ve asset optimizasyonu yapın. Büyük resim dosyalarını sıkıştırın, mümkün olduğunda SVG kullanın. expo-image kütüphanesi native düzeyde caching ve lazy loading sağlar; standart React Native Image component'ine göre belirgin performans avantajı sunar.
Bundle içeriğini analiz edin. npx expo export --dump-sourcemap komutuyla bundle içeriğini analiz edebilir, boyutu şişiren dependency'leri tespit edebilirsiniz.
Lazy loading uygulayın. Ekranları ve ağır component'leri ihtiyaç duyulduğunda yükleyin. Özellikle tab navigator kullanan uygulamalarda başlangıç süresini önemli ölçüde düşürür.
ProGuard ile Android build'ini küçültün. Android için ProGuard kullanarak gereksiz Java kodunu kaldırabilir, uygulama boyutunu azaltabilirsiniz.
Sonuç
React Native ve Expo ekosistemi hızla gelişiyor. 2026 itibarıyla "Expo mu CLI mi?" sorusu yerini büyük ölçüde "Managed mı, Bare mı?" sorusuna bıraktı. Cevap çoğunlukla aynı: önce Managed Workflow ile başlayın, native modül ihtiyacı doğduğunda expo prebuild ile Bare Workflow'a geçin.
New Architecture'ı yeni projelerde varsayılan olarak açık bırakın. EAS Update'i store sürecini beklemeden hızlı iterasyon yapmanız gereken projelerde aktif kullanın. Development Build kurulum maliyeti ilk bakışta yüksek görünse de uzun vadede geliştirme ortamını standartlaştırıyor ve takım içinde tutarlılık sağlıyor.
Production'da React Native
Bu yazıdaki kararları müşteri projelerinde her gün veriyoruz. Domino's Türkiye mobil ekibine kıdemli bir React Native geliştiricisi kattık, Securitas Alarm'ın iki ayrı native uygulamasını tek bir React Native kod tabanına taşıdık. Mobil uygulamanızı React Native ile geliştirmek ya da mevcut uygulamanızı hızlandırmak istiyorsanız mobil uygulama geliştirme sayfamıza göz atabilirsiniz. Mevcut ekibinize senior React Native mühendisi eklemek istiyorsanız dedike yazılım ekibi modelimize de bakabilirsiniz. Framework kararını fintech özelinde Flutter mı React Native mi yazımızda anlattık.
React Native
Expo
Mobile App Development
EAS
Development Build


