Проверьте информацию об обновлениях приложений без Rest API

Вступление

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

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

Что такое обновления приложений?

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

Чтобы лучше понять это, давайте возьмем пример, где у меня есть приложение в Play Store, но произошла программная ошибка или изменение бизнес-требований, и я не хочу, чтобы кто-либо из моих старых или новых пользователей устанавливал или использовал старую версию. моего приложения. Так что же мне делать? Если я исправлю это и выпущу новую версию приложения в магазине.

Этого достаточно? Нет, устранение только этой конкретной проблемы недопустимо. Здесь у нас есть требование, чтобы ни один пользователь не мог использовать старую версию приложения. Так что же нам делать? Здесь мы должны показать Обязательное обновление. Есть два типа обновлений приложений:

  • Обязательное обновление: здесь мы обычно показываем обязательное всплывающее окно для обновления приложения, если только мы не разрешаем пользователям его использовать. Это обязательно, что означает, что пользователь не может перемещаться по нему или использовать какие-либо функции приложения без обновления до последней версии.

  • Последнее обновление: здесь мы обычно показываем всплывающее окно о наличии новой версии, доступной в магазине, и просим его обновить приложение для лучшего использования. Это необязательное обновление, и мы показываем его случайным образом, не каждый раз, когда пользователь разочаровывается. Здесь пользователь может перемещаться или использовать любую функцию приложения без обновления до последней версии.

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

Что мы будем делать

Давайте сделаем кодирование шаг за шагом для облегчения понимания. Наше требование -

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

Реализация

Шаг 1. Если вы еще не добавили Firebase, добавьте Firebase в свой проект Android. Затем давайте добавим зависимость удаленной конфигурации в 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. Пришло время добавить в консоль необходимые значения. В консоли Firebase откройте свой проект, затем выберите Remote Config в разделе Grow в меню слева.

Необходимые параметры:

min_version_of_app: указывает минимально необходимую версию для использования приложения. Без этой или более поздней версии пользователь не сможет получить доступ к контенту приложения. В этом случае мы показываем обязательное всплывающее окно с обновлением.

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

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

«Параметр ключа» и «Значение по умолчанию» мы должны заполнить и, наконец, не забыть нажать « ОПУБЛИКОВАТЬ ИЗМЕНЕНИЯ «, чтобы изменения вступили в силу. Добавьте параметр min_version_of_app & latest_version_of_app и нажмите кнопку «Опубликовать изменения».

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

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

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

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

Шаг 4. Лучше всего запускать все связанные с Firebase вещи в классе приложения onCreate () следующим образом

Это инициализирует firebase и устанавливает значения по умолчанию с помощью setDefaultsAsync (), а затем выполняет вызов выборки. Как только значения получены из Firebase, как мы использовали fetchAndActivate (), что означает выборку и активацию значений после получения, это означает, что если кто-либо из этой точки запросит параметры у remoteConfigObject, он будет иметь самые последние значения, полученные из сервер.

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

Вот так мы получаем последние значения из FirebaseConsole.

Шаг 5. Поскольку мы получили последние значения с консоли, следующим шагом будет проверка обязательного обновления, так как оно имеет высокий приоритет. Для этого нам нужно получить версию приложения на устройстве с помощью метода getAppVersion () и получить min_version_of_app, полученное с консоли, и сравнить их с помощью checkMandateVersionApplicable ( ).

Поскольку в этом приложении для названия версии используется только разделитель точек, мы просто использовали разделитель «.» точка с помощью метода getAppVersionWithoutAlphaNumeric (). В противном случае мы проверяем, что обе версии приложения и latest_version_of_app совпадают, если нет, мы показываем необязательное всплывающее окно с обновлением, однако, если это условие также выполнено, пользователь может перейти к нормальный расход. Лучше всего это сделать в SplashActivity, так как это будет начальный экран запуска.

Вывод:

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

Firecast

Руководство по удаленной настройке Android

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

Вы можете найти меня в Medium и LinkedIn

Спасибо за прочтение…