- Add
CURRENCY_API_KEY
to yourlocal.properties
file - Pase
https://api.apilayer.com/fixer/
toBASE_URL
on yourlocal.properties
file. - Build the project
Develop an application that:
- Can convert currencies between different bases
- Has an input field for amount (numbers only), by default always 1, and another input field to show the converted value
- Button to swap the values in FROM and TO, and accordingly converted data changed
- Show historical data for FROM/TO selections in last 3 days (day by day) - List and chart
- Rates converted to some other popular currencies.
-
Tech-stack
-
Kotlin - a cross-platform, statically typed, general-purpose programming language with type inference.
-
Coroutines - perform background operations.
-
Flow - handle the stream of data asynchronously that executes sequentially.
-
Hilt - Hilt is a dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project.
-
Retrofit - A type-safe HTTP client for Android.
-
- Lifecycle - perform action when lifecycle state changes.
- ViewModel - store and manage UI-related data in a lifecycle conscious way.
- Jetpack Navigation - Implement navigation, from simple button clicks to more complex patterns, such as app bars and the navigation drawer.
-
-
Architecture
- MVVM - Model View View Model in conjunction with modularization architecture
-
Tests
- Unit Tests (JUnit) - a simple framework to write repeatable tests.
- Turbine - Turbine is a small testing library for kotlinx.coroutines
- Coroutines tests - Test utilities for
kotlinx.coroutines
. - Truth - Truth makes your test assertions and failure messages more readable.
-
CI/CD
- Github Actions