Firebase tarafından sunulan ücretsiz özelliklerden biri olan Remote Config’i gelin Flutter da nasıl kullanıcağımızı inceleyelim.
Remote Config te ne?
Bir uygulama yaptınız ve Google Playde veya Appstore da yayımladınız.Yayımlanmadan önce uygulamanız bir onay mekanizmasından geçti ve kullanıcılarınıza gecikmeli olarak ulaştı.Peki durum acil ama ufak bir değişiklik veya kullanıcıya özel , platforma özel bir aktiviteyi belli bir zaman diliminde aktifleştirmek istiyorsunuz.Ya önceden bunu düşünüp uygulama içerisine belli tarihte bu özelliklerin aktif olacağını belirtmelilisiniz veya Remote Config ile bir parametre değişikliği ile kullanıma sunabilirsiniz.Yani dinamik olarak uygulama üzerindeki değişiklikleri UZAKTAN KONFİGURE etmek istiyorsunuz.İşte Remote Config burada devreye giriyor.
Kullandığımız paket Flutter Fire paketlerinden firebase_remote_config olacak
https://pub.dev/packages/firebase_remote_config ,
Paketin kullanım öncesi FlutterFire initilaze etmek gerekecektir.Kurulum zamanla değişebileceği için güncel resmi dökümanı referans alarak kurulumu yapmanızı tavsiye ederim.
https://firebase.flutter.dev/docs/remote-config/usage
Kullanım
Remote Config Arayüzüne erişip key = renkliTema olan bir config tanımlaması yaptık.Bu tanımlamayı platform ve ülke gibi parametrelerine göre değişebilecek şekide tanımlayabiliriz.
Yapılan tanımlama ile Android ve Ülkemizden uygulamamızı kullanan kullanıcılar renkliTema görmeyecek şekilde ayarladık.
Flutter tarafına geçiş yapalım
class RemoteConfigFirebaseService extends RemoteConfigBase {
final RemoteConfig remoteConfig = RemoteConfig.instance;
RemoteConfigFirebaseService() {
//Config alınırken varsayılan olarak 1dk timeout a sahiptir
//isteğe bağlı olarak 5sn timeout ayarladık
remoteConfig.settings.fetchTimeout = Duration(seconds: 5);
//Veri alındığında 12 saatlik cache de tutulur.12 saat lik periyodda fetch isteği ile güncel konfig
//alınmaya çalışırlırsa cacheden önceden alınmış config döner.Bu yüzden bu zaman kullanım senaryosuna göre
//azaltılabilir lakin bu durumdada remoteConfig limitine takılırız
remoteConfig.settings.minimumFetchInterval = Duration(seconds: 10);
// remoteConfig.settings.
}
}
@override
Future<bool> getThemeConfig() async {
//remoteConfig init edildiğinden emin olalaım
await remoteConfig.ensureInitialized();
//güncel configleri alalım ve remote config i aktif edeliö
await remoteConfig.fetchAndActivate();
// verimizi alalım
var x = remoteConfig.getBool('renkliTema');
return x;
}
Evet görüldüğü gibi verimizi aldık artık gelen confige göre ayarümüzü değiştirebiliriz.
Kullanımı oldukça kolay olan Remote Config ile sıklıkla değişiklikler yapıcak isek Realtime DB ve Firestore üzerinden işlemlerimizi yapmamız daha uygun olacaktır.Çünkü Remote Config bizi cache ile limitlendirmekte