По какому признаку будешь обновлять кэш

«По какому признаку будешь обновлять кэш» — вопрос из категории Архитектура, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Обновление кэша зависит от типа данных и требований приложения. Основные подходы:

  1. По времени (TTL - Time To Live) - обновляем при превышении заданного интервала:
val cacheExpiryTime = System.currentTimeMillis() - 24 * 60 * 60 * 1000 // 24 часа
if (lastUpdated < cacheExpiryTime) {
    refreshCache()
}
  1. По событию - при действиях пользователя (pull-to-refresh) или системных событиях (push-уведомление)

  2. По версии данных - если API возвращает ETag или версию, сравниваем с локальной

  3. По состоянию соединения - обновляем только при Wi-Fi или при зарядке устройства

Для критичных данных лучше использовать комбинацию подходов, например: проверять TTL + принудительно обновлять при открытии приложения. Для нефункциональных данных (аватарки) можно использовать более ленивую стратегию.