Зная, что выпуск обновления для Google Play может занять от нескольких часов до дня, как лучше всего синхронизировать серверную часть?
- Под синхронизацией бэкэнда я имею в виду обновление хранимых процедур, добавление / удаление столбцов из таблиц и многое другое. -
Синхронизация серверной части после отправки APK, но до того, как обновление будет запущено, может нарушить использование для текущих пользователей, потому что их приложение еще не обновилось для реакции на новые изменения серверной части.
Аналогичным образом, слишком поздняя синхронизация серверной части также нарушит использование, поскольку как новое приложение, так и старое приложение не могут использовать серверную часть должным образом.
Лучшая практика в этой области - не полагаться на одновременный выпуск. Помните, даже если Google Play обновляется мгновенно, пользователи не всегда. Многие крупные компании делают следующее:
Предположим, вы переходите с версии 10 на версию 11 вашего бэкэнда и клиента:
Затем вы можете работать над своим новым сервером, который должен поддерживать только клиенты V11 и V12.
Альтернативой, которая менее безопасна, но требует меньше разработки программного обеспечения, является использование синхронизированной публикации в Google Play. Инструкции на этой странице. В этом процессе вы отправляете свое приложение в Google на предварительную проверку и просите их опубликовать в определенное время после завершения проверки. Это означает, что Google запустит ваше приложение в точное время. Затем вы можете обновить свои серверы в это время.
У вас все еще может быть небольшое окно (минуты), когда серверы Play в разных частях мира не синхронизируются. Кроме того, клиент Play выполняет некоторое кэширование описания приложения на стороне клиента, поэтому, даже если магазин Play обновился, пользователь может не видеть новую версию некоторое время (возможно, часы). Вот почему я рекомендую процедуру, описанную в первой части моего ответа.