Force Update vs Soft Update
Два механизма решают разные задачи:
Force update (принудительное): приложение при запуске проверяет версию и при несоответствии минимально допустимой — блокирует доступ полностью. Пользователь видит экран с кнопкой «Обновить» и не может продолжить работу без обновления.
Soft update (рекомендательное): приложение показывает баннер или диалог с предложением обновиться, но пользователь может его закрыть и продолжать работу.
Когда применять force update
Force update — жёсткое решение с реальными потерями. Применять только при наличии весомых оснований:
| Ситуация | Force / Soft |
|---|---|
| Критическая уязвимость безопасности | Force |
| Несовместимое изменение API (500-ошибки в старой версии) | Force |
| Требование платёжного процессора (PCI DSS) | Force |
| Новые функции и улучшения | Soft |
| Исправление UI-багов без критичных последствий | Soft |
| Устаревший SDK третьей стороны | Зависит от критичности |
Техническая реализация
Стандартная схема через Remote Config:
Старт приложения
↓
Запрос к Remote Config / endpoint
↓
min_required_version = "2.5.0"
current_version = "2.3.1"
↓
current < min? → Показать force update screen
→ Редирект в App Store / Google Play
Remote Config (Firebase Remote Config, собственный сервер) позволяет менять min_required_version в реальном времени без нового релиза. Это важно: если новая версия оказалась нестабильной — можно откатить min_version обратно.
Важно: Всегда тестируйте force update screen перед его активацией. Распространённая ошибка — экран с кнопкой «Обновить», которая ведёт на неверный URL или не работает на части устройств.
Влияние на бизнес-метрики
Force update неизбежно вызывает отток части аудитории:
— Пользователи с медленным соединением могут не завершить загрузку
— Устройства с заполненной памятью не обновятся
— Пользователи без автообновления могут не заметить апдейт в фоне
Рекомендуемая стратегия: за 2–4 недели до активации force update запустить soft update. Это даёт аудитории время подготовиться и существенно снижает разовый пик оттока.