Firebase Remote Config предоставляет множество гибких возможностей для того, как и когда получать новые значения с сервера и активировать их в приложении, что позволяет обеспечить качественный пользовательский опыт, контролируя время любых видимых изменений конфигурации. Вы можете получать новые значения при запуске приложения с помощью fetchAndActivate, а также использовать Remote Config в реальном времени в качестве дополнительного метода для автоматического получения последних значений параметров после публикации новой версии Remote Config.
В этом руководстве рассматриваются несколько стратегий загрузки и ключевые соображения по выбору наилучшего варианта для вашего приложения.
Стратегия 1. Получение и активация при загрузке
При использовании этой стратегии приложение вызывает метод fetchAndActivate при первом запуске, чтобы получить новые значения из Remote Config и активировать их сразу после загрузки. Этот подход хорошо работает для изменений конфигурации, которые не вызывают резких визуальных изменений в пользовательском интерфейсе. Не используйте этот подход, если интерфейс может заметно измениться во время использования.
После вызова fetchAndActivate приложение может начать отслеживать обновления значений параметров в реальном времени, вызвав addOnConfigUpdateListener. Этот метод начинает отслеживать обновления значений параметров на стороне сервера, автоматически получает их, а затем вызывает прослушиватель. Один из способов – активировать новые значения в прослушивателе. Однако, как и в случае с fetchAndActivate, не стоит активировать его сразу для конфиденциальных интерфейсов.
Стратегия 2. Активация за экраном загрузки
Чтобы решить проблему с интерфейсом, которая может возникнуть при использовании первой стратегии, можно добавить экран загрузки. Вместо того чтобы сразу запускать приложение, покажите экран загрузки и вызовите fetchAndActivate в обработчике завершения. Затем, также с помощью обратного вызова или уведомления, закройте экран загрузки и разрешите пользователю начать работу с приложением.
Если вы используете эту стратегию, рекомендуется добавить время ожидания для экрана загрузки. Минутный тайм-аут Remote Config может быть слишком долгим для качественного запуска приложения.
Для этого хорошо подходит прослушивание обновлений Remote Config в реальном времени с помощью вызова addOnConfigUpdateListener. Добавьте прослушиватель, когда показывается экран загрузки, а затем используйте activate() в одном или нескольких местах приложения, где значения Remote Config не приведут к резким визуальным изменениям.
Стратегия 3. Загрузка новых значений для следующего запуска
Эффективная стратегия – загрузить новые значения конфигурации, которые будут активированы при следующем запуске приложения. При использовании этой стратегии приложение активирует полученные значения при запуске, прежде чем пытаться получить новые. При этом предполагается, что оно, возможно, уже получило, но ещё не активировало новые значения конфигурации. Порядок операций для этой стратегии:
- При запуске сразу активируйте ранее полученные значения. При этом будут применены все значения, скачанные с сервера в предыдущем сеансе. Это происходит почти мгновенно.
- Пока пользователь взаимодействует с приложением, запустите асинхронный вызов, чтобы получить новые значения в соответствии с минимальным интервалом получения по умолчанию, и добавьте прослушиватель обновления конфигурации в реальном времени. Прослушиватель в реальном времени будет автоматически получать любые значения, опубликованные на сервере во время работы приложения. Обновления в реальном времени игнорируют настройку минимального интервала получения.
- В обработчике завершения или обратном вызове для вызова fetch ничего не делайте. Приложение сохранит скачанные значения до тех пор, пока вы не активируете их при следующем запуске.
При таком подходе время ожидания пользователя значительно сокращается. Сочетание стратегий получения и прослушивания в реальном времени с вызовами activate() по мере необходимости в жизненном цикле приложения гарантирует, что пользователи будут получать последние значения из Remote Config при взаимодействии с вашим приложением.
Загрузка антистратегий
Основываясь на предыдущих разделах стратегий загрузки, избегайте следующих шаблонов использования:
- Не обновляйте и не меняйте элементы интерфейса, пока пользователь просматривает их или взаимодействует с ними, если у вас нет для этого веских причин, связанных с приложением или бизнесом, например необходимости удалить варианты, связанные с только что завершившейся акцией.
- Не отправляйте одновременно большое количество запросов на получение данных, иначе сервер может ограничить работу приложения. Если вам нужно часто получать обновления, используйте Remote Config в реальном времени. Хотя риск ограничения трафика в большинстве рабочих сценариев низок, это может стать проблемой во время активной разработки, и Remote Config в реальном времени предназначен для этого случая использования. Ознакомьтесь с рекомендациями по ограничению трафика.
- Не полагайтесь на сетевое подключение для получения значений Remote Config. Задайте значения параметров по умолчанию, чтобы приложение всегда работало так, как ожидается. Вы можете периодически синхронизировать значения по умолчанию в приложении и серверной части Remote Config, используя скачанные значения по умолчанию из шаблона.
Дальнейшие действия
Эти три базовые стратегии ни в коем случае не являются полным списком способов загрузки значений конфигурации. В зависимости от ваших потребностей вы можете разработать гораздо более сложные стратегии.
Чтобы узнать больше о вызовах для получения и активации значений конфигурации, ознакомьтесь с документацией по API для вашей платформы.