Remote Config Nedir?
Remote Config, uygulamanın davranışını ve görünümünü store güncellemesi olmadan sunucu tarafından değiştirme imkânıdır. Firebase Remote Config en yaygın örnektir. 2026 itibarıyla feature flag yönetimi, modern mobil uygulama geliştirmenin standart parçası haline gelmiştir.
Feature Flags Nedir?
Kod içinde bir özelliği açma/kapama anahtarı. Uzaktan kontrol ile belirli kullanıcılara veya yüzdelere açılabilir.
Kullanım Alanları
1. Gradual Rollout (Kademeli Yayınlama)
- Yeni özelliği %5 → %25 → %50 → %100 aç
- Sorun çıkarsa anında kapat (kill switch)
- Büyük risk almadan release
- Crash rate ve metrikler izlenerek otomatik rollback
2. A/B Testing
- Farklı varyasyonları farklı kullanıcılara sun
- Remote Config parametresi ile kontrol
- Sonuçları ölç, kazananı uygula
3. Kişiselleştirme
- Ülkeye göre farklı içerik
- Kullanıcı segmentine göre farklı deneyim
- Mevsimsel değişiklikler
4. Kill Switch
- Sorunlu özelliği anında devre dışı bırak
- Hotfix gerekmeden müdahale
- Bakım modu açma/kapama
5. Configuration
- API endpoint değiştirme
- Fiyat güncelleme
- Metin değiştirme
- Tema/renk değiştirme
- Minimum versiyon zorlama (force update)
Araçlar
| Araç | Özellik | Ücret |
|---|---|---|
| Firebase Remote Config | Basit, Google entegre | Ücretsiz |
| LaunchDarkly | Enterprise, güçlü targeting | Pahalı |
| Statsig | A/B + flags, iyi analytics | Free tier var |
| Flagsmith | Open-source | Free / self-host |
| ConfigCat | Basit, ucuz | Free tier var |
| Unleash | Open-source | Free / self-host |
Firebase Remote Config
Kurulum
- Firebase Console'da parametre tanımla
- Default değerleri uygulamada ayarla
- fetch + activate ile güncel değerleri çek
- Parametreleri kodda kullan
Parametre Örnekleri
welcome_message: Karşılama mesajı metnipaywall_enabled: Paywall açık/kapalı (boolean)min_app_version: Minimum desteklenen versiyonpromo_banner_url: Promosyon banner görselifree_trial_days: Ücretsiz deneme süresi (sayı)
Fetch Stratejisi
- Minimum fetch interval: 12 saat (production)
- Development'ta daha sık fetch
- Expiration süresi ayarlanabilir
- Offline durumda cached değerler kullanılır
React Native Implementasyonu
import remoteConfig from '@react-native-firebase/remote-config';
// Default değerler
await remoteConfig().setDefaults({
paywall_enabled: true,
free_trial_days: 7,
welcome_message: 'Hoş geldiniz!'
});
// Fetch ve activate
await remoteConfig().setConfigSettings({
minimumFetchIntervalMillis: 3600000 // 1 saat
});
await remoteConfig().fetchAndActivate();
// Değer okuma
const paywallEnabled = remoteConfig().getValue('paywall_enabled').asBoolean();
const trialDays = remoteConfig().getValue('free_trial_days').asNumber();
Feature Flag Best Practices
Yaşam Döngüsü
- Oluştur: Yeni özellik için flag tanımla
- Geliştir: Flag arkasında kodu yaz
- Test et: Flag açık/kapalı durumları test et
- Yayınla: Gradual rollout ile aç
- Temizle: Özellik %100 açıldıktan sonra flag'i koddan kaldır
Temizlik Önemli
- Eski flag'ler teknik borç yaratır
- Kullanılmayan flag'leri düzenli temizle
- Flag sayısını minimum tut
- Sprint başına flag temizliği planla
Adlandırma
- Tutarlı naming convention:
feature_[özellik_adı] - Boolean flag'ler:
is_[özellik]_enabled - Açıklama ekle (ne işe yarıyor, ne zaman kaldırılacak)
Platform Farkları
- iOS: App Store review süreci uzun → Remote Config ile hızlı müdahale kritik
- Android: Daha hızlı review ama staged rollout ile benzer avantaj
- Her ikisinde: Force update mekanizması Remote Config ile yönetilebilir
Remote Config, "acil durum" aracınızdır. Store review beklmeden anında müdahale edebilirsiniz. İlk günden entegre edin.