Возможности
Обновление приходит само
- При запуске приложение сверяет свою версию с последней опубликованной и, если версии разошлись, скачивает новую в фоне. Проверка начинается через несколько секунд после того, как приложение уже открылось и показало меню, — первые экраны от неё не тормозят.
- Скачанное применяется на следующем полном запуске приложения. Гость не видит ни перезагрузки экрана, ни прерывания того, что делал: в следующий заход приложение просто открывается новой версией.
- Обновление везёт содержимое приложения — экраны, тексты, оформление, логику меню, корзины и оформления заказа. Работает одинаково на iOS и Android.
- Целостность скачанного проверяется контрольной суммой; повреждённое не применяется. Если новая версия не смогла запуститься, приложение само возвращается на предыдущую рабочую — гость остаётся с работающим приложением.
- Если сеть недоступна или проверка не удалась, приложение молча остаётся на текущей версии: ошибок гостю не показывают.
Проверка и перезапуск вручную
- В профиле гость видит строку с номером текущей версии приложения. Строка есть только в приложении; на сайте её нет.
- Тап по строке запускает проверку вручную. По ходу строка сменяется на «Проверяем обновления», затем на «Загружаем обновление» с процентами, а если обновлять нечего — на «У вас последняя версия» на несколько секунд.
- Когда обновление скачано, под строкой появляется кнопка «Перезапустить приложение»: гость может применить обновление сразу, не дожидаясь следующего запуска.
- Если версию определить не удалось, вместо номера показывается «Версия неизвестна» — проверка при этом всё равно отрабатывает.
Как настроить
Со стороны заведения настраивать нечего. Механизм включён по умолчанию на обеих платформах и работает в собранном приложении сам; отдельного экрана, галочки или расписания у него нет — ни в кабинете, ни в приложении.
Единственное предварительное условие — у организации собрано и опубликовано собственное приложение по обычной процедуре создания приложения.
Для отдельного приложения обновления могут быть выключены на этапе сборки. В таком приложении номер версии в профиле остаётся на месте, но проверка ничего не делает, и новые версии доезжают до гостя только через магазин.
Что должно быть настроено и ограничения
- Нужно собранное приложение организации текущего поколения. Приложение, собранное на прежней технологии, этого механизма не имеет.
- Обновление применяется на следующем полном запуске. Гость, который держит приложение в фоне и не закрывает его, остаётся на прежней версии сколько угодно долго; кнопка перезапуска в профиле — способ не ждать.
- Проверка стартует через несколько секунд после открытия приложения, поэтому при очень коротком заходе может не успеть; тогда обновление подтянется в следующий раз.
- Нужна сеть в момент запуска. Без неё проверка тихо пропускается.
- Обновление из магазина сбрасывает накопленное: приложение начинает с той версии, что вшита в новую сборку, и дальше догоняет обычным порядком.
- У части приложений механизм выключен при сборке. Правила App Store допускают отказ в публикации именно из-за возможности менять содержимое приложения после проверки, и тогда приложение выпускается без обновлений; на Android такого ограничения нет.
- Номер версии в профиле — это версия содержимого приложения, и она не совпадает с версией, которую показывает магазин. Расхождение — норма, а не сбой.
Чего нет
- Не заменяет установку из магазина. Всё, что затрагивает нативную часть приложения — иконка, название, набор системных возможностей, разрешения, — приезжает только новой сборкой в магазине.
- Не спрашивает гостя и не принуждает его. Баннера «доступно обновление», предложения обновиться и обязательного обновления в приложении нет: проверка молчаливая, а видимое действие — только тап по версии в профиле.
- Не даёт заведению управлять выкатом. Выбрать версию для своих гостей, отложить обновление, выкатить его на часть аудитории или откатить со своей стороны нельзя: версия одна для всех приложений сразу.
- Не показывает, что изменилось: списка изменений в приложении нет.
- Не обновляет приложение, пока гость его не закрыл. Возврат из фона запуском не считается.
- На сайте не применяется и не нужен: браузер получает свежую версию сам.
Примеры
Исправление доезжает до гостей без магазина
- Заведение сообщает о неудобстве или ошибке в приложении.
- Исправление выходит в очередной версии приложения.
- Гость открывает приложение, оно через несколько секунд находит новую версию и скачивает её в фоне. Гость в это время спокойно набирает корзину.
- В следующий раз, когда гость откроет приложение заново, оно запустится уже исправленным. Из магазина гость ничего не ставил и обновления не заметил.
Гость обновляет вручную
- Гость открывает профиль и видит внизу номер версии приложения.
- Тап по номеру: строка сменяется на «Проверяем обновления».
- Обновление находится и скачивается — строка показывает проценты.
- Под строкой появляется кнопка «Перезапустить приложение».
- Гость нажимает её, приложение перезапускается уже на новой версии.
После установки из магазина
- Гость обновляет приложение в магазине обычным способом.
- Приложение стартует с той версии содержимого, что вшита в новую сборку, — накопленные ранее обновления сброшены.
- При ближайшем запуске проверка снова находит последнюю опубликованную версию и догоняет её тем же способом, без участия гостя.