Есть ли pet-проекты на Clean Architecture

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

Ответ

Да, есть. Clean Architecture отлично подходит для pet-проектов, так как позволяет четко разделять слои (data, domain, presentation) и упрощает тестирование.

Пример структуры:

  • data — репозитории, API, базы данных.
  • domain — use cases, entities, интерфейсы репозиториев.
  • presentation — ViewModel, UI (Compose/XML).
// Domain
interface UserRepository {  
    suspend fun getUser(): User  
}  

// Data  
class UserRepositoryImpl @Inject constructor(  
    private val api: UserApi  
) : UserRepository {  
    override suspend fun getUser() = api.getUser()  
}  

// Presentation  
class UserViewModel @ViewModelInject constructor(  
    private val getUserUseCase: GetUserUseCase  
) : ViewModel() {  
    val user = liveData { emit(getUserUseCase()) }  
}  

Популярные темы для pet-проектов: погода, todo-лист, криптовалюты. Главное — соблюдать принцип зависимостей (внутрь → наружу).