Ответ
Да, есть. 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-лист, криптовалюты. Главное — соблюдать принцип зависимостей (внутрь → наружу).