How manojcse90/composeandcleanarchitctureexample works
This appears to be an Android app for presenting users fetched from a remote API, organized into Compose presentation, domain, and data layers. The intended flow is a user screen through a ViewModel and use case to a repository and API, then back as user data. The README is empty and the sampled source contains no runtime implementation, so these connections are inferred from names and paths; exact calls, mapping, and dependency-injection wiring cannot be verified.
Main entry points: UserApi.kt User API · UserRepositoryImpl.kt Repository implementation · MainActivity.kt Main activity · MyApp.kt App composition
Components 13
Presentation
- Main activity
app/src/main/java/com/example/composeandcleanarchitctureexample/presentation/view/MainActivity.kt - App composition
app/src/main/java/com/example/composeandcleanarchitctureexample/presentation/MyApp.kt - User screen
app/src/main/java/com/example/composeandcleanarchitctureexample/presentation/view/UserScreen.kt - User ViewModel
app/src/main/java/com/example/composeandcleanarchitctureexample/presentation/viewmodel/UserViewModel.kt
Domain
- Get users
app/src/main/java/com/example/composeandcleanarchitctureexample/domain/usecase/GetUsersUseCase.kt - User repository contract
app/src/main/java/com/example/composeandcleanarchitctureexample/domain/repository/UserRepository.kt - Domain user
app/src/main/java/com/example/composeandcleanarchitctureexample/domain/model/User.kt
Data
- Repository implementation
app/src/main/java/com/example/composeandcleanarchitctureexample/data/repository/UserRepositoryImpl.kt - User API
app/src/main/java/com/example/composeandcleanarchitctureexample/data/api/UserApi.kt - User DTO
app/src/main/java/com/example/composeandcleanarchitctureexample/data/model/UserDto.kt
App wiring
- Network module
app/src/main/java/com/example/composeandcleanarchitctureexample/di/NetworkModule.kt
Other components
- App user
- Remote service
Connections 11
- App user → Main activity: opens
- Main activity → App composition: starts
- App composition → User screen: composes
- User screen → User ViewModel: requests users
- User ViewModel → Get users: invokes
- Get users → User repository contract: requests users
- Repository implementation → User repository contract: implements
- Repository implementation → User API: fetches users
- User API → Remote service: requests users
- User API → User DTO: returns DTOs
- Network module → User API: provides client