XChange is a currency conversion application developed with Kotlin Multiplatform (KMP). It is currently available for Android and Desktop.
You can access the XChange Web App here: 🔗 XChange Web
✅ Support for Android 📱
✅ Support for Desktop 💻
⬜ Support for iOS 🍏
✅ Support for Web 🌐
XChange leverages Kotlin Multiplatform to share logic across platforms. Here are the main technologies used:
// Jetpack Compose
implementation(compose.runtime)
implementation(compose.foundation)
implementation(compose.material3)
implementation(compose.ui)
implementation(compose.components.resources)
implementation(compose.components.uiToolingPreview)
// Networking
implementation(libs.ktor.client.core)
implementation(libs.ktor.client.json)
implementation(libs.ktor.serialization.kotlinx.json)
implementation(libs.ktor.client.serialization)
implementation(libs.ktor.client.logging)
implementation(libs.ktor.client.cio)
implementation(libs.ktor.client.content.negotiation)
// Dependency Injection
implementation(libs.koin.core)
// AndroidX Lifecycle
implementation(libs.androidx.lifecycle.viewmodel)
implementation(libs.androidx.lifecycle.runtime.compose)
// Kotlin Standard Library
implementation(libs.kotlin.stdlib.jdk8)-
Android: MPAndroidChart
implementation("com.github.PhilJay:MPAndroidChart:$mpandroidchartVersion") -
Desktop: KoalaPlot
implementation("io.github.koalaplot:koalaplot-core:$koalaplotCoreVersion")
XChange retrieves currency conversion data from the free Frankfurter API. 📡
Example API call:
https://api.frankfurter.dev/latest?from=USD&to=EURgit clone https://github.com/AlexRaya25/xchange.git
cd xchange./gradlew installDebug./gradlew run./gradlew iosDeploy