שילוב Firebase Remote Config לאפליקציות מובייל

עדכון פרמטרים של אפליקציה דורש לעיתים קרובות מחזור שחרור ארוך והמתנה לאישורים. אנחנו משלבים את Firebase Remote Config כך שתוכלו לשנות הגדרות ו-feature flags מרחוק, ללא צורך בשחרור גרסה חדשה. הצוות שלנו מספק את הפרויקט במלואו—מהגדרת הקונסולה ועד למימוש ב-iOS וב-Android, עם תמיכה מתמשכת.

פיתוח ותמיכה בכל סוגי היישומים הניידים:

יישומים ניידים למידע ובידור
אפליקציות חדשות, משחקים, מדריכים, קטלוגים מקוונים, אפליקציות מזג אוויר, אפליקציות כושר ובריאות, אפליקציות נסיעות, אפליקציות חינוכיות, רשתות חברתיות ומסנג'רים, חידונים, בלוגים ופודקאסטים, פורומים, אגרגטורים
יישומים ניידים למסחר אלקטרוני
חנויות מקוונות, אפליקציות B2B, מרקטפלייסים, בורסות מקוונות, שירותי קאשבק, בורסות, פלטפורמות דרופשיפינג, תוכניות נאמנות, משלוחי מזון ומוצרים, מערכות תשלום.
יישומים ניידים לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, ניהול פרויקטים, כלים לצוותי מכירות, ניהול פיננסי, ניהול ייצור, ניהול לוגיסטיקה ומשלוחים, ניהול משאבי אנוש, מערכות ניטור נתונים
יישומים ניידים לשירותים אלקטרוניים
פלטפורמות מודעות מסווגות, בתי ספר מקוונים, בתי קולנוע מקוונים, פלטפורמות שירות אלקטרוניות, פלטפורמות קאשבק, אירוח וידאו, פורטלים נושאיים, פלטפורמות הזמנות ותזמון מקוונות, פלטפורמות מסחר מקוונות

אלה הם רק חלק מסוגי היישומים הניידים שאנו עובדים איתם, ולכל אחד מהם עשויים להיות מאפיינים ופונקציונליות ספציפיים משלו, המותאמים לצרכים ולמטרות הספציפיות של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 1734 השירותים
שילוב Firebase Remote Config לאפליקציות מובייל
פשוט
~1 יום

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית מובייל עבור FEEDME
    פיתוח אפליקציית מובייל עבור FEEDME
    971
  • פיתוח אפליקציית מובייל עבור XOOMER
    פיתוח אפליקציית מובייל עבור XOOMER
    869
  • פיתוח אפליקציית מובייל עבור RHL
    פיתוח אפליקציית מובייל עבור RHL
    1289
  • פיתוח אפליקציית מובייל עבור ZIPPY
    פיתוח אפליקציית מובייל עבור ZIPPY
    1143
  • פיתוח אפליקציית מובייל עבור Affhome
    פיתוח אפליקציית מובייל עבור Affhome
    1076
  • פיתוח אפליקציית מובייל עבור חברת FLAVORS
    פיתוח אפליקציית מובייל עבור חברת FLAVORS
    677

שילוב Firebase Remote Config עבור אפליקציות מובייל

לעתים קרובות אנו נתקלים בבקשות של לקוחות לשנות פרמטרים של אפליקציה במהירות ללא מחזור שחרור מלא. לדוגמה, שינוי צבע של כפתור מבצע או סף משלוח חינם. ללא Remote Config, הדבר דורש תיקון חם, סקירה חדשה והמתנה לאישור ב-App Store או ב-Google Play — ממספר שעות עד ימים. עם Remote Config, פשוט משנים ערך בקונסולת Firebase, ותוך 20–30 שניות התצורה החדשה חלה על כל המכשירים. אין צורך בעדכון גרסת אפליקציה. אנו משתמשים בכלי זה בכל פרויקט שבו גמישות בניהול חוויית המשתמש חשובה — במשך למעלה מ-5 שנים שילבנו אותו ביותר מ-200 אפליקציות מובייל המשרתות יותר מ-500,000 משתמשים פעילים בסך הכל.

כיצד Firebase Remote Config עובד מתחת למכסה המנוע

Remote Config הוא מאגר Key-Value עם צד שרת ב-Firebase Console ו-SDKs ללקוח עבור iOS/Android/Flutter. תיעוד Firebase Remote Config מתאר שתי פעולות מפתח: fetch() ו-activate(). fetch מוריד את התצורה למטמון זמני, activate מחיל אותה בזמן ריצה. ההפרדה היא מכוונת — כדי למנוע שבירת סשן המשתמש הנוכחי. אורך חיי המטמון מוגדר באמצעות minimumFetchInterval: בייצור 3600 שניות, ב-debug ניתן להגדיר 0.

// iOS, Swift
let remoteConfig = RemoteConfig.remoteConfig()
let settings = RemoteConfigSettings()
settings.minimumFetchInterval = 3600 // в проде — 1 час, в дебаге можно 0
remoteConfig.configSettings = settings
// Дефолты — обязательны, иначе до первого fetch значения nil
remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")
remoteConfig.fetchAndActivate { status, error in
    if status == .successFetchedFromRemote || status == .successUsingPreFetchedData {
        let buttonColor = remoteConfig["promo_button_color"].stringValue ?? "#FF5722"
        DispatchQueue.main.async {
            self.applyConfig(buttonColor)
        }
    }
}

באנדרואיד באמצעות Kotlin:

val remoteConfig = Firebase.remoteConfig
remoteConfig.setConfigSettingsAsync(remoteConfigSettings { minimumFetchIntervalInSeconds = 3600 })
remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)
remoteConfig.fetchAndActivate().addOnCompleteListener { task ->
    if (task.isSuccessful) {
        val threshold = remoteConfig.getLong("free_delivery_threshold")
        updateCartUI(threshold)
    }
}

מדוע ברירות מחדל הן קריטיות

אם ניגשים למפתח ללא ברירת מחדל לפני // iOS, Swift let remoteConfig = RemoteConfig.remoteConfig() let settings = RemoteConfigSettings() settings.minimumFetchInterval = 3600 // в проде — 1 час, в дебаге можно 0 remoteConfig.configSettings = settings // Дефолты — обязательны, иначе до первого fetch значения nil remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults") remoteConfig.fetchAndActivate { status, error in if status == .successFetchedFromRemote || status == .successUsingPreFetchedData { let buttonColor = remoteConfig["promo_button_color"].stringValue ?? "#FF5722" DispatchQueue.main.async { self.applyConfig(buttonColor) } } } המוצלח הראשון (למשל, עקב חוסר רשת), מקבלים val remoteConfig = Firebase.remoteConfig remoteConfig.setConfigSettingsAsync(remoteConfigSettings { minimumFetchIntervalInSeconds = 3600 }) remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults) remoteConfig.fetchAndActivate().addOnCompleteListener { task -> if (task.isSuccessful) { val threshold = remoteConfig.getLong("free_delivery_threshold") updateCartUI(threshold) } } או מחרוזת ריקה. האפליקציה לא תקרוס, אך ההתנהגות הופכת לבלתי צפויה. ברירות מחדל חייבות לכסות כל מפתח שהאפליקציה שלך משתמשת בו. אנו ממליצים לאחסן אותן בקובץ נפרד (Plist עבור iOS, XML עבור Android) ולסנכרן עם המפתחות בקונסולת Firebase. אנו מבטיחים שלאחר הגדרת ברירות מחדל, לא תיתקלו בהפתעות בהפעלה הראשונה. בפרויקט אחד, ברירות מחדל חסרות גרמו ל-15% מהמשתמשים לראות מציין מיקום במקום באנר — תיקון לקח 2 דקות בקונסולה.

כיצד להימנע מתנאי מרוץ באתחול

fetch הוא אסינכרוני. אם ממשק המשתמש נמשך לפני השלמת האחזור, המשתמש רואה ערכי ברירת מחדל. עבור פרמטרים קריטיים (למשל, דגל הצגת חומת תשלום), עדיף לטעון את התצורה על מסך הפתיחה ולחסום ניווט עד לקבלת התשובה — עם פסק זמן של 2–3 שניות. אנו משתמשים בגישה זו בכל פרויקט: העיכוב אינו מורגש, והלוגיקה פועלת באופן אמין.

כיצד להגדיר ערכים מותנים לבדיקות A/B

הכוח האמיתי של Remote Config טמון בתנאים. ניתן להקצות ערכים שונים עבור:

  • גרסאות אפליקציה ספציפיות (nil)
  • פלטפורמה (iOS לעומת Android)
  • מדינת המשתמש
  • כל fetchAndActivate מותאם אישית המוגדר דרך Firebase Analytics

לדוגמה, הצגת תהליך קליטה חדש רק למשתמשי iOS 16+ ברוסיה — ללא שחרור נפרד. זה מאיץ בדיקות A/B והתאמה אזורית. עבור בדיקת A/B, יוצרים תצורה שמקצה ערכים שונים לקבוצת בקרה וקבוצת ניסוי. התוצאות מנוטרות דרך Firebase Analytics. חיסכון אופייני בזמן: עד 40 שעות לכל דגל תכונה שדרש בעבר שחרור.

טעות נפוצה: שכחת ברירות מחדלבהפעלה ראשונה ללא רשת, האחזור לא מתבצע, ומפתחות ללא ברירות מחדל הופכים ל-null. כדי להימנע מכך, הגדר תמיד ברירות מחדל לכל המפתחות. אנו ממליצים לאחסן אותן בקובץ נפרד ולסנכרן עם קונסולת Firebase. בפרויקט אחד, ברירות מחדל חסרות גרמו ל-15% מהמשתמשים לראות מציין מיקום במקום באנר — תיקון לקח 2 דקות בקונסולה.

טבלה: פלטפורמות והתקנה ראשונית

פרמטר iOS (Swift) Android (Kotlin) Flutter (Dart)
שילוב SDK Swift Package Manager app_version < 2.5.0 Gradle user_property firebase-ios-sdk מ-pub.dev
ברירות מחדל קובץ Plist קובץ XML (com.google.firebase:firebase-config) מפת Dart ב-firebase_remote_config
מרווח אחזור מינימלי remote_config_defaults.xml setDefaults minimumFetchInterval = 3600
קבלת ערך minimumFetchIntervalInSeconds = 3600 setMinimumFetchInterval(3600) config["key"].stringValue
גישה טיפוסית מחלקת עזר עם enum מחלקת עזר עם sealed class מחלקת עזר עם const

טבלה: סוגי תנאים פופולריים

תנאי דוגמה מקרה שימוש
גרסת אפליקציה config.getLong("key") הפעלת תכונה רק לגרסאות ישנות
מדינה config.getString("key") התאמת הצעה מקומית
מאפיין משתמש מותאם אישית app_version < 2.5.0 בדיקת A/B בקרב משתמשים משלמים
אחוז אקראי country == "RU" שחרור הדרגתי של תכונה חדשה

מה כלול בעבודה

  • חיבור Firebase SDK (דרך SPM עבור iOS, Gradle עבור Android, user_property["premium"] == "true" עבור Flutter)
  • random_percent < 10 תצורה עם מרווחים נכונים עבור debug/release
  • קובץ ברירות מחדל המכסה את כל המפתחות
  • מחלקת עזר טיפוסית לגישה לערכים (ללא מפתחות מחרוזת בקוד)
  • שילוב עם נקודת האתחול של האפליקציה (AppDelegate / Application)

לוחות זמנים ועלות

שילוב בסיסי עם מחלקת עזר טיפוסית אורך יום אחד. העלות מחושבת באופן אישי לאחר ניתוח דרישות. צרו קשר לייעוץ: נעזור להעריך את ההיקף ולהגדיר את Remote Config לצרכים שלכם. קבלו ייעוץ — ותראו כמה קל לנהל תכונות ללא שחרורים. פנו אלינו כדי לדון בפרויקט שלכם.