About

Expertise

Services

Case Studies

EN

English

MENU

MENU

React Native ile Expo: Expo Go, Development Build ve EAS Rehberi 2026

React Native projesinde Expo Go, Development Build ve EAS arasında nasıl seçim yaparsınız? Managed Workflow, Bare Workflow, New Architecture ve performans optimizasyonu için güncel rehber.

Türkçe

Giriş

React Native ile mobil uygulama geliştirmeye başlarken karşınıza çıkan ilk soru artık "Expo mu, React Native CLI mi?" değil. React Native'in kendi dokümantasyonu 2024 itibarıyla Expo'yu birincil geliştirme yolu olarak öneriyor. Bu yazıda "Expo mu CLI mi?" sorusunu bir kenara bırakıp, Expo ekosisteminin nasıl çalıştığını, hangi aracın hangi durumda doğru seçim olduğunu ve modern React Native projelerinde neler değiştiğini ele alacağız.

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 Build, EAS Update ve EAS Submit ne işe yarar?

EAS, Expo projelerinin build ve deployment altyapısıdır. Üç temel servisten oluşur:

EAS Build, uygulamanızın iOS ve Android build'lerini Expo'nun cloud altyapısında oluşturur. Yerel makineye Xcode veya Android Studio kurmanıza gerek kalmaz. iOS build için Mac zorunluluğunu ortadan kaldırması özellikle küçük ekipler için büyük avantaj.

EAS Update, App Store veya Play Store sürecinden geçmeden JavaScript katmanındaki güncellemeleri kullanıcılara iletmenizi sağlar. UI değişiklikleri, metin düzeltmeleri veya küçük özellik eklemeleri için store onay sürecini beklemek zorunda kalmazsınız.

EAS Submit, oluşturulan build'i App Store ve Play Store'a otomatik olarak gönderir. Manuel upload adımlarını ortadan kaldırır.

EAS kurulumu ve yapılandırması hakkında daha fazla detay için EAS ile Mobil Uygulama Geliştirme yazımıza 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 hâlâ 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.

React Native

Expo

Mobile App Development

EAS

Development Build

HQ

Maslak Mah. AOS 55. Sok.
B Blok Apt. No: 4 / 542
Sarıyer / İstanbul 34475

R&D

Üniversite Mah. Sarıgül Sok.
No: 37 / 1 İç Kapı No: 91
Avcılar / İstanbul 34320

© 2026 - All rights reserved

Got a product to build?

START A PROJECT

HQ

Maslak Mah. AOS 55. Sok.
B Blok Apt. No: 4 / 542
Sarıyer / İstanbul 34475

R&D

Üniversite Mah. Sarıgül Sok.
No: 37 / 1 İç Kapı No: 91
Avcılar / İstanbul 34320

© 2026 - All rights reserved

Got a product to build?

START A PROJECT

HQ

Maslak Mah. AOS 55. Sok. B Blok Apt. No: 4 / 542
Sarıyer / İstanbul 34475

R&D

Üniversite Mah. Sarıgül Sok. No: 37 / 1 İç Kapı No: 91 Avcılar / İstanbul 34320

© 2026 - All rights reserved

Got a product to build?

START A PROJECT