Features Implemented
- Search star war characters based on user input.
- Display details like name, birth year, height, species, planet, films, opening moview crawl for selected star war character
Unit test cases are included for the following:
- ViewModel
- UseCases
- 100% Kotlin
- Architecture (Clean Architecture, MVVM)
- Dependency Injection(Using HILT)
- Coroutines
- Kotlin Flow
- Architecture Components(LiveData, ViewModel)
- GSON for parsing
- Navigation
- Extension Functions
- Unit Testing(Junit, Mockito)
This layer mainly deals with the UI of the application and has its own presentation models.
Components
- Activity/Fragment: Presents data on the screen and pass user interaction to viewmodel
- ViewModel: Executes use cases based on user interaction and updates ui using LiveData
Contains all the business logic for the application.Domain layers is independent of other layers, has its own models, so that changes in other layers will have no effect on domain layer.
Components
- UseCase : Handles business logic
- Domain Models: Represents structure of response data
- Repository Interface: To keep domain layer independent from data layer.
Manages application data and exposes data to domain layer
components
- Repository : Gets the requested data using api service ans exposes data to domain layer.
- Mapper : Used to map data models to domains models to keep domain independent of data layer.
- DataModel : Structure for data retrieved from remote data source.