Стратегии загрузки Firebase Remote Config

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

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

Стратегия 1: Извлечь и активировать при загрузке

При использовании этой стратегии ваше приложение будет вызывать fetchAndActivate() при первом запуске, чтобы получить новые значения из Remote Config и активировать их сразу после загрузки. Этот простой подход хорошо подходит для изменений конфигурации, которые не приводят к кардинальным визуальным изменениям в пользовательском интерфейсе. Его следует избегать в ситуациях, когда внешний вид пользовательского интерфейса может заметно измениться во время работы с ним.

После того, как ваше приложение вызовет fetchAndActivate() , оно может начать прослушивание обновлений значений параметров в режиме реального времени, вызвав addOnConfigUpdateListener . Этот метод начинает прослушивание любых обновлений значений параметров на стороне сервера, автоматически извлекает их, а затем вызывает прослушиватель. Простая стратегия заключается в активации новых значений в прослушивателе. Однако, как уже упоминалось для fetchAndActivate() , немедленной активации следует избегать для чувствительных пользовательских интерфейсов.

Стратегия 2: Активировать за загрузочным экраном

Для решения потенциальной проблемы с пользовательским интерфейсом, возникшей в стратегии 1, можно использовать экран загрузки. Вместо того, чтобы сразу запускать приложение, отобразите экран загрузки и вызовите fetchAndActivate в обработчике завершения. Затем, сразу после этого, снова с помощью обратного вызова или уведомления, закройте экран загрузки и позвольте пользователю начать взаимодействие с приложением.

При использовании этой стратегии рекомендуется добавить тайм-аут к экрану загрузки. Одноминутный тайм-аут Remote Config может быть слишком долгим для качественного запуска приложения.

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

Стратегия 3: загрузить новые значения для следующего запуска

Эффективная стратегия — загрузка новых значений конфигурации для активации при следующем запуске приложения. В этой стратегии приложение активирует полученные значения при запуске, прежде чем пытаться загрузить новые, исходя из предположения, что оно уже получило, но ещё не активировало, новые значения конфигурации. Порядок действий для этой стратегии следующий:

  1. При запуске немедленно активировать ранее загруженные значения. Это практически мгновенно применяет все значения, загруженные с сервера в предыдущем сеансе.
  2. Пока пользователь взаимодействует с вашим приложением, инициируйте асинхронный вызов для получения новых значений в соответствии с минимальным интервалом выборки по умолчанию и добавьте прослушиватель обновлений конфигурации в режиме реального времени. Этот прослушиватель будет автоматически загружать все значения, опубликованные на сервере во время работы вашего приложения. Обновления в режиме реального времени обходят настройку минимального интервала выборки.
  3. В обработчике завершения или обратном вызове для получения данных не делайте ничего. Ваше приложение сохранит загруженные значения до тех пор, пока вы не активируете их при следующем запуске.

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

Загрузка антистратегий

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

  • Не обновляйте и не переключайте аспекты пользовательского интерфейса, пока пользователь просматривает его или взаимодействует с ним, если только у вас нет на это веских причин, связанных с приложением или бизнесом, например, если вы не хотите удалить опции, связанные с только что завершившейся рекламной акцией.
  • Не отправляйте большое количество одновременных запросов на выборку, так как это может привести к ограничению производительности сервера вашего приложения. Если вам нужно часто загружать обновления, используйте Remote Config в реальном времени . Хотя риск ограничения производительности в большинстве производственных сценариев невелик, во время активной разработки он может стать проблемой, и Remote Config в реальном времени предназначена именно для этого. Ознакомьтесь с руководством по ограничению производительности .
  • Не полагайтесь на сетевое подключение для получения значений Remote Config . Задайте значения параметров по умолчанию в приложении, чтобы оно всегда работало ожидаемым образом. Вы можете периодически синхронизировать значения по умолчанию в приложении и Remote Config , используя загруженные шаблоны .

Следующие шаги

Эти три базовые стратегии ни в коем случае не исчерпывают все способы загрузки значений конфигурации. В зависимости от ваших потребностей вы можете разработать гораздо более сложные стратегии.

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