React Native'in konumu
React Native 2015'te Facebook'tan çıktı; 2026'da hâlâ cross-platform mobil için Flutter ile birlikte iki güçlü tercihten biri. AIOR olarak React Native'i tercih ettiğimiz durumlar: web tarafında React kullanılan, ortak ekip ve kod paylaşımı istenen projeler. Geliştirici havuzu Flutter'a göre daha geniş; özellikle frontend ağırlıklı şirketler için doğal seçim.New Architecture — fiili standart oldu
React Native New Architecture (Fabric renderer + TurboModules + JSI) yıllar süren göç döneminden sonra 2024'te stable, 2026'da yeni projelerde varsayılan. Eski Bridge mimarisi terkediliyor.New Architecture'ın getirdikleri:
- JSI (JavaScript Interface) — direct C++ binding, eski Bridge'in JSON serialization overhead'i yok.
- Fabric renderer — daha tutarlı UI tree management, concurrent rendering.
- TurboModules — lazy-loaded native modules, startup süresi iyileşmesi.
- Codegen — TypeScript tiplerinden native modül kod üretimi.
AIOR'da yeni React Native projeleri her zaman New Architecture ile başlatılıyor. Eski projelerin migration'ı 2-4 hafta süre alabilir, dependency uyumluluğu kontrol gerektirir.
Expo — opinionated framework
Expo, React Native üzerine kurulu opinionated bir geliştirme platformu. 2026'da Expo Router (file-based routing) ile birlikte resmi olarak önerilen yaklaşım. AIOR'da yeni React Native projelerinin %85'i Expo ile başlatılıyor.Faydalar:
- Setup süresi dakikalar (CocoaPods kurulum, Xcode/Android Studio yapılandırma derdi yok).
- EAS Build ile cloud build (lokal Xcode/Android Studio gerekmez).
- EAS Update ile over-the-air updates.
- Built-in modules (Camera, Notifications, Location).
Eski "ejected app" sorunsalı artık çözüldü — Expo Prebuild ile native config tutulabiliyor, full native erişimi var.
State management
React Native state management React web ile aynı patterns:- Zustand — AIOR'ın varsayılan tercihi.
- Redux Toolkit + RTK Query — büyük projeler.
- TanStack Query — server state için.
- Context + useReducer — küçük proje yapısı.
Routing — Expo Router
Expo Router 2024'te stable oldu. Next.js benzeri file-based routing. AIOR projelerinde yeni başlangıçlar Expo Router ile; eski projelerde React Navigation kullanmaya devam ediyoruz.Native module geliştirme
Custom native modül yazma ihtiyacı azaldı — Expo modules ekosistemi çoğu native API'yi (BLE, NFC, MediaPipe) zaten kapsıyor. AIOR projelerinde custom native modül yazdığımız durumlar: endüstriyel BLE cihazları, özel sensör entegrasyonu, kurumsal SDK entegrasyonu. Bu durumlarda Expo modules API ile yazıyoruz.Performance — JSI ve Hermes
Hermes (Facebook'un mobil-optimize JavaScript engine'i) 2026'da yeni RN projelerinde varsayılan. V8'e göre daha düşük bellek, hızlı startup. AIOR projelerinde Hermes her zaman aktif.Performans optimizasyonu yaklaşımlarımız:
- FlatList ve SectionList için optimizasyonlar (getItemLayout, keyExtractor, removeClippedSubviews).
- React.memo ve useMemo doğru yerlerde.
- Image — expo-image ile aggressive caching.
- InteractionManager.runAfterInteractions ile heavy işleri animasyon sonrasına ertele.
- Reanimated 3 ile animasyonlar UI thread'de çalıştırılır.
Test stratejisi
- Jest + React Native Testing Library — unit testler.
- Detox veya Maestro — E2E testler.
- Storybook React Native — component görsel testler.
Build ve deploy
EAS Build (Expo cloud) — lokal native toolchain gerektirmez. Build profiles development/preview/production. EAS Submit ile App Store / Play Store otomatik yayın. Self-hosted build'ler gerektiğinde GitHub Actions + macOS runner kombinasyonu.OTA updates (EAS Update) — JavaScript bundle güncellemesi App Store review'dan geçmeden. Native değişiklikler için yeni build gerekli.
Cross-platform paylaşım
React Native + React (web) arasında kod paylaşımı önemli bir avantaj. AIOR'da paylaşılan kod katmanları: API client, validation logic, state management, business logic. UI tarafı platform-specific kalıyor — RN component'leri ve React web component'leri farklı.React Native for Web (Expo Web) bazı durumlarda UI paylaşımı sağlayabiliyor ama AIOR'da bu yaklaşımı sadece prototyping veya internal araçlarda kullanıyoruz; production'da native + web kodbazlarını ayrı tutmayı tercih ediyoruz.
Sonuç
React Native 2026'da New Architecture + Expo ile olgun, üretken bir cross-platform mobil çözümü. AIOR olarak React deneyimi olan ekipler ve web + mobile paralel geliştirme için Flutter'a güçlü alternatif olarak öneriyoruz. Sizin React Native projenizde New Architecture migration tamamlandı mı, yoksa hâlâ eski Bridge üzerinde mi koşuyor?Where React Native stands
React Native came out of Facebook in 2015; in 2026 it's still one of two strong picks for cross-platform mobile alongside Flutter. AIOR picks React Native when the web side uses React and the customer wants shared team and code. The developer pool is broader than Flutter's; for frontend-heavy companies it's the natural choice.New Architecture — became the de facto standard
After a multi-year migration, React Native's New Architecture (Fabric renderer + TurboModules + JSI) reached stable in 2024 and is the default for new projects in 2026. The old Bridge architecture is being retired.What New Architecture brings:
- JSI (JavaScript Interface) — direct C++ binding, no JSON serialization overhead from the old Bridge.
- Fabric renderer — more consistent UI tree management, concurrent rendering.
- TurboModules — lazy-loaded native modules, startup time improvement.
- Codegen — native module code generation from TypeScript types.
AIOR always starts new React Native projects with New Architecture. Migration on legacy projects can take 2–4 weeks and requires dependency compatibility checks.
Expo — opinionated framework
Expo is an opinionated development platform built on React Native. With Expo Router (file-based routing) it's the officially recommended approach in 2026. 85% of new React Native projects at AIOR start with Expo.Benefits:
- Setup time in minutes (no CocoaPods setup, no Xcode/Android Studio configuration hassle).
- EAS Build for cloud build (no local Xcode/Android Studio required).
- EAS Update for over-the-air updates.
- Built-in modules (Camera, Notifications, Location).
The old "ejected app" problem is solved — Expo Prebuild keeps native config, allowing full native access.
State management
React Native state management uses the same patterns as React on the web:- Zustand — AIOR's default.
- Redux Toolkit + RTK Query — for large projects.
- TanStack Query — for server state.
- Context + useReducer — for small project structures.
Routing — Expo Router
Expo Router went stable in 2024. Next.js-style file-based routing. New starts at AIOR use Expo Router; old projects continue with React Navigation.Native module development
The need to write custom native modules has shrunk — the Expo modules ecosystem already covers most native APIs (BLE, NFC, MediaPipe). Cases where we write custom native modules at AIOR: industrial BLE devices, custom sensor integration, enterprise SDK integration. In those cases we write through the Expo modules API.Performance — JSI and Hermes
Hermes (Facebook's mobile-optimised JavaScript engine) is the default in new RN projects in 2026. Lower memory and faster startup than V8. Hermes is always on in AIOR projects.Our performance optimisation approaches:
- FlatList and SectionList tuning (getItemLayout, keyExtractor, removeClippedSubviews).
- React.memo and useMemo in the right places.
- Image — expo-image with aggressive caching.
- Defer heavy work until after animation via InteractionManager.runAfterInteractions.
- Animations on the UI thread via Reanimated 3.
Test strategy
- Jest + React Native Testing Library — unit tests.
- Detox or Maestro — E2E tests.
- Storybook React Native — visual component tests.
Build and deploy
EAS Build (Expo cloud) — no local native toolchain needed. Build profiles development/preview/production. EAS Submit for automatic App Store / Play Store publishing. For self-hosted builds when required, GitHub Actions + macOS runner.OTA updates (EAS Update) — JavaScript bundle updates without going through App Store review. Native changes still need a new build.
Cross-platform sharing
Sharing code between React Native and React (web) is an important advantage. Shared layers at AIOR: API client, validation logic, state management, business logic. The UI side stays platform-specific — RN components and React web components differ.React Native for Web (Expo Web) can enable UI sharing in some cases, but at AIOR we use this only for prototyping or internal tools; in production we keep native and web codebases separate.