Firebase Remote Config Pada Flutter
Firebase adalah salah satu platform yang sering digunakan untuk membantu proses development untuk web ataupun mobile. Firebase memiliki kurang lebih 19 produk di dalamnya antara lain; Cloud Firestore, Authentication, Crashlytic, dan lain sebagainya. Pada artikel kali ini saya akan membahas salah satu produk dari Firebase yaitu Remote Config.
Firebase Remote Config adalah Cloud Service yang dapat mengubah behavior dan tampilan pada aplikasi yang kita gunakan berdasarkan value di Remote Config tanpa mengharuskan user untuk mengunduh versi terbaru dari aplikasi tersebut. Jika kita menggunakan Remote Config kita dapat membuat sebuah aplikasi yang dapat kita atur sesuai dengan value yang sudah kita tetapkan pada Remote Config sebelumnya. Hal itu berarti, kita dapat mengubah value di Remote Config yang akan mengubah behavior atau tampilan aplikasi kita sesuai dengan pengaturan yang sudah kita siapkan pada code. Perlu diingat, Remote Config tidak bersifat real-time dan secara default memiliki cache selama kurang lebih 12 jam, dengan kata lain dalam waktu 12 jam aplikasi kita akan menggunakan value lokal dan akan mengambil value baru saat waktunya expired dan disimpan ke lokal.
Kasus Penggunaan
Bayangkan, jika kita sudah publish aplikasi mobile tetapi kita ingin mengubah gambar splash screen yang tampil pada aplikasi kita, maka kita harus mengubah code, url dan build aplikasi kita kembali dan selanjutnya kita harus publish kembali aplikasi tersebut. Beruntung jika gambar tersebut kita miliki di backend yang kita buat, tetapi jika kita tidak memilikinya maka Remote Config bisa menjadi alternatif yang mudah dan praktis untuk digunakan dalam contoh kasus ini.
Cara Menambah Value pada Firebase Remote Config
Sebelum masuk ke Remote Config, kita harus melakukan konfigurasi antara aplikasi yang kita gunakan dengan firebase. Untuk cara konfigurasi anatara aplikasi dengan firebase, bisa lihat dari tutorial berikut.
Setelah konfigurasi berhasil, kita bisa memulai menambahkan value pada Remote Config. Pertama, buka Firebase Console dan selanjutnya buka project yang akan kita kerjakan. Kedua, Pada side-panel buka Remote Config. Kita akan mencoba mengimplementasikan Remote Config untuk pengecekan version number untuk platform Android. Pada parameter key kita isi dengan version_code.
Selanjutnya, isi default value 1.0.0 lalu, pilih ‘Add value for condition’ dan create kondisi baru dengan memilih ‘Define new condition’.
Setelah condition ditambahkan, sekarang kita dapat memasukkan value untuk pengaturan tersebut menjadi 1.0.1.
Dan akan terlihat parameter seperti berikut.
Implementasi Remote Config pada Flutter
Pertama kita tambahkan package ke project kita:
firebase_remote_config: ^0.4.0
Untuk mempermudah dalam memberikan contoh implementasinya, kita akan menggunakan future function untuk mengolah instance dari Remote Config. Berikut adalah contoh implementasi dengan menggunakan future function dari Remote Config:
Future < RemoteConfig > setupRemoteConfig() async {
final RemoteConfig remoteConfig = await RemoteConfig.instance;
remoteConfig.setConfigSettings(RemoteConfigSettings(debugMode: true));
remoteConfig.setDefaults( < String, dynamic > {
‘version_number_android’: ‘1.0.0’,
});
try {
// Using default duration to force fetching from remote server.
await remoteConfig.fetch();
await remoteConfig.activateFetched();
}
on FetchThrottledException
catch (exception) {
// Fetch throttled.
print(exception);
} catch (exception) {
print(‘Unable to fetch remote config. Cached or default values will be ‘
‘used’);
}
return remoteConfig;
}Untuk pengecekan versi android kita juga menggunakan future
function juga seperti dibawah iniFuture < bool > _checkAppVersion(RemoteConfig remoteConfig) async {
PackageInfo packageInfo = await PackageInfo.fromPlatform();
String appVersion;appVersion = packageInfo.version;if (Platform.isAndroid) {
if (appVersion == remoteConfig.getString(‘version_number_android’)) {
return true;
}
}
return false;
}Penerapan UI untuk validasi versi number android kita bisa dapatkan dari FutureBuilder dengan hasil
return bool seperti dibawah ini@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text(‘Remote Config Example’),
),
body: Center(
child: FutureBuilder(
future: _checkAppVersion(remoteConfig),
builder: (BuildContext ctx, AsyncSnapshot < bool > snapshot) {
return snapshot.hasData ?
Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisSize: MainAxisSize.max,
children: [
Text(‘Welcome’),
snapshot.data ?
Text(‘Version Number -${snapshot.data}- ${remoteConfig.getString(‘
version_number_android ‘)}’) :
Text(‘You have to update this apps’),
],
) :
Container();
},
),
),
floatingActionButton:
FloatingActionButton(child: const Icon(Icons.refresh), onPressed: () async {}),
);
}
Semoga artikel ini bisa bermanfaat bagi kalian, sampai jumpa di artikel selanjutnya!
Contributor: Bimo Tri Widodo