Почему нельзя LocalContext.current вызывать в Use Case или репозитории

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

Ответ

LocalContext.current нельзя вызывать в Use Case или репозитории, потому что эти слои должны быть независимы от Android-специфичных компонентов. Это нарушает принципы чистой архитектуры и усложняет тестирование.

Контекст нужен только во ViewModel или UI-слое, где его можно передать через параметры или DI.

Пример правильного подхода:

class MyUseCase {
    fun execute(context: Context) { ... }
}

// В ViewModel:
val result = useCase.execute(LocalContext.current)