Skip to content

Rahmani1988/CurrencyConvertor

Repository files navigation

💱 CurrencyConverter KMP

A modern Kotlin Multiplatform (KMP) mobile application that provides real-time currency conversion. This project demonstrates a shared-logic architecture where the core business logic, networking, and dependency injection are unified, while the UI remains native to each platform.

android-screenshot iOS-screenshot

🚀 Tech Stack

  • Shared Logic: Kotlin Multiplatform (KMP)
  • Android UI Layer: Android: Jetpack Compose
  • iOS UI Layer: SwiftUI
  • Networking: Ktor 3.0 (with Content Negotiation & Serialization)
  • Dependency Injection: Koin 4.0
  • Architecture: MVVM (Model-View-ViewModel)
  • Concurrency & Interop: SKIE (For seamless Kotlin Coroutines/Flow to Swift Async/Await conversion)
  • Build Config: BuildKonfig for secure API key management

📂 Project Structure

  • shared: The heart of the app. Contains the API client, data models, repositories, and ViewModels
    • commonMain: Shared business logic
    • androidMain / iosMain: Platform-specific implementations (e.g., Ktor engines)
  • composeApp: The Android-specific entry point and Jetpack Compose UI
  • iosApp: The Xcode project for the SwiftUI application

🛠️ Setup & Configuration

  1. API Key Setup. This project uses the ExchangeRate-API. Obtain an API key from their ExchangeRate-API.
  2. Create a local.properties file in your root directory
  3. Add your key: EXCHANGE_API_KEY=your_api_key_here
  4. Building the Project! Android: Open in Android Studio and run the composeApp configuration. iOS: Open the iosApp/iosApp.xcworkspace in Xcode or run via the KMP plugin in Android Studio.

About

A modern Kotlin Multiplatform (KMP) mobile application that provides real-time currency conversion.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors