Meli - Compose
Main Branch:
⭐
Features
- Search products from the Mercado Libre API and display them in a list.
- Show error screen if try to fetch the data and doesn't have network connection.
- See the detail from a specific product.
- Unit tests for domain, data and presentation(viewmodel) layers (100% coverage)
- This app supports dark theme and keep state even if the device rotates
- Add and remove products from Shopping cart
Requirements to install the app
- Use phones with Android Api 23+
- Having an internet connection
This application was developed using Kotlin and uses the following components:
- Jetpack compose
- Coroutines
- Clean architecture (Domain, Data, Presentation)
- MVVM
- App center
- Repository pattern
- StateFlow
- Mutable State
- Jetpack navigation compose
- Lottie animations
- Coil (Images)
- Timber (Logs)
- ViewModel
- Dagger Hilt (Dependency injection)
- Coil (Load images)
- Retrofit (HTTP requests)
- Unit testing (Mockk, Thruth, Coroutines tests)
- Room database
- Flow
Screenshots Light theme
Splash | Home | Loading | Products | Detail |
---|---|---|---|---|
Detail quantity modal | Detail quantity textfiel modal | Shopping cart | Empty Cart | Error |
---|---|---|---|---|
Screenshots Dark Mode
Splash | Home | Loading | Products | Detail |
---|---|---|---|---|
Detail quantity modal | Detail quantity textfiel modal | Shopping cart | Empty Cart | Error |
---|---|---|---|---|
🎯
Architecture
The application is built using Clean Architeture pattern based on Architecture Components on Android. The application is divided into three layers:
- Domain: This layer contains the business logic of the application, here we define the data models and the use cases.
- Data: This layer contains the data layer of the application. It contains the database, network and the repository implementation.
- Presentation: This layer contains the presentation layer of the application.
License
MIT
Bikcodeh