Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK
Code

Firebase Remote Config для Android-приложений

by
Difficulty:IntermediateLength:MediumLanguages:

Russian (Pусский) translation by Ilya Nikov (you can also view the original English article)

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

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

В этом уроке я покажу вам, как использовать некоторые из самых мощных функций Remote Config в приложениях для Android.

1. Зачем использовать удаленную конфигурацию?

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

Чтобы лучше понять значение API, рассмотрите следующий сценарий: вы создаете и публикуете приложение с жестко заданными значениями для размера шрифта и цвета всех его меток. Несколько дней спустя ваши пользователи сообщают, что предпочитают более широкий размер шрифта и другой цвет шрифта. Поскольку значения жестко закодированы, чтобы их изменить, теперь вам нужно будет изменить свой код, снова создать приложение, предоставив ему новый номер версии и опубликовать его в Google Play. Это большая работа для такого незначительного исправления. Более того, если пользователи передумают, вам придется делать это снова и снова!

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

2. Настройка проекта

С помощью Android Studio Firebase Assistant добавление удаленной конфигурации в ваш проект занимает всего несколько кликов.

Начните с Tools > Firebase и выберите Remote Config > Set up Firebase Remote Config в появившейся панели.

Firebase Assistant for Remote Config

Затем нажмите кнопку Connect to Firebase, чтобы связать проект Android Studio с проектом Firebase. В появившемся диалоговом окне выберите вариант Create new Firebase project и нажмите кнопку Connect to Firebase.

Connect to Firebase dialog

После успешного подключения вы можете нажать кнопку Add Remote Config to your app, чтобы добавить все необходимые зависимости в файлы Gradle вашего проекта. При появлении подтверждения нажмите кнопку Accept Changes, чтобы завершить настройку проекта.

Project changes prompt

3. Определение параметров конфигурации

Все переменные, которые вы хотите изменить удаленно, должны быть определены в вашем проекте Firebase в качестве параметров Remote Config. Поэтому используйте браузер для входа в консоль Firebase, прокрутите вниз раздел Project Overview, чтобы найти карточку Remote Config, и нажмите кнопку Get Started.

На экране приветствия службы удаленной конфигурации нажмите кнопку «Добавить свою первую кнопку параметров», чтобы начать добавлять переменные.

Remote Config welcome screen

Определим теперь два параметра: font_size и font_color. Первый должен быть числом, а второй - строкой. Убедитесь, что вы назначили разумные значения по умолчанию для обоих.

Parameter creation dialog

Теперь вы сможете увидеть два параметра, которые вы создали. Однако их значения не будут доступны вашему приложению, если вы их не опубликуете. Поэтому нажмите кнопку «Опубликовать изменения».

List of parameters

4. Подготовка макета

Чтобы иметь возможность использовать созданные нами параметры, добавьте виджет TextView, отображающий сообщение в XML-файле макета вашей активности. Если вы создали новый проект для Android для этого учебника, не стесняйтесь использовать виджет TextView «Hello World» по умолчанию, но удостоверьтесь, что вы указали ему идентификатор.

Внутри метода onCreate() вашей активности теперь вы можете получить ссылку на виджет, используя метод findViewById().

5. Инициализация удаленной конфигурации

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

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

Теперь мы можем инициализировать клиент для службы Remote Config, используя map defaults. Для этого сначала создайте экземпляр клиента, вызвав метод getInstance() класса FirebaseRemoteConfig, а затем передайте map его методу setDefaults().

На данный момент клиент Remote Config готов, и мы можем начать использовать значения, которые он предоставляет.

6. Использование значений по умолчанию

Экземпляр FirebaseRemoteConfig предлагает несколько интуитивно названных методов, которые вы можете использовать для извлечения значений параметров Remote Config. Например, вы можете вызвать метод getDouble() для извлечения значений, которые являются числами. Аналогичным образом вы можете вызвать метод getString() для извлечения значений, которые являются строками.

В следующем коде показано, как получить значения параметров font_size и font_color.

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

Если вы запустите приложение сейчас, вы сможете увидеть виджет TextView, используя значения по умолчанию параметров Remote Config.

App running with default values

7. Получение последних значений

Прямо сейчас клиент Remote Config просто возвращает значения из map, который мы ему передали. Чтобы позволить ему использовать значения, полученные из Firebase, мы должны вызвать его метод activateFetched().

Однако метод activateFetched() фактически не извлекает значения из Firebase. Поэтому мы должны вызвать следующий метод fetch(), который выполняется асинхронно, чтобы получить значения.

Если вы запустите приложение в этот момент, оно по-прежнему будет использовать значения по умолчанию. Однако, если вы подождете несколько секунд, закройте его и снова откройте, оно начнет использовать значения, введенные в консоли Firebase.

Обычно рекомендуется, чтобы измененные значения вступили в силу только тогда, когда пользователи откроют приложение в следующий раз. Вы можете присоединить слушателя к объекту Task, возвращаемому методом fetch(), и обновить свой пользовательский интерфейс внутри слушателя, но вашим пользователям может не понравиться резкое изменение.

Однако вы можете использовать прослушиватель для целей отладки.

8. Изменение значений

В настоящее время значения в map соответствуют удаленным значениям. Чтобы иметь возможность видеть службу Remote Config в действии, мы должны изменить значения, сохраненные в консоли Firebase. Итак, вернитесь на консоль и нажмите один из параметров, которые вы видите в разделе «Удаленная настройка».

В появившемся диалоговом окне оставьте поле «Параметры» неизменным, но измените значение. Аналогичным образом вы также можете изменить значение другого параметра.

Наконец, убедитесь, что вы нажали кнопку «Опубликовать изменения», чтобы значения стали доступными для клиента Remote Config.

Updated values for the parameters

Если вы откроете приложение сейчас, закройте его и откройте его снова, вы увидите, что виджет TextView выглядит иначе.

App running with latest values from Firebase

9. Добавление условий к параметрам

Вы не всегда должны выставлять одинаковые значения удаленной конфигурации всем своим пользователям. Консоль Firebase позволяет добавлять условия к вашим параметрам таким образом, чтобы они возвращали разные значения в разные подмножества вашей пользовательской базы. Существует множество правил, которые вы можете использовать для создания таких подмножеств. Например, вы можете настроить таргетинг на пользователей, принадлежащих определенной стране, пользователям с устройствами, использующими определенную версию Android, или даже пользователям, говорящим на определенном языке.

Поскольку Firebase управляет ими прозрачно, вам не нужно вносить какие-либо изменения в свой код, чтобы обрабатывать условия, связанные с вашими параметрами.

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

Начните с нажатия на параметр в консоли Firebase. В появившейся форме щелкните поле «Добавить значение для раскрывающегося списка» и выберите «Определить новое условие».

Add value for condition field

В появившемся диалоговом окне вы сможете указать имя для своего условия, а в раскрывающемся списке «Применяется, если ...» выберите ряд параметров, которые позволят вам сосредоточиться на определенной группе пользователей , Чтобы ориентироваться на пользователей определенной страны, вам нужно будет выбрать вариант «Страна/Регион». В списке, который появляется рядом с ним, вы можете выбрать одну или несколько стран. Выберите Индию.

Condition creation dialog

После заполнения всех полей нажмите кнопку «Создать условие», чтобы завершить условие.

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

Conditional values dialog

Если вы опубликуете изменения сейчас, пользователи в Индии получат дополнительное обновление, а текст в виджетах TextView станет для них синим.

Same app running on devices in different countries

Вывод

Теперь вы знаете, как удаленно изменять приложение с помощью Firebase Remote Config и консоли Firebase. Добавьте немного креативности и вам станет доступно множество настроек, чтобы улучшить пользовательский интерфейс вашего приложения. Например, большинство разработчиков сегодня используют его для изменения тем своих приложений, чтобы отметить праздничные дни. Многие также используют его с Firebase Analytics для запуска A/B тестов на своих пользовательских базах.

Чтобы узнать больше о Remote Config, обратитесь к официальной документации.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.