##開発環境
Xcode: Version 11.3
実機iPhone: iOS 13.1
Firebase: Version 6.14.0
FirebaseRemoteConfig: Version 4.4.6
##やりたいこと
FirebaseのRemoteConfigを使ってLabelの値を変更したい。
初級編では、RemoteConfigを利用してViewControllerのLabelを変更してみようということで以下の画像のように、「Firebase 勉強中!!!」の文字を実際にRemoteConfigを利用して表示させていきます。
RemoteConfig応用編
応用編では、RemoteConfigを利用してモーダルの値を変更してモーダルで表示することをやります。
応用編はこちらをクリック!
#実装の準備
それでは実際に開発してみよう!
今回は、タイトル通りFirebaseを利用するので、XcodeのプロジェクトファイルにFirebaseのライブラリーをインストールしておきましょう!サンプルコードでも、Cocoa Podを利用してFirebaseをインストールする必要があります。Firebaseの設定時に、「GoogleService-Info.plist」をプロジェクトファイルに追加する必要があります。
Firebaseの初期導入がわからない方は、以下の記事を参考にしてください。
Firebaseの初期導入はこちらを参考に!
##RemoteConfigの設定
画像を参考にしながら、FirebaseのRemoteConfigの画面から、任意のパラメータキー(この記事ではtitle_name)とLabelに表示する文字列を入力しよう。
##コーディング
RemoteConfigManagerを作ります。
ここでは、先ほど設定したパラメータキーの名前を変数として代入する
import FirebaseRemoteConfig
class RemoteConfigManager {
static let shared = RemoteConfigManager()
private let remoteConfig = RemoteConfig.remoteConfig()
//初期の値
var titleString: String = "まだデータがありません。"
//パラメータキー
private let titleKey = "title_name"
取得したデータを変数に代入
private func updateVariables() {
//RemoteConfigから取得したデータを入れる。
titleString = remoteConfig[titleKey].stringValue ?? ""
}
インスタンス生成時にRemoteConfigからのデータをfetchする処理
private init() {
remoteConfig.configSettings = RemoteConfigSettings()
updateVariables()
//開発環境の場合は0、本番環境(App Storeに配布する場合)では、は3600(1時間)以上に設定してください。
let expirationDuration = 0
remoteConfig.fetch(withExpirationDuration: TimeInterval(expirationDuration)) {
[weak self] (status, _) in
switch status {
case .success:
self?.remoteConfig.activate(completionHandler: { error in
if let error = error {
print("error:\(error)")
}
self?.updateVariables()
})
case .failure:
print("error: remote config fetch failure")
default: break
}
}
}
最後にViewControlleを開いたタイミングで値をLabelに代入
class ViewController: UIViewController {
@IBOutlet weak var titileLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
titileLabel.text = RemoteConfigManager.shared.titleString
}
##⚠️実装におけるの問題点⚠️
今回の仕組みでは、アプリの初期起動時やRemoteConfigの値変更後のアプリ起動時には、変更した内容は次回起動時以降にUIに反映される仕様です。
##RemoteConfig応用編
応用編では、画像を加えてキャンペーンのようなモーダルを表示させることを紹介します。
応用編はこちらをクリック!
サンプルコードをダウンロードしたい方はGithubをクリックしよう!