{"id":35,"date":"2026-01-03T17:57:38","date_gmt":"2026-01-03T17:57:38","guid":{"rendered":"https:\/\/meumundomobile.com.br\/?p=35"},"modified":"2026-01-04T18:35:14","modified_gmt":"2026-01-04T18:35:14","slug":"remote-config-kmp-future-flag","status":"publish","type":"post","link":"https:\/\/meumundomobile.com.br\/?p=35","title":{"rendered":"How to implements Remote Config &#8211; future flag in KMP"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1006\" height=\"570\" src=\"https:\/\/meumundomobile.com.br\/wp-content\/uploads\/2026\/01\/remote-config-firebase.png\" alt=\"\" class=\"wp-image-47\" style=\"aspect-ratio:1.7649654360935432;width:496px;height:auto\" srcset=\"https:\/\/meumundomobile.com.br\/wp-content\/uploads\/2026\/01\/remote-config-firebase.png 1006w, https:\/\/meumundomobile.com.br\/wp-content\/uploads\/2026\/01\/remote-config-firebase-300x170.png 300w, https:\/\/meumundomobile.com.br\/wp-content\/uploads\/2026\/01\/remote-config-firebase-768x435.png 768w\" sizes=\"auto, (max-width: 1006px) 100vw, 1006px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Hello guys.<br>If you arrived here I hope this post will be useful. <br>First I will be show how to add future flag using Remote Config &#8211; Firebase.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I hope you have minimal know em native platforms (Android and iOS); remember this post I don&#8217;t use libs what will be facilitate to implementation Firebase Remote Config.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let&#8217;s go; I\u00b4m going this post in three parts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211; Native implementation (basic configs)<br>&#8211; KMP implementation<br>&#8211; Native implementation (iOS configs)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Native implementation<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For the natives platform follow the documentation official.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/firebase.google.com\/docs\/remote-config\/get-started\">https:\/\/firebase.google.com\/docs\/remote-config\/get-started<\/a><br><br>Also lets go use dependency injection in this project.<br>The dependency injection used is Koin; follow the official documentation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/insert-koin.io\/docs\/reference\/koin-mp\/kmp\">https:\/\/insert-koin.io\/docs\/reference\/koin-mp\/kmp<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">KMP implementation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Let&#8217;s remember how to organize the project KMP.<br><br><strong>-Project<br>-Project\/ComposeApp<br>-Project\/ComposeApp\/androidMain<br>-Project\/ComposeApp\/commonMain<br>-Project\/ComposeApp\/iosMain<br>-Project\/iosApp\/iosApp<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">These are the main classes to be created in the project.<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>-Project\/ComposeApp\/androidMain<\/strong>\/pack\/FirebaseRemoteConfigsBridge.kt<br><strong>-Project\/ComposeApp\/androidMain<\/strong>\/pack\/KoinInit.kt<br><strong>-Project\/ComposeApp\/androidMain<\/strong>\/pack\/KoinModuleAndroid.kt<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>-Project\/ComposeApp\/commonMain\/<\/strong>pack\/FirebaseRemoteConfigsBridge.kt<br><strong>-Project\/ComposeApp\/commonMain<\/strong>\/pack\/FirebaseRemoteConfigs.kt<br><strong>-Project\/ComposeApp\/commonMain\/<\/strong>pack\/KoinInit.kt<br><strong>-Project\/ComposeApp\/commonMain\/<\/strong>pack\/KoinModule.kt<br><strong>-Project\/ComposeApp\/commonMain\/<\/strong>pack\/ListItemScreenViewModel.kt<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>-Project\/ComposeApp\/iosMain<\/strong>\/pack\/FirebaseRemoteConfigsBridge.kt<br><strong>-Project\/ComposeApp\/iosMain<\/strong>\/pack\/KoinInit.kt<br><strong>-Project\/ComposeApp\/iosMain<\/strong>\/pack\/KoinModuleAndroid.kt<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>-Project\/iosApp\/iosApp<\/strong>\/SwiftFirebaseRemoteConfig.swift<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We will create the following class inside <strong>&#8220;Project\/ComposeApp\/androidMain&#8221;<\/strong>:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">First we will create MyApplication class and initialize all dependency injection do Android<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#F8F8F2;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>class MyApplication: Application() {\n\n    companion object {\n        @JvmStatic\n        private var instance: MyApplication? = null\n\n        @JvmStatic\n        public final fun getContext(): Context? {\n            return instance\n        }\n    }\n\n    override fun onCreate() {\n        instance = this\n        super.onCreate()\n        KoinInit(androidContext = this@MyApplication)\n    }\n\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FF79C6\">class<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD\">MyApplication<\/span><span style=\"color: #F8F8F2\">: <\/span><span style=\"color: #8BE9FD; font-style: italic\">Application<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">companion<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">object<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #8BE9FD; font-style: italic\">@JvmStatic<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">private<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">var<\/span><span style=\"color: #F8F8F2\"> instance: <\/span><span style=\"color: #8BE9FD; font-style: italic\">MyApplication<\/span><span style=\"color: #F8F8F2\">? <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">null<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #8BE9FD; font-style: italic\">@JvmStatic<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">public<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">final<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">fun<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">getContext<\/span><span style=\"color: #F8F8F2\">(): <\/span><span style=\"color: #8BE9FD; font-style: italic\">Context<\/span><span style=\"color: #F8F8F2\">? {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #FF79C6\">return<\/span><span style=\"color: #F8F8F2\"> instance<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">override<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">fun<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">onCreate<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        instance <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9; font-style: italic\">this<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #BD93F9; font-style: italic\">super<\/span><span style=\"color: #F8F8F2\">.<\/span><span style=\"color: #50FA7B\">onCreate<\/span><span style=\"color: #F8F8F2\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">KoinInit<\/span><span style=\"color: #F8F8F2\">(androidContext <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9; font-style: italic\">this@MyApplication<\/span><span style=\"color: #F8F8F2\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Edit your Manifest adding permissions to access internet and create MyApplication<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#F8F8F2;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?>\n&lt;manifest\n        xmlns:tools=\"http:\/\/schemas.android.com\/tools\"\n        xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\" >\n\n    &lt;uses-permission android:name=\"android.permission.INTERNET\" \/>\n\n    &lt;application\n            android:name=\".demo.MyApplication\"\n            android:allowBackup=\"true\"\n            android:icon=\"@mipmap\/ic_launcher\"\n            android:label=\"@string\/app_name\"\n            android:roundIcon=\"@mipmap\/ic_launcher_round\"\n            android:supportsRtl=\"true\"\n            android:enableOnBackInvokedCallback=\"true\"\n            android:theme=\"@android:style\/Theme.Material.Light.NoActionBar\" tools:targetApi=\"33\">\n        \n        &lt;activity\n                android:exported=\"true\"\n            android:configChanges=\"orientation|screenSize|screenLayout|keyboardHidden|mnc|colorMode|density|fontScale|fontWeightAdjustment|keyboard|layoutDirection|locale|mcc|navigation|smallestScreenSize|touchscreen|uiMode\"\n                android:name=\"br.com.kmp.demo.demo.MainActivity\">\n            &lt;intent-filter>\n                &lt;action android:name=\"android.intent.action.MAIN\"\/>\n\n                &lt;category android:name=\"android.intent.category.LAUNCHER\"\/>\n            &lt;\/intent-filter>\n        &lt;\/activity>\n\n    &lt;\/application>\n\n&lt;\/manifest><\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F8F8F2\">&lt;?<\/span><span style=\"color: #FF79C6\">xml<\/span><span style=\"color: #50FA7B; font-style: italic\"> version<\/span><span style=\"color: #F8F8F2\">=<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F1FA8C\">1.0<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #50FA7B; font-style: italic\"> encoding<\/span><span style=\"color: #F8F8F2\">=<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F1FA8C\">utf-8<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F8F8F2\">?&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">&lt;<\/span><span style=\"color: #FF79C6\">manifest<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B; font-style: italic\">xmlns<\/span><span style=\"color: #FF79C6; font-style: italic\">:<\/span><span style=\"color: #50FA7B; font-style: italic\">tools<\/span><span style=\"color: #F8F8F2\">=<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F1FA8C\">http:\/\/schemas.android.com\/tools<\/span><span style=\"color: #E9F284\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B; font-style: italic\">xmlns<\/span><span style=\"color: #FF79C6; font-style: italic\">:<\/span><span style=\"color: #50FA7B; font-style: italic\">android<\/span><span style=\"color: #F8F8F2\">=<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F1FA8C\">http:\/\/schemas.android.com\/apk\/res\/android<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F8F8F2\"> &gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    &lt;<\/span><span style=\"color: #FF79C6\">uses-permission<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B; font-style: italic\">android<\/span><span style=\"color: #FF79C6; font-style: italic\">:<\/span><span style=\"color: #50FA7B; font-style: italic\">name<\/span><span style=\"color: #F8F8F2\">=<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F1FA8C\">android.permission.INTERNET<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F8F8F2\"> \/&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    &lt;<\/span><span style=\"color: #FF79C6\">application<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #50FA7B; font-style: italic\">android<\/span><span style=\"color: #FF79C6; font-style: italic\">:<\/span><span style=\"color: #50FA7B; font-style: italic\">name<\/span><span style=\"color: #F8F8F2\">=<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F1FA8C\">.demo.MyApplication<\/span><span style=\"color: #E9F284\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #50FA7B; font-style: italic\">android<\/span><span style=\"color: #FF79C6; font-style: italic\">:<\/span><span style=\"color: #50FA7B; font-style: italic\">allowBackup<\/span><span style=\"color: #F8F8F2\">=<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F1FA8C\">true<\/span><span style=\"color: #E9F284\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #50FA7B; font-style: italic\">android<\/span><span style=\"color: #FF79C6; font-style: italic\">:<\/span><span style=\"color: #50FA7B; font-style: italic\">icon<\/span><span style=\"color: #F8F8F2\">=<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F1FA8C\">@mipmap\/ic_launcher<\/span><span style=\"color: #E9F284\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #50FA7B; font-style: italic\">android<\/span><span style=\"color: #FF79C6; font-style: italic\">:<\/span><span style=\"color: #50FA7B; font-style: italic\">label<\/span><span style=\"color: #F8F8F2\">=<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F1FA8C\">@string\/app_name<\/span><span style=\"color: #E9F284\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #50FA7B; font-style: italic\">android<\/span><span style=\"color: #FF79C6; font-style: italic\">:<\/span><span style=\"color: #50FA7B; font-style: italic\">roundIcon<\/span><span style=\"color: #F8F8F2\">=<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F1FA8C\">@mipmap\/ic_launcher_round<\/span><span style=\"color: #E9F284\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #50FA7B; font-style: italic\">android<\/span><span style=\"color: #FF79C6; font-style: italic\">:<\/span><span style=\"color: #50FA7B; font-style: italic\">supportsRtl<\/span><span style=\"color: #F8F8F2\">=<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F1FA8C\">true<\/span><span style=\"color: #E9F284\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #50FA7B; font-style: italic\">android<\/span><span style=\"color: #FF79C6; font-style: italic\">:<\/span><span style=\"color: #50FA7B; font-style: italic\">enableOnBackInvokedCallback<\/span><span style=\"color: #F8F8F2\">=<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F1FA8C\">true<\/span><span style=\"color: #E9F284\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #50FA7B; font-style: italic\">android<\/span><span style=\"color: #FF79C6; font-style: italic\">:<\/span><span style=\"color: #50FA7B; font-style: italic\">theme<\/span><span style=\"color: #F8F8F2\">=<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F1FA8C\">@android:style\/Theme.Material.Light.NoActionBar<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B; font-style: italic\">tools<\/span><span style=\"color: #FF79C6; font-style: italic\">:<\/span><span style=\"color: #50FA7B; font-style: italic\">targetApi<\/span><span style=\"color: #F8F8F2\">=<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F1FA8C\">33<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F8F8F2\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        &lt;<\/span><span style=\"color: #FF79C6\">activity<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                <\/span><span style=\"color: #50FA7B; font-style: italic\">android<\/span><span style=\"color: #FF79C6; font-style: italic\">:<\/span><span style=\"color: #50FA7B; font-style: italic\">exported<\/span><span style=\"color: #F8F8F2\">=<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F1FA8C\">true<\/span><span style=\"color: #E9F284\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #50FA7B; font-style: italic\">android<\/span><span style=\"color: #FF79C6; font-style: italic\">:<\/span><span style=\"color: #50FA7B; font-style: italic\">configChanges<\/span><span style=\"color: #F8F8F2\">=<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F1FA8C\">orientation|screenSize|screenLayout|keyboardHidden|mnc|colorMode|density|fontScale|fontWeightAdjustment|keyboard|layoutDirection|locale|mcc|navigation|smallestScreenSize|touchscreen|uiMode<\/span><span style=\"color: #E9F284\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                <\/span><span style=\"color: #50FA7B; font-style: italic\">android<\/span><span style=\"color: #FF79C6; font-style: italic\">:<\/span><span style=\"color: #50FA7B; font-style: italic\">name<\/span><span style=\"color: #F8F8F2\">=<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F1FA8C\">br.com.kmp.demo.demo.MainActivity<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F8F8F2\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &lt;<\/span><span style=\"color: #FF79C6\">intent-filter<\/span><span style=\"color: #F8F8F2\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                &lt;<\/span><span style=\"color: #FF79C6\">action<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B; font-style: italic\">android<\/span><span style=\"color: #FF79C6; font-style: italic\">:<\/span><span style=\"color: #50FA7B; font-style: italic\">name<\/span><span style=\"color: #F8F8F2\">=<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F1FA8C\">android.intent.action.MAIN<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F8F8F2\">\/&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                &lt;<\/span><span style=\"color: #FF79C6\">category<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B; font-style: italic\">android<\/span><span style=\"color: #FF79C6; font-style: italic\">:<\/span><span style=\"color: #50FA7B; font-style: italic\">name<\/span><span style=\"color: #F8F8F2\">=<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F1FA8C\">android.intent.category.LAUNCHER<\/span><span style=\"color: #E9F284\">&quot;<\/span><span style=\"color: #F8F8F2\">\/&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &lt;\/<\/span><span style=\"color: #FF79C6\">intent-filter<\/span><span style=\"color: #F8F8F2\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        &lt;\/<\/span><span style=\"color: #FF79C6\">activity<\/span><span style=\"color: #F8F8F2\">&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    &lt;\/<\/span><span style=\"color: #FF79C6\">application<\/span><span style=\"color: #F8F8F2\">&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">&lt;\/<\/span><span style=\"color: #FF79C6\">manifest<\/span><span style=\"color: #F8F8F2\">&gt;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Now we will create the class in have connection with Firebase and this class have a implementation of interface in the common project.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#F8F8F2;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>actual class FirebaseRemoteConfigsBridge : FirebaseRemoteConfigs {\n    private val remoteConfig: FirebaseRemoteConfig = Firebase.remoteConfig\n\n    actual override fun fetchAndActivateFirebaseRemoteConfigs(fetchIntervalInSeconds: Double) {\n        val configSettings = remoteConfigSettings {\n            this.fetchTimeoutInSeconds = fetchIntervalInSeconds.toLong()\n        }\n        remoteConfig.setConfigSettingsAsync(configSettings)\n        remoteConfig.fetchAndActivate()\n    }\n\n    actual override fun getRemoteConfigString(key: String): String? {\n        return remoteConfig.getString(key)\n    }\n\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F8F8F2\">actual <\/span><span style=\"color: #FF79C6\">class<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD\">FirebaseRemoteConfigsBridge<\/span><span style=\"color: #F8F8F2\"> : <\/span><span style=\"color: #8BE9FD; font-style: italic\">FirebaseRemoteConfigs<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">private<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">val<\/span><span style=\"color: #F8F8F2\"> remoteConfig: <\/span><span style=\"color: #8BE9FD; font-style: italic\">FirebaseRemoteConfig<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> Firebase.remoteConfig<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    actual <\/span><span style=\"color: #FF79C6\">override<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">fun<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">fetchAndActivateFirebaseRemoteConfigs<\/span><span style=\"color: #F8F8F2\">(fetchIntervalInSeconds: <\/span><span style=\"color: #8BE9FD; font-style: italic\">Double<\/span><span style=\"color: #F8F8F2\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">val<\/span><span style=\"color: #F8F8F2\"> configSettings <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">remoteConfigSettings<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #BD93F9; font-style: italic\">this<\/span><span style=\"color: #F8F8F2\">.fetchTimeoutInSeconds <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> fetchIntervalInSeconds.<\/span><span style=\"color: #50FA7B\">toLong<\/span><span style=\"color: #F8F8F2\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        remoteConfig.<\/span><span style=\"color: #50FA7B\">setConfigSettingsAsync<\/span><span style=\"color: #F8F8F2\">(configSettings)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        remoteConfig.<\/span><span style=\"color: #50FA7B\">fetchAndActivate<\/span><span style=\"color: #F8F8F2\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    actual <\/span><span style=\"color: #FF79C6\">override<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">fun<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">getRemoteConfigString<\/span><span style=\"color: #F8F8F2\">(key: <\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #F8F8F2\">): <\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #F8F8F2\">? {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">return<\/span><span style=\"color: #F8F8F2\"> remoteConfig.<\/span><span style=\"color: #50FA7B\">getString<\/span><span style=\"color: #F8F8F2\">(key)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Don&#8217;t forget to configure dependency injection; follow the examples below:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#F8F8F2;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>actual class KoinInit() {\n\n    constructor(androidContext: Context) : this() {\n        initKoin(androidContext)\n    }\n\n    fun initKoin(androidContext: Context) {\n        val modules = sharedModules() + moduleAndroid()\n        startKoin {\n            androidLogger()\n            androidContext(androidContext = androidContext)\n            modules(modules = modules)\n        }\n    }\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F8F8F2\">actual <\/span><span style=\"color: #FF79C6\">class<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD\">KoinInit<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #50FA7B\">constructor<\/span><span style=\"color: #F8F8F2\">(androidContext: <\/span><span style=\"color: #8BE9FD; font-style: italic\">Context<\/span><span style=\"color: #F8F8F2\">) : <\/span><span style=\"color: #8BE9FD; font-style: italic\">this<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">initKoin<\/span><span style=\"color: #F8F8F2\">(androidContext)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fun<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">initKoin<\/span><span style=\"color: #F8F8F2\">(androidContext: <\/span><span style=\"color: #8BE9FD; font-style: italic\">Context<\/span><span style=\"color: #F8F8F2\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">val<\/span><span style=\"color: #F8F8F2\"> modules <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">sharedModules<\/span><span style=\"color: #F8F8F2\">() <\/span><span style=\"color: #FF79C6\">+<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">moduleAndroid<\/span><span style=\"color: #F8F8F2\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">startKoin<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #50FA7B\">androidLogger<\/span><span style=\"color: #F8F8F2\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #50FA7B\">androidContext<\/span><span style=\"color: #F8F8F2\">(androidContext <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> androidContext)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #50FA7B\">modules<\/span><span style=\"color: #F8F8F2\">(modules <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> modules)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#F8F8F2;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>fun moduleAndroid() = module {\n\n    single&lt;FirebaseRemoteConfigs> { FirebaseRemoteConfigsBridge() }\n    factory {  ListItemScreenViewModel(get&lt;FirebaseRemoteConfigs>() as FirebaseRemoteConfigsBridge) }\n\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FF79C6\">fun<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">moduleAndroid<\/span><span style=\"color: #F8F8F2\">() <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">module<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #50FA7B\">single<\/span><span style=\"color: #F8F8F2\">&lt;<\/span><span style=\"color: #8BE9FD; font-style: italic\">FirebaseRemoteConfigs<\/span><span style=\"color: #F8F8F2\">&gt; { <\/span><span style=\"color: #50FA7B\">FirebaseRemoteConfigsBridge<\/span><span style=\"color: #F8F8F2\">() }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #50FA7B\">factory<\/span><span style=\"color: #F8F8F2\"> {  <\/span><span style=\"color: #50FA7B\">ListItemScreenViewModel<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">get&lt;<\/span><span style=\"color: #F8F8F2\">FirebaseRemoteConfigs<\/span><span style=\"color: #FF79C6\">&gt;<\/span><span style=\"color: #F8F8F2\">() <\/span><span style=\"color: #FF79C6\">as<\/span><span style=\"color: #F8F8F2\"> FirebaseRemoteConfigsBridge) }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">We will create the following class inside <strong>&#8220;Project\/ComposeApp\/iosMain&#8221;<\/strong>:<br>Note: Firebase Remote Config is sended to parameter, this explanation will be below.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#F8F8F2;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>actual class FirebaseRemoteConfigsBridge(private val delegateFirebaseRemoteConfigs: FirebaseRemoteConfigs) :\n    FirebaseRemoteConfigs {\n\n    actual override fun fetchAndActivateFirebaseRemoteConfigs(fetchIntervalInSeconds: Double) {\n        delegateFirebaseRemoteConfigs.fetchAndActivateFirebaseRemoteConfigs(fetchIntervalInSeconds)\n    }\n\n    actual override fun getRemoteConfigString(key: String): String? {\n        return delegateFirebaseRemoteConfigs.getRemoteConfigString(key = key)\n    }\n\n}\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F8F8F2\">actual <\/span><span style=\"color: #FF79C6\">class<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD\">FirebaseRemoteConfigsBridge<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">private<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">val<\/span><span style=\"color: #F8F8F2\"> delegateFirebaseRemoteConfigs: <\/span><span style=\"color: #8BE9FD; font-style: italic\">FirebaseRemoteConfigs<\/span><span style=\"color: #F8F8F2\">) :<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #50FA7B\">FirebaseRemoteConfigs<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    actual <\/span><span style=\"color: #FF79C6\">override<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">fun<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">fetchAndActivateFirebaseRemoteConfigs<\/span><span style=\"color: #F8F8F2\">(fetchIntervalInSeconds: <\/span><span style=\"color: #8BE9FD; font-style: italic\">Double<\/span><span style=\"color: #F8F8F2\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        delegateFirebaseRemoteConfigs.<\/span><span style=\"color: #50FA7B\">fetchAndActivateFirebaseRemoteConfigs<\/span><span style=\"color: #F8F8F2\">(fetchIntervalInSeconds)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    actual <\/span><span style=\"color: #FF79C6\">override<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">fun<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">getRemoteConfigString<\/span><span style=\"color: #F8F8F2\">(key: <\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #F8F8F2\">): <\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #F8F8F2\">? {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">return<\/span><span style=\"color: #F8F8F2\"> delegateFirebaseRemoteConfigs.<\/span><span style=\"color: #50FA7B\">getRemoteConfigString<\/span><span style=\"color: #F8F8F2\">(key <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> key)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Don&#8217;t forget to configure dependency injection in the iOS; follow the examples below:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Note: one passed as a parameter cames iOS native; <\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#F8F8F2;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>@ObjCName(name = \"KoinInit\", exact = true)\n@ExportObjCClass\nactual class KoinInit() {\n\n    fun initKoin(delegateFirebaseRemoteConfigs: FirebaseRemoteConfigs) {\n\n        val modules = sharedModules() + moduleIos(delegateFirebaseRemoteConfigs)\n        startKoin {\n            modules(modules = modules)\n        }.also {\n            koinInstance = it\n        }\n\n    }\n\n}\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #8BE9FD; font-style: italic\">@ObjCName<\/span><span style=\"color: #F8F8F2\">(name <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">&quot;KoinInit&quot;<\/span><span style=\"color: #F8F8F2\">, exact <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">true<\/span><span style=\"color: #F8F8F2\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8BE9FD; font-style: italic\">@ExportObjCClass<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">actual <\/span><span style=\"color: #FF79C6\">class<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD\">KoinInit<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fun<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">initKoin<\/span><span style=\"color: #F8F8F2\">(delegateFirebaseRemoteConfigs: <\/span><span style=\"color: #8BE9FD; font-style: italic\">FirebaseRemoteConfigs<\/span><span style=\"color: #F8F8F2\">) {<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">val<\/span><span style=\"color: #F8F8F2\"> modules <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">sharedModules<\/span><span style=\"color: #F8F8F2\">() <\/span><span style=\"color: #FF79C6\">+<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">moduleIos<\/span><span style=\"color: #F8F8F2\">(delegateFirebaseRemoteConfigs)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">startKoin<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #50FA7B\">modules<\/span><span style=\"color: #F8F8F2\">(modules <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> modules)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }.<\/span><span style=\"color: #50FA7B\">also<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            koinInstance <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> it<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">We will create the following class inside <strong>&#8220;Project\/ComposeApp\/commonMain&#8221;<\/strong>:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#F8F8F2;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>expect class KoinInit<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F8F8F2\">expect <\/span><span style=\"color: #FF79C6\">class<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD\">KoinInit<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#F8F8F2;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>fun sharedModules() = module { }<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FF79C6\">fun<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">sharedModules<\/span><span style=\"color: #F8F8F2\">() <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">module<\/span><span style=\"color: #F8F8F2\"> { }<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#F8F8F2;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>interface FirebaseRemoteConfigs{\n    fun fetchAndActivateFirebaseRemoteConfigs(fetchIntervalInSeconds: Double)\n    fun getRemoteConfigString(key: String): String?\n}\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FF79C6\">interface<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD\">FirebaseRemoteConfigs<\/span><span style=\"color: #F8F8F2\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fun<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">fetchAndActivateFirebaseRemoteConfigs<\/span><span style=\"color: #F8F8F2\">(fetchIntervalInSeconds: <\/span><span style=\"color: #8BE9FD; font-style: italic\">Double<\/span><span style=\"color: #F8F8F2\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fun<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">getRemoteConfigString<\/span><span style=\"color: #F8F8F2\">(key: <\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #F8F8F2\">): <\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #F8F8F2\">?<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#F8F8F2;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>expect class FirebaseRemoteConfigsBridge : FirebaseRemoteConfigs {\n    override fun fetchAndActivateFirebaseRemoteConfigs(fetchIntervalInSeconds: Double)\n    override fun getRemoteConfigString(key: String): String?\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F8F8F2\">expect <\/span><span style=\"color: #FF79C6\">class<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD\">FirebaseRemoteConfigsBridge<\/span><span style=\"color: #F8F8F2\"> : <\/span><span style=\"color: #8BE9FD; font-style: italic\">FirebaseRemoteConfigs<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">override<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">fun<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">fetchAndActivateFirebaseRemoteConfigs<\/span><span style=\"color: #F8F8F2\">(fetchIntervalInSeconds: <\/span><span style=\"color: #8BE9FD; font-style: italic\">Double<\/span><span style=\"color: #F8F8F2\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">override<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">fun<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">getRemoteConfigString<\/span><span style=\"color: #F8F8F2\">(key: <\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #F8F8F2\">): <\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #F8F8F2\">?<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#F8F8F2;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>class ListItemScreenViewModel(\n    private val firebaseRemoteConfigsBridge: FirebaseRemoteConfigsBridge) : BaseViewModel() {\n\n    private val _stateRemoteConfig = MutableStateFlow&lt;RemoteConfigUiState>(RemoteConfigUiState.Loading(step = \"loading\"))\n    val stateRemoteConfig: StateFlow&lt;RemoteConfigUiState> = _stateRemoteConfig\n    var jobRemoteConfig: Job? = SupervisorJob()\n\n    private val _myByteArray = MutableStateFlow&lt;ByteArray>(ByteArray(0))\n    val myByteArray = _myByteArray\n\n    init {\n        firebaseRemoteConfigsBridge.fetchAndActivateFirebaseRemoteConfigs(2.0)\n        viewModelScope.launch {\n            getValueRemoteConfigs()\n        }\n    }\n\n    suspend fun getValueRemoteConfigs() {\n        jobRemoteConfig?.cancel()\n        jobRemoteConfig = viewModelScope.launch {\n        \n            try {\n            \n                _stateRemoteConfig.value = RemoteConfigUiState.Loading(step = \"loading\")\n                val remoteConfigvalue = firebaseRemoteConfigsBridge.getRemoteConfigString(key = \"forteach\").toBoolean()\n                _stateRemoteConfig.value = RemoteConfigUiState.Success(valueRemoteConfig = remoteConfigvalue)\n                delay(100)\n                _stateRemoteConfig.value = RemoteConfigUiState.Loading(step = \"\")\n            \n            }catch (e: Exception){\n                _stateRemoteConfig.value = RemoteConfigUiState.Error(message = \"Error ${e.message}\")\n                delay(100)\n                _stateRemoteConfig.value = RemoteConfigUiState.Loading(step = \"\")\n            }\n            \n        }\n        jobRemoteConfig?.join()\n    }\n\n    sealed class RemoteConfigUiState {\n        data class Loading(val step: String = \"loading\") : RemoteConfigUiState()\n        data class Success(val valueRemoteConfig: Boolean = false) : RemoteConfigUiState()\n        data class Error(val message: String = \"\") : RemoteConfigUiState()\n    }\n\n}\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FF79C6\">class<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD\">ListItemScreenViewModel<\/span><span style=\"color: #F8F8F2\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">private<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">val<\/span><span style=\"color: #F8F8F2\"> firebaseRemoteConfigsBridge: <\/span><span style=\"color: #8BE9FD; font-style: italic\">FirebaseRemoteConfigsBridge<\/span><span style=\"color: #F8F8F2\">) : <\/span><span style=\"color: #8BE9FD; font-style: italic\">BaseViewModel<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">private<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">val<\/span><span style=\"color: #F8F8F2\"> _stateRemoteConfig <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">MutableStateFlow<\/span><span style=\"color: #F8F8F2\">&lt;<\/span><span style=\"color: #8BE9FD; font-style: italic\">RemoteConfigUiState<\/span><span style=\"color: #F8F8F2\">&gt;(RemoteConfigUiState.<\/span><span style=\"color: #50FA7B\">Loading<\/span><span style=\"color: #F8F8F2\">(step <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">&quot;loading&quot;<\/span><span style=\"color: #F8F8F2\">))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">val<\/span><span style=\"color: #F8F8F2\"> stateRemoteConfig: <\/span><span style=\"color: #8BE9FD; font-style: italic\">StateFlow<\/span><span style=\"color: #F8F8F2\">&lt;<\/span><span style=\"color: #8BE9FD; font-style: italic\">RemoteConfigUiState<\/span><span style=\"color: #F8F8F2\">&gt; <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> _stateRemoteConfig<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">var<\/span><span style=\"color: #F8F8F2\"> jobRemoteConfig: <\/span><span style=\"color: #8BE9FD; font-style: italic\">Job<\/span><span style=\"color: #F8F8F2\">? <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">SupervisorJob<\/span><span style=\"color: #F8F8F2\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">private<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">val<\/span><span style=\"color: #F8F8F2\"> _myByteArray <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">MutableStateFlow<\/span><span style=\"color: #F8F8F2\">&lt;<\/span><span style=\"color: #8BE9FD; font-style: italic\">ByteArray<\/span><span style=\"color: #F8F8F2\">&gt;(<\/span><span style=\"color: #50FA7B\">ByteArray<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">val<\/span><span style=\"color: #F8F8F2\"> myByteArray <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> _myByteArray<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #50FA7B\">init<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        firebaseRemoteConfigsBridge.<\/span><span style=\"color: #50FA7B\">fetchAndActivateFirebaseRemoteConfigs<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">2.0<\/span><span style=\"color: #F8F8F2\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        viewModelScope.<\/span><span style=\"color: #50FA7B\">launch<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #50FA7B\">getValueRemoteConfigs<\/span><span style=\"color: #F8F8F2\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">suspend<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">fun<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">getValueRemoteConfigs<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        jobRemoteConfig?.<\/span><span style=\"color: #50FA7B\">cancel<\/span><span style=\"color: #F8F8F2\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        jobRemoteConfig <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> viewModelScope.<\/span><span style=\"color: #50FA7B\">launch<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #FF79C6\">try<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                _stateRemoteConfig.<\/span><span style=\"color: #FF79C6\">value<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> RemoteConfigUiState.<\/span><span style=\"color: #50FA7B\">Loading<\/span><span style=\"color: #F8F8F2\">(step <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">&quot;loading&quot;<\/span><span style=\"color: #F8F8F2\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                <\/span><span style=\"color: #FF79C6\">val<\/span><span style=\"color: #F8F8F2\"> remoteConfigvalue <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> firebaseRemoteConfigsBridge.<\/span><span style=\"color: #50FA7B\">getRemoteConfigString<\/span><span style=\"color: #F8F8F2\">(key <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">&quot;forteach&quot;<\/span><span style=\"color: #F8F8F2\">).<\/span><span style=\"color: #50FA7B\">toBoolean<\/span><span style=\"color: #F8F8F2\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                _stateRemoteConfig.<\/span><span style=\"color: #FF79C6\">value<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> RemoteConfigUiState.<\/span><span style=\"color: #50FA7B\">Success<\/span><span style=\"color: #F8F8F2\">(valueRemoteConfig <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> remoteConfigvalue)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                <\/span><span style=\"color: #50FA7B\">delay<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">100<\/span><span style=\"color: #F8F8F2\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                _stateRemoteConfig.<\/span><span style=\"color: #FF79C6\">value<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> RemoteConfigUiState.<\/span><span style=\"color: #50FA7B\">Loading<\/span><span style=\"color: #F8F8F2\">(step <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">&quot;&quot;<\/span><span style=\"color: #F8F8F2\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            }<\/span><span style=\"color: #FF79C6\">catch<\/span><span style=\"color: #F8F8F2\"> (e: <\/span><span style=\"color: #8BE9FD; font-style: italic\">Exception<\/span><span style=\"color: #F8F8F2\">){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                _stateRemoteConfig.<\/span><span style=\"color: #FF79C6\">value<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> RemoteConfigUiState.<\/span><span style=\"color: #50FA7B\">Error<\/span><span style=\"color: #F8F8F2\">(message <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">&quot;Error <\/span><span style=\"color: #FF79C6\">${<\/span><span style=\"color: #F1FA8C\">e.message<\/span><span style=\"color: #FF79C6\">}<\/span><span style=\"color: #F1FA8C\">&quot;<\/span><span style=\"color: #F8F8F2\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                <\/span><span style=\"color: #50FA7B\">delay<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">100<\/span><span style=\"color: #F8F8F2\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                _stateRemoteConfig.<\/span><span style=\"color: #FF79C6\">value<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> RemoteConfigUiState.<\/span><span style=\"color: #50FA7B\">Loading<\/span><span style=\"color: #F8F8F2\">(step <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">&quot;&quot;<\/span><span style=\"color: #F8F8F2\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        jobRemoteConfig?.<\/span><span style=\"color: #50FA7B\">join<\/span><span style=\"color: #F8F8F2\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">sealed<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">class<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD\">RemoteConfigUiState<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">data<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">class<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD\">Loading<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">val<\/span><span style=\"color: #F8F8F2\"> step: <\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">&quot;loading&quot;<\/span><span style=\"color: #F8F8F2\">) : <\/span><span style=\"color: #8BE9FD; font-style: italic\">RemoteConfigUiState<\/span><span style=\"color: #F8F8F2\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">data<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">class<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD\">Success<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">val<\/span><span style=\"color: #F8F8F2\"> valueRemoteConfig: <\/span><span style=\"color: #8BE9FD; font-style: italic\">Boolean<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">false<\/span><span style=\"color: #F8F8F2\">) : <\/span><span style=\"color: #8BE9FD; font-style: italic\">RemoteConfigUiState<\/span><span style=\"color: #F8F8F2\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">data<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">class<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD\">Error<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">val<\/span><span style=\"color: #F8F8F2\"> message: <\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">&quot;&quot;<\/span><span style=\"color: #F8F8F2\">) : <\/span><span style=\"color: #8BE9FD; font-style: italic\">RemoteConfigUiState<\/span><span style=\"color: #F8F8F2\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">In the class App should be call your screen with Remote Config implementation<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#F8F8F2;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>@Composable\nfun MainActivity(\n    listItemsViewModel: ListItemScreenViewModel = koinInject&lt;ListItemScreenViewModel>() ) {\n\n    var errorMessage by remember { mutableStateOf(\"\") }\n    var stepMessage by remember { mutableStateOf(\"\") }\n    var valueRemoteConfigs by remember { mutableStateOf(false) }\n    val stateRemoteConfig: ListItemScreenViewModel.RemoteConfigUiState by listItemsViewModel.stateRemoteConfig.collectAsState()\n    \n    when(stateRemoteConfig){\n        is ListItemScreenViewModel.RemoteConfigUiState.Error -> {\n            errorMessage = (stateRemoteConfig as ListItemScreenViewModel.RemoteConfigUiState.Error).message\n        }\n        is ListItemScreenViewModel.RemoteConfigUiState.Loading -> {\n            stepMessage = (stateRemoteConfig as ListItemScreenViewModel.RemoteConfigUiState.Loading).step\n        }\n        is ListItemScreenViewModel.RemoteConfigUiState.Success -> {\n            valueRemoteConfigs = (stateRemoteConfig as ListItemScreenViewModel.RemoteConfigUiState.Success).valueRemoteConfig\n        }\n    }\n\n \n    DisposableEffect(Unit) {\n        onDispose {\n        }\n    }\n\n    MaterialTheme {\n        Column(\n            modifier = Modifier\n                .safeContentPadding()\n                .fillMaxSize().padding(4.dp),\n            horizontalAlignment = Alignment.CenterHorizontally,\n        ) {\n\n            TopAppBar(\n                actions = {\n                    IconButton(onClick = { }) {\n                        Icon(\n                            imageVector = Icons.Default.BackHand,\n                            contentDescription = \"Localized description\"\n                        )\n                    }\n                },\n                navigationIcon = {\n                    IconButton(onClick = {  }) {\n                        Icon(\n                            imageVector = Icons.Default.CloudOff,\n                            contentDescription = \"Localized description\"\n                        )\n                    }\n                },\n                title = { Text(\"List teach\") }\n            )\n\n            Column(\n                modifier = Modifier\n                    .verticalScroll(rememberScrollState())\n                    .weight(weight = 1f, fill = false)\n            ) {\n            \n                Spacer(Modifier.height(20.dp))\n\n                Card(\n                    modifier = Modifier.fillMaxWidth().border(\n                        width = 2.dp,\n                        color = AppColors.blueDark,\n                        shape = RoundedCornerShape(16.dp)\n                    ),\n                    shape = RoundedCornerShape(20.dp),\n                    colors = CardDefaults.cardColors(\n                        containerColor = AppColors.blueLight,\n                        contentColor = AppColors.blueNormal\n                    ),\n                    elevation = CardDefaults.cardElevation()\n                ) {\n                    Column(modifier = Modifier.fillMaxWidth().padding(16.dp)) {\n                        Spacer(Modifier.height(8.dp))\n                        Text(\n                            text = \"Remote config value $errorMessage\",\n                            color = AppColors.blackNormal\n                        )\n                        Text(\n                            text = stepMessage,\n                            color = AppColors.blackNormal\n                        )\n                        Switch(\n                            checked = valueRemoteConfigs,\n                            onCheckedChange = { },\n                            colors = SwitchDefaults.colors(\n                                checkedThumbColor = AppColors.blueLight,\n                                uncheckedThumbColor = AppColors.blueNormal,\n                                disabledCheckedThumbColor = AppColors.blueLight,\n                                disabledCheckedTrackColor = AppColors.blueNormal\n                            ),\n                            enabled = false,\n                        )\n                    }\n                }\n\n                Spacer(Modifier.height(20.dp))\n\n            }\n        }\n\n    }\n}\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #8BE9FD; font-style: italic\">@Composable<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FF79C6\">fun<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">MainActivity<\/span><span style=\"color: #F8F8F2\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    listItemsViewModel: <\/span><span style=\"color: #8BE9FD; font-style: italic\">ListItemScreenViewModel<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">koinInject<\/span><span style=\"color: #F8F8F2\">&lt;<\/span><span style=\"color: #8BE9FD; font-style: italic\">ListItemScreenViewModel<\/span><span style=\"color: #F8F8F2\">&gt;() ) {<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">var<\/span><span style=\"color: #F8F8F2\"> errorMessage <\/span><span style=\"color: #FF79C6\">by<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">remember<\/span><span style=\"color: #F8F8F2\"> { <\/span><span style=\"color: #50FA7B\">mutableStateOf<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&quot;&quot;<\/span><span style=\"color: #F8F8F2\">) }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">var<\/span><span style=\"color: #F8F8F2\"> stepMessage <\/span><span style=\"color: #FF79C6\">by<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">remember<\/span><span style=\"color: #F8F8F2\"> { <\/span><span style=\"color: #50FA7B\">mutableStateOf<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&quot;&quot;<\/span><span style=\"color: #F8F8F2\">) }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">var<\/span><span style=\"color: #F8F8F2\"> valueRemoteConfigs <\/span><span style=\"color: #FF79C6\">by<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">remember<\/span><span style=\"color: #F8F8F2\"> { <\/span><span style=\"color: #50FA7B\">mutableStateOf<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">false<\/span><span style=\"color: #F8F8F2\">) }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">val<\/span><span style=\"color: #F8F8F2\"> stateRemoteConfig: <\/span><span style=\"color: #8BE9FD; font-style: italic\">ListItemScreenViewModel<\/span><span style=\"color: #F8F8F2\">.RemoteConfigUiState <\/span><span style=\"color: #FF79C6\">by<\/span><span style=\"color: #F8F8F2\"> listItemsViewModel.stateRemoteConfig.<\/span><span style=\"color: #50FA7B\">collectAsState<\/span><span style=\"color: #F8F8F2\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">when<\/span><span style=\"color: #F8F8F2\">(stateRemoteConfig){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">is<\/span><span style=\"color: #F8F8F2\"> ListItemScreenViewModel.RemoteConfigUiState.Error <\/span><span style=\"color: #FF79C6\">-&gt;<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            errorMessage <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> (stateRemoteConfig <\/span><span style=\"color: #FF79C6\">as<\/span><span style=\"color: #F8F8F2\"> ListItemScreenViewModel.RemoteConfigUiState.Error).message<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">is<\/span><span style=\"color: #F8F8F2\"> ListItemScreenViewModel.RemoteConfigUiState.Loading <\/span><span style=\"color: #FF79C6\">-&gt;<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            stepMessage <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> (stateRemoteConfig <\/span><span style=\"color: #FF79C6\">as<\/span><span style=\"color: #F8F8F2\"> ListItemScreenViewModel.RemoteConfigUiState.Loading).step<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">is<\/span><span style=\"color: #F8F8F2\"> ListItemScreenViewModel.RemoteConfigUiState.Success <\/span><span style=\"color: #FF79C6\">-&gt;<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            valueRemoteConfigs <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> (stateRemoteConfig <\/span><span style=\"color: #FF79C6\">as<\/span><span style=\"color: #F8F8F2\"> ListItemScreenViewModel.RemoteConfigUiState.Success).valueRemoteConfig<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #50FA7B\">DisposableEffect<\/span><span style=\"color: #F8F8F2\">(Unit) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">onDispose<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #50FA7B\">MaterialTheme<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">Column<\/span><span style=\"color: #F8F8F2\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            modifier <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> Modifier<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                .<\/span><span style=\"color: #50FA7B\">safeContentPadding<\/span><span style=\"color: #F8F8F2\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                .<\/span><span style=\"color: #50FA7B\">fillMaxSize<\/span><span style=\"color: #F8F8F2\">().<\/span><span style=\"color: #50FA7B\">padding<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">.dp),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            horizontalAlignment <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> Alignment.CenterHorizontally,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        ) {<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #50FA7B\">TopAppBar<\/span><span style=\"color: #F8F8F2\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                actions <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    <\/span><span style=\"color: #50FA7B\">IconButton<\/span><span style=\"color: #F8F8F2\">(onClick <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> { }) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                        <\/span><span style=\"color: #50FA7B\">Icon<\/span><span style=\"color: #F8F8F2\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                            imageVector <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> Icons.Default.BackHand,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                            contentDescription <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">&quot;Localized description&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                        )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                },<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                navigationIcon <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    <\/span><span style=\"color: #50FA7B\">IconButton<\/span><span style=\"color: #F8F8F2\">(onClick <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> {  }) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                        <\/span><span style=\"color: #50FA7B\">Icon<\/span><span style=\"color: #F8F8F2\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                            imageVector <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> Icons.Default.CloudOff,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                            contentDescription <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">&quot;Localized description&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                        )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                },<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                title <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> { <\/span><span style=\"color: #50FA7B\">Text<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&quot;List teach&quot;<\/span><span style=\"color: #F8F8F2\">) }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            )<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #50FA7B\">Column<\/span><span style=\"color: #F8F8F2\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                modifier <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> Modifier<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    .<\/span><span style=\"color: #50FA7B\">verticalScroll<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #50FA7B\">rememberScrollState<\/span><span style=\"color: #F8F8F2\">())<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    .<\/span><span style=\"color: #50FA7B\">weight<\/span><span style=\"color: #F8F8F2\">(weight <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">1f<\/span><span style=\"color: #F8F8F2\">, fill <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">false<\/span><span style=\"color: #F8F8F2\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            ) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                <\/span><span style=\"color: #50FA7B\">Spacer<\/span><span style=\"color: #F8F8F2\">(Modifier.<\/span><span style=\"color: #50FA7B\">height<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">20<\/span><span style=\"color: #F8F8F2\">.dp))<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                <\/span><span style=\"color: #50FA7B\">Card<\/span><span style=\"color: #F8F8F2\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    modifier <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> Modifier.<\/span><span style=\"color: #50FA7B\">fillMaxWidth<\/span><span style=\"color: #F8F8F2\">().<\/span><span style=\"color: #50FA7B\">border<\/span><span style=\"color: #F8F8F2\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                        width <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">.dp,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                        color <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> AppColors.blueDark,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                        shape <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">RoundedCornerShape<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">16<\/span><span style=\"color: #F8F8F2\">.dp)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    ),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    shape <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">RoundedCornerShape<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">20<\/span><span style=\"color: #F8F8F2\">.dp),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    colors <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> CardDefaults.<\/span><span style=\"color: #50FA7B\">cardColors<\/span><span style=\"color: #F8F8F2\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                        containerColor <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> AppColors.blueLight,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                        contentColor <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> AppColors.blueNormal<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    ),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    elevation <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> CardDefaults.<\/span><span style=\"color: #50FA7B\">cardElevation<\/span><span style=\"color: #F8F8F2\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                ) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    <\/span><span style=\"color: #50FA7B\">Column<\/span><span style=\"color: #F8F8F2\">(modifier <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> Modifier.<\/span><span style=\"color: #50FA7B\">fillMaxWidth<\/span><span style=\"color: #F8F8F2\">().<\/span><span style=\"color: #50FA7B\">padding<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">16<\/span><span style=\"color: #F8F8F2\">.dp)) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                        <\/span><span style=\"color: #50FA7B\">Spacer<\/span><span style=\"color: #F8F8F2\">(Modifier.<\/span><span style=\"color: #50FA7B\">height<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">.dp))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                        <\/span><span style=\"color: #50FA7B\">Text<\/span><span style=\"color: #F8F8F2\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                            text <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">&quot;Remote config value <\/span><span style=\"color: #F8F8F2\">$errorMessage<\/span><span style=\"color: #F1FA8C\">&quot;<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                            color <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> AppColors.blackNormal<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                        )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                        <\/span><span style=\"color: #50FA7B\">Text<\/span><span style=\"color: #F8F8F2\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                            text <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> stepMessage,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                            color <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> AppColors.blackNormal<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                        )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                        <\/span><span style=\"color: #50FA7B\">Switch<\/span><span style=\"color: #F8F8F2\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                            checked <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> valueRemoteConfigs,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                            onCheckedChange <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> { },<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                            colors <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> SwitchDefaults.<\/span><span style=\"color: #50FA7B\">colors<\/span><span style=\"color: #F8F8F2\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                                checkedThumbColor <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> AppColors.blueLight,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                                uncheckedThumbColor <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> AppColors.blueNormal,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                                disabledCheckedThumbColor <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> AppColors.blueLight,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                                disabledCheckedTrackColor <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> AppColors.blueNormal<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                            ),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                            enabled <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">false<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                        )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                <\/span><span style=\"color: #50FA7B\">Spacer<\/span><span style=\"color: #F8F8F2\">(Modifier.<\/span><span style=\"color: #50FA7B\">height<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">20<\/span><span style=\"color: #F8F8F2\">.dp))<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Native implementation (iOS configs)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Project\/iosApp\/iosApp<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now let&#8217;s work on the iOS part; where the remote config value will be sent as a parameter.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#F8F8F2;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>@objc public class SwiftFirebaseRemoteConfig: NSObject, FirebaseRemoteConfigs {\n    let remoteConfig = RemoteConfig.remoteConfig()\n    \n    @objc public func fetchAndActivateFirebaseRemoteConfigs(fetchIntervalInSeconds: Double) {\n        remoteConfig.configSettings.minimumFetchInterval = fetchIntervalInSeconds\n        remoteConfig.fetchAndActivate()\n    }\n    \n    @objc public func getRemoteConfigString(key: String) -> String? {\n        return remoteConfig.configValue(forKey: key).stringValue as String?\n    }\n    \n}\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FF79C6\">@objc<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">public<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">class<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD\">SwiftFirebaseRemoteConfig<\/span><span style=\"color: #F8F8F2\">: <\/span><span style=\"color: #8BE9FD; font-style: italic\">NSObject<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #8BE9FD; font-style: italic\">FirebaseRemoteConfigs <\/span><span style=\"color: #F8F8F2\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> remoteConfig <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> RemoteConfig.<\/span><span style=\"color: #8BE9FD\">remoteConfig<\/span><span style=\"color: #F8F8F2\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">@objc<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">public<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">func<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">fetchAndActivateFirebaseRemoteConfigs<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #50FA7B; font-style: italic\">fetchIntervalInSeconds<\/span><span style=\"color: #F8F8F2\">: <\/span><span style=\"color: #8BE9FD; font-style: italic\">Double<\/span><span style=\"color: #F8F8F2\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        remoteConfig.configSettings.minimumFetchInterval <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> fetchIntervalInSeconds<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        remoteConfig.<\/span><span style=\"color: #8BE9FD\">fetchAndActivate<\/span><span style=\"color: #F8F8F2\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">@objc<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">public<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">func<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">getRemoteConfigString<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #50FA7B; font-style: italic\">key<\/span><span style=\"color: #F8F8F2\">: <\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #F8F8F2\">) <\/span><span style=\"color: #FF79C6\">-&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #FF79C6\">?<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">return<\/span><span style=\"color: #F8F8F2\"> remoteConfig.<\/span><span style=\"color: #8BE9FD\">configValue<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #8BE9FD\">forKey<\/span><span style=\"color: #F8F8F2\">: key).<\/span><span style=\"color: #BD93F9\">stringValue<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">as<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #FF79C6\">?<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#F8F8F2;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>class AppDelegate: NSObject, UIApplicationDelegate {\n\n func application(\n        _ application: UIApplication,\n        didFinishLaunchingWithOptions launchOptions: &#91;UIApplication.LaunchOptionsKey: Any&#93;? = nil\n    ) -> Bool {\n        \n        FirebaseApp.configure()\n        \n        let swiftFirebaseRemoteConfig = SwiftFirebaseRemoteConfig()\n        ComposeApp.KoinInit().doInitKoin(\n            delegateFirebaseRemoteConfigs: swiftFirebaseRemoteConfig\n        )\n        \n        return true\n    }\n}\n\n@main\nstruct iOSApp: App {\n\n    @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate\n\n    var body: some Scene {\n        WindowGroup {\n            ContentView()\n        }\n    }\n\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FF79C6\">class<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD\">AppDelegate<\/span><span style=\"color: #F8F8F2\">: <\/span><span style=\"color: #8BE9FD; font-style: italic\">NSObject<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #8BE9FD; font-style: italic\">UIApplicationDelegate <\/span><span style=\"color: #F8F8F2\">{<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">func<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">application<\/span><span style=\"color: #F8F8F2\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">_<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FFB86C; font-style: italic\">application<\/span><span style=\"color: #F8F8F2\">: UIApplication,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">didFinishLaunchingWithOptions<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FFB86C; font-style: italic\">launchOptions<\/span><span style=\"color: #F8F8F2\">: &#91;UIApplication.LaunchOptionsKey<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Any<\/span><span style=\"color: #F8F8F2\">&#93;<\/span><span style=\"color: #FF79C6\">?<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">nil<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    ) <\/span><span style=\"color: #FF79C6\">-&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Bool<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        FirebaseApp.<\/span><span style=\"color: #8BE9FD\">configure<\/span><span style=\"color: #F8F8F2\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> swiftFirebaseRemoteConfig <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD\">SwiftFirebaseRemoteConfig<\/span><span style=\"color: #F8F8F2\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        ComposeApp.<\/span><span style=\"color: #8BE9FD\">KoinInit<\/span><span style=\"color: #F8F8F2\">().<\/span><span style=\"color: #8BE9FD\">doInitKoin<\/span><span style=\"color: #F8F8F2\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #8BE9FD\">delegateFirebaseRemoteConfigs<\/span><span style=\"color: #F8F8F2\">: swiftFirebaseRemoteConfig<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">return<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">true<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FF79C6\">@main<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FF79C6\">struct<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">iOSApp<\/span><span style=\"color: #F8F8F2\">: <\/span><span style=\"color: #8BE9FD; font-style: italic\">App <\/span><span style=\"color: #F8F8F2\">{<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">@UIApplicationDelegateAdaptor<\/span><span style=\"color: #F8F8F2\">(AppDelegate.<\/span><span style=\"color: #FF79C6\">self<\/span><span style=\"color: #F8F8F2\">) <\/span><span style=\"color: #FF79C6\">var<\/span><span style=\"color: #F8F8F2\"> delegate<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">var<\/span><span style=\"color: #F8F8F2\"> body: <\/span><span style=\"color: #FF79C6\">some<\/span><span style=\"color: #F8F8F2\"> Scene {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #8BE9FD\">WindowGroup<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #8BE9FD\">ContentView<\/span><span style=\"color: #F8F8F2\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Extras<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You can access also ours GitHub with all code and news features;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/flipnovidade\/integration_call_apps_nativos_app_kmp\">GitHub<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you have doubts, question don&#8217;t hesitate to ask; Will be a pleasure to help.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello guys.If you arrived here I hope this post will be useful. First I will be show how to add future flag using Remote Config &#8211; Firebase. I hope you have minimal know em native platforms (Android and iOS); remember this post I don&#8217;t use libs what will be facilitate to implementation Firebase Remote Config. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":47,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,7,3],"tags":[17,12,18,11,10,16,19,13,14,15],"class_list":["post-35","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android-native","category-ios-native","category-kotlin-multi-plataform","tag-android","tag-firebase","tag-ios","tag-kmm","tag-kmp","tag-koltin-firebase","tag-multiplatforms","tag-remote-config","tag-remoteconfig","tag-remoteconfigfirebase"],"blocksy_meta":{"page_structure_type":"default","styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":6}},"_links":{"self":[{"href":"https:\/\/meumundomobile.com.br\/index.php?rest_route=\/wp\/v2\/posts\/35","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/meumundomobile.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/meumundomobile.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/meumundomobile.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/meumundomobile.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=35"}],"version-history":[{"count":18,"href":"https:\/\/meumundomobile.com.br\/index.php?rest_route=\/wp\/v2\/posts\/35\/revisions"}],"predecessor-version":[{"id":72,"href":"https:\/\/meumundomobile.com.br\/index.php?rest_route=\/wp\/v2\/posts\/35\/revisions\/72"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/meumundomobile.com.br\/index.php?rest_route=\/wp\/v2\/media\/47"}],"wp:attachment":[{"href":"https:\/\/meumundomobile.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=35"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/meumundomobile.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=35"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/meumundomobile.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=35"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}