Proje: Okul B2B App · Hub: Okul B2B App — Decisions

Expo Router File-Based Routing Kararı

Seçim: React Navigation’ın manuel stack/tab konfigürasyonu yerine Expo Router 6 dosya tabanlı routing.

Why:

  • Yeni bir Expo projesi olduğundan Expo Router’ın natif Next.js benzeri routing deneyimi standart hale geldi
  • Tab layout (tabs)/_layout.tsx ile otomatik oluşturulur, her ekran sadece dosya oluşturmakla eklenir
  • typedRoutes: true ile route tip güvenliği sağlanır
  • Deep linking otomatik olarak dosya yapısından türetilir

How to apply:

  • Yeni ekran ekleme: app/ altında .tsx dosyası oluştur
  • Tab’a eklemek için: app/(tabs)/yeni-ekran.tsx + _layout.tsx’e TabBarItem ekle
  • Modal için: Stack.Screen olarak değil, bileşen seviyesinde React Native Modal tercih edilir (tab navigation’ı bozmamak için)

Kısıtlar:

  • Modal/drawer navigasyon için hâlâ Stack.Screen kullanılabilir ama mevcut yaklaşım Component-level Modal
  • Authenticated sayfalar Stack değil, _layout.tsx state ile korunur (AuthFlow, OnboardingScreen)

Versiyon: expo-router ~6.0.15