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

Remote Config ve Force Update

hooks/useRemoteConfig.ts — Remote Config’den değerleri çeker.

Remote Config Değerleri

{
  apiUrl: string,          // API URL (dinamik)
  forceUpdate: boolean,    // Güncelleme zorla
  maintenanceMode: boolean, // Bakım modu
  maintenanceMessage: string
}

Expo Go vs Production Davranışı

if (isExpoGo || __DEV__) {
  // process.env.EXPO_PUBLIC_API_URL kullan
} else {
  // Firebase Remote Config'den değerleri al
}

Force Update Kontrolü

RemoteConfigService.shouldForceUpdate(currentVersion) → min_app_version ile karşılaştırır.

Not: _layout.tsx’deki isVersionOutdated() fonksiyonu hardcoded MIN_APP_VERSION kullanır, Remote Config’i kullanmaz. Remote Config force update ayrı bir mekanizma.

Maintenance Mode

RemoteConfigService.isMaintenanceMode(){ enabled, message }. Aktifse kullanıcıya bakım mesajı gösterilir.

Mevcut Durum (2026-04-17)

Remote Config entegrasyonu yazılmış ama utils/ApiClient.ts’de TODO olarak bekliyor:

// TODO: Firebase native init yapıldıktan sonra Remote Config aktif edilecek

Şu an tüm ortamlar api.okul.com.tr kullanıyor, Remote Config aktif değil.