Currency Converter
Pre Requisities
Setup
- Add
CURRENCY_API_KEY
to yourlocal.properties
file - Pase
https://api.apilayer.com/fixer/
toBASE_URL
on yourlocal.properties
file. - Build the project
Background
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
-
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.
-
Leak Canary – a memory leak detection library for Android.
-
-
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