Application is for shortening long urls. It minifies ans stores the links locally so you can copy and use them later. It uses Shrtcode API for shortening links.
The app was developed by Clean Architecture in a modular structure. It contains Domain, Data, Presentation and App modules.
- Domain - This is an abstraction layer and contains most of contracts
- Data - Implements API calls and application persistence.
- Presentation - Application UI layer
- App module- Connects all of the modules and hold main configurations
- Room - to store data locally
- Coroutines - for asynchronous tasks
- Koin - for dependency injection
- Navigation Component - for navigating through screens
- Retrofit - for API calls
- Timber - for logging
- MockeWebServer - to simulate API calls in unit tests.
Unit tests are implemented at the Data layer and cover Room DB calls and Retrofit API calls.
You can use one of the build types to run the application - prodDebug, devDebug.