Ответ вслух Senior Сборка и публикация в App Store обновлено

Принудительное обновление мобильного приложения

Вопрос

Как вы реализуете принудительное и мягкое обновление приложения?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Нужен источник правды на сервере: удалённый конфиг или эндпоинт отдаёт минимальную поддерживаемую версию и рекомендуемую. Клиент при старте и при возврате из фона сравнивает свою версию покомпонентно, потому что строковое сравнение решит, что 1.10 меньше 1.9.

Что должно прозвучать в ответе

  • Сервер или удалённый конфиг отдаёт минимальную и рекомендуемую версии

  • Клиент сравнивает версии покомпонентно, а не как строки

  • Ниже минимальной: блокирующий экран со ссылкой в App Store

  • Ниже рекомендуемой: ненавязчивое предложение обновиться

  • API держит обратную совместимость, принудительное обновление крайняя мера

  • Учесть офлайн и задержку ревью: минимальную версию поднимать после раскатки

Что могут спросить следом

  • Почему нельзя сравнивать версии как строки?
  • Что делать, если сломан сам экран обновления?

Разбор

Нужен источник правды на сервере: удалённый конфиг или эндпоинт отдаёт минимальную поддерживаемую версию и рекомендуемую. Клиент при старте и при возврате из фона сравнивает свою версию покомпонентно, потому что строковое сравнение решит, что 1.10 меньше 1.9. Если версия ниже минимальной, показываю блокирующий экран с кнопкой в App Store: это для случаев, когда старый клиент опасен, например сломан протокол или найдена уязвимость. Если ниже рекомендуемой, показываю мягкий баннер не чаще раза в несколько дней. Сам экран обновления держу максимально простым и без зависимостей. И помню, что принудительное обновление крайняя мера: лучше версионировать API и поддерживать старые клиенты, а минимальную версию поднимать, только когда новая раскатана на всех.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме