Skip to content

AlexRaya25/XChange-KMP

Repository files navigation

XChange

XChange is a currency conversion application developed with Kotlin Multiplatform (KMP). It is currently available for Android and Desktop.

🌐 Web Version

You can access the XChange Web App here: 🔗 XChange Web

📸 Screenshots

📱 Mobile Version Images

💻 Desktop Version Images


🔧 Roadmap

✅ Support for Android 📱
✅ Support for Desktop 💻
⬜ Support for iOS 🍏
✅ Support for Web 🌐


🚀 Technologies Used

XChange leverages Kotlin Multiplatform to share logic across platforms. Here are the main technologies used:

📦 Main Dependencies

// 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)

📊 Charts

  • Android: MPAndroidChart

    implementation("com.github.PhilJay:MPAndroidChart:$mpandroidchartVersion")
  • Desktop: KoalaPlot

    implementation("io.github.koalaplot:koalaplot-core:$koalaplotCoreVersion")

🌍 API Used

XChange retrieves currency conversion data from the free Frankfurter API. 📡

Example API call:

https://api.frankfurter.dev/latest?from=USD&to=EUR

⚙️ Installation and Execution

Clone the Repository

git clone https://github.com/AlexRaya25/xchange.git
cd xchange

Android

./gradlew installDebug

Desktop

./gradlew run

iOS (Future)

./gradlew iosDeploy

About

A currency application developed with Kotlin Multiplatform (KMP)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages