В рамках какой задачи решал последнюю проблему

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

Ответ

Разрабатывал фичу для оффлайн-режима в приложении. Столкнулся с проблемой синхронизации данных при восстановлении соединения. Реализовал механизм очереди запросов с экспоненциальной задержкой повторов.

class SyncWorker(context: Context, params: WorkerParameters) : CoroutineWorker(context, params) {
    override suspend fun doWork(): Result {
        val pendingRequests = database.getPendingRequests()
        return try {
            pendingRequests.forEach { request ->
                api.sync(request).also { 
                    database.deletePendingRequest(request.id) 
                }
            }
            Result.success()
        } catch (e: Exception) {
            Result.retry()
        }
    }
}

Использовал WorkManager для фоновой синхронизации и Room для хранения pending-запросов. Добавил обработку конфликтов при параллельном изменении данных.