💰 Converter demonstrates modern Android development with Dagger, Coroutines, Flow, Jetpack (Room, ViewModel), and Material Design based on MVVM architecture.
- Main screen for display latest rates. It is possible to set up a base currency to calculate the exchange rate.
By clicking on a specific currency, you can see more details. - Calculator screen to convert currency pairs.
- Settings screen with possibility share app.
Go to the Releases to download the latest APK.
- Minimum SDK level 24
- Kotlin based, Coroutines + Flow for asynchronous.
- Jetpack
- Lifecycle: Observe Android lifecycles and handle UI states upon the lifecycle changes.
- ViewModel: Manages UI-related data holder and lifecycle aware. Allows data to survive configuration changes such as screen rotations.
- Room: Constructs Database by providing an abstraction layer over SQLite to allow fluent database access.
- Dagger: for dependency injection.
- Architecture
- MVVM Architecture (View - ViewModel - Model)
- Modularization
- Clean architecture
- Repository Pattern
- Retrofit2 & OkHttp3: Construct the REST APIs and paging network data.
- Gson: A modern JSON library for Kotlin and Java.
- Turbine: A small testing library for kotlinx.coroutines Flow.
- Espresso: A testing library.
- Mockito: A testing library.
- JUnit4: A testing library.
- Custom View.
- Material-Components: Material design components.
The application is divided according to the principle of multimodularity, within the modules, the division into packages according to the clean architecture.

Converter is based on the MVVM architecture and the Repository pattern, which follows the Google's official architecture guidance.

Application completely in Kotlin. Support for changing device configuration has been implemented, the main logic is covered by unit tests, ui is covered by UI tests.

