This app is used to show converted rate for different currencies based on the input currency as per the actual realtime rates.
The API used for getting currency rates is https://openexchangerates.org/
To avoid overusage of hitting API endpoints, there is a inbuilt time restriction of 30 mins between 2 successful API call.
- On the launch of app, the app itself updates the rates if more than 30 mins has passed.
- There is a refresh button for manually updating the rates. This also follows the 30 mins restriction.
- On entering the amount & selecting the input currency, all the output currencies will automatically get updated in real time.
- MVVM architecture
- Retrofit
- View Binding
- Material Theme
- Dependency Injection using Hilt
- Room DB for offline support
- Custom GSON Converter & JsonDeserializer
- Coroutines
- Flow
- MutableStates & SharedStates
- Unit Test for Coroutine, Flow, Retrofit Response