Проектирование Android‑приложения‑агрегатора новостных лент

Используйте локальную БД как источник данных для UI, репозиторий для синхронизации RSS и очередь обновлений. Строгое фоновое обновление каждые пять минут обычному Android-приложению гарантировать нельзя.

Короткий ответ

Что ответить на собеседовании

Используйте локальную БД как источник данных для UI, репозиторий для синхронизации RSS и очередь обновлений. Строгое фоновое обновление каждые пять минут обычному Android-приложению гарантировать нельзя.

Подробный разбор

Ответ с пояснениями

Условие

Разработать архитектуру Android‑приложения (минимальная версия 5.0 и выше), которое собирает новости из разных источников (RSS и аналогичные форматы) с ограниченным набором поддерживаемых протоколов. Необходимо реализовать режим работы без сети, обеспечить высокую производительность и автоматическое обновление источников каждые 5 минут. Приложение должно иметь два интерфейса: список новостей, упорядоченный по дате, и экран отдельной новости, где отображаются краткое описание и ссылка на оригинальный материал.

Ответ

Используйте локальную БД как источник данных для UI, репозиторий для синхронизации RSS и очередь обновлений. Строгое фоновое обновление каждые пять минут обычному Android-приложению гарантировать нельзя.

Сохраняйте новости по устойчивому ID или нормализованной ссылке, поддерживайте пагинацию и отметки обновления источников. Сеть обновляет БД, а список и детали читают её и работают офлайн. В активном приложении допустим пятиминутный таймер с отменой по lifecycle; для фоновой синхронизации WorkManager имеет минимальный период 15 минут и неточное время запуска. Если пять минут — жёсткий SLA, нужно пересогласовать требование или архитектуру, а не обходить ограничения бесконечным сервисом. Для Android 5 отдельно проверяйте minSdk выбранных версий библиотек.

Источник: developer.android.com.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее