Измените поведение вашего приложения на основе удаленной конфигурации, хранящейся в Firebase.

Вступление

Firebase - это платформа для разработки мобильных и веб-приложений, разработанная Firebase, Inc. в 2011 году, затем приобретенная Google в 2014 году. По состоянию на март 2020 года платформа Firebase насчитывает 19 продуктов, которыми пользуются более 1,5 миллиона человек. Программы. В наши дни Firebase стала очень необходимой разработчикам Android.

Firebase от Google имеет множество функций, которые могут помочь в создании лучших приложений, в том числе путем мониторинга и улучшения качества приложений.

Он имеет множество функций под одной крышей, таких как удаленная настройка, Crashlytics, аналитика, обмен сообщениями в облаке и т. Д.

Каждый элемент Firebase очень прост и важен для изучения. Для небольших разработчиков, которые хотят разместить свой веб-сайт, чтобы продемонстрировать свое портфолио или что-то еще, Firebase Hosting - это функция, с помощью которой вы можете легко разместить веб-сайт через несколько минут, выполнив несколько шагов, и изначально это бесплатно. Посмотрите мое портфолио, которое я разместил на Firebase два года назад.

Теперь давайте погрузимся в концепцию удаленной настройки.

Зачем нам это нужно?

Firebase Remote Config - это облачная служба, с помощью которой мы можем изменять поведение и внешний вид нашего приложения без публикации обновления приложения, бесплатно и для неограниченного числа активных пользователей в день. И также было рекомендовано использовать проверку обновлений приложений.

При использовании Remote Config мы создаем в приложении значения по умолчанию, которые управляют поведением и внешним видом нашего приложения. Позже мы можем использовать консоль Firebase для обновления значений и использовать REST API Remote Config для переопределения значений по умолчанию в приложении для всех пользователей нашего приложения или для сегментов нашей пользовательской базы.

Проще говоря, на стороне сервера мы можем поддерживать пары ключ-значение требуемых значений, а на стороне клиента, поскольку мы имеем дело с Rest API, мы можем получать эти значения и использовать их для обновлений приложений или для изменения внешнего вида приложения. или поведение.

Наше приложение контролирует, когда применяются обновления, и оно может часто проверять наличие обновлений и применять их с незначительным влиянием на производительность.

Как это работает?

Remote Config включает в себя клиентскую библиотеку, которая обрабатывает важные задачи, такие как получение значений параметров и их кеширование, но при этом дает нам возможность контролировать, когда новые значения активируются или выбираются , чтобы они влияли на взаимодействие с пользователем нашего приложения. Это позволяет нам защитить наше приложение, контролируя время любых изменений.

Методы get клиентской библиотеки Remote Config предоставляют единую точку доступа для значений параметров. Наше приложение получает значения на стороне сервера, используя ту же логику, которую оно использует для получения значений по умолчанию в приложении, поэтому мы можем добавить возможности Remote Config в наше приложение без написания большого количества кода.

Чтобы переопределить значения по умолчанию в приложении, вы используете консоль Firebase или серверные API Remote Config для создания параметров с теми же именами, что и параметры, используемые в вашем приложении.

Для каждого параметра вы можете установить значение по умолчанию на стороне сервера, чтобы переопределить значение по умолчанию в приложении, а также вы можете создать условные значения, чтобы переопределить значение по умолчанию в приложении для экземпляров приложения, которые соответствуют определенным условиям. На этом изображении ниже показано, как приоритетность значений параметров в серверной части Remote Config и в нашем приложении:

Как это использовать

Необходимо выполнить четыре простых шага:

  • Добавление необходимых зависимостей
  • Установите значения параметров по умолчанию в приложении, которые определяют наши требования.
  • Добавление и обновление значений по умолчанию и условных параметров на стороне сервера
  • Добавьте логику для выборки, активации и получения значений параметров

Давайте разберемся с этим лучше на примере использования, например, при изменении изображения экрана приветствия. Предположим, есть приложение, которое отображает изображение на заставке, и несколько дней спустя я думаю об изменении этого изображения. Здесь мне не нужно публиковать обновление приложения. Давайте посмотрим, как это сделать с помощью Remote Config.

Реализация

Шаг 1

Если вы еще этого не сделали, добавьте Firebase в свой проект Android.

Затем давайте добавим зависимость Remote Config на уровне приложения build.gradle (app/build.gradle).

implementation 'com.google.firebase:firebase-config-ktx:19.1.4'
implementation 'com.google.firebase:firebase-analytics-ktx:17.4.3'

Для Remote Config требуется Google Analytics для условного таргетинга экземпляров приложения на свойства пользователя, аудитории и прогнозы Firebase. Убедитесь, что вы включили Google Analytics в своем проекте.

Шаг 2

Установите значения параметров по умолчанию в приложении. Мы можем установить значения параметров по умолчанию внутри приложения в объекте Remote Config, чтобы наше приложение работало должным образом, прежде чем оно подключится к серверной части Remote Config, и поэтому значения по умолчанию будут доступны, если в серверной части ничего не задано.

  1. Определите набор имен параметров и значений параметров по умолчанию, используя объект Map или файл ресурсов XML, хранящийся в папке res/xml вашего приложения. Пример приложения для быстрого запуска Remote Config использует XML-файл для определения имен и значений параметров по умолчанию.
  2. Добавьте эти значения к объекту remoteConfig, используя setDefaultsAsync(int), как показано:
val remoteConfig = Firebase.remoteConfig
remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)

В нашем случае щелкните правой кнопкой мыши папку res и добавьте папку xml, если она не существует. Затем добавьте XML-файл с именем атрибута welcome_image.

Здесь, в зависимости от требований, мы можем добавить любое количество параметров.

Шаг 3

Установите значения параметров в серверной части Remote Config. Пришло время добавить и обновить наши ценности. В консоли Firebase откройте свой проект, а затем выберите Удаленная конфигурация в разделе Увеличить в левом меню.

Мы должны заполнить «Ключ параметра» и «Значение по умолчанию». Наконец, не забудьте нажать «Опубликовать изменения», чтобы изменения вступили в силу. Добавьте параметр с тем же ключом, который использовался в welcome_image в приложении.

Затем нажмите «Добавить параметр». Вы увидите экран, показанный ниже. Нажмите кнопку «Опубликовать изменения» в правом верхнем углу , чтобы изменения вступили в силу.

После успешного добавления он будет выглядеть следующим образом:

Теперь мы закончили со стороной сервера.

Бонус

Мы можем добавить параметры, зависящие от платформы, формат параметров и т. Д. Чтобы выполнить процентное развертывание существующего параметра Remote Config, добавьте новое условие к параметру, которое содержит условие «Пользователь в случайном процентиле» со значением%, установленным на 10%:

Ознакомьтесь с дополнительными вариантами добавления различных параметров для различных вариантов использования в разделе Что я могу делать с Remote Config? »

Шаг 4:

Со стороны приложения получите последние значения из Remote Config и обновите внешний вид приложения. Это можно сделать с помощью класса singleton или в классе приложения.

  1. Чтобы получить значения параметров из серверной части Remote Config, вызовите метод fetch(). Любые значения, которые вы устанавливаете в серверной части, извлекаются и сохраняются в объекте Remote Config.
  2. Чтобы сделать полученные значения параметров доступными для вашего приложения, вызовите метод activate().
  3. В случаях, когда вы хотите получить и активировать значения за один вызов, вы можете использовать запрос fetchAndActivate() для получения значений из серверной части Remote Config и сделать их доступными для приложения:

В будущем, если мы захотим изменить изображение на экране приветствия, нам просто нужно будет изменить URL-адрес в консоли Firebase. Вы также можете сделать гораздо больше, поэтому ознакомьтесь с полным списком вещей на Firebase. Веб-сайт.

использованная литература