A modern, cross-platform currency exchange application built with Kotlin Multiplatform and Compose Multiplatform. CurrencyApp provides users with up-to-date currency exchange rates and seamless currency conversion capabilities across Android and iOS platforms.
- Real-time Exchange Rates: Get the latest currency exchange rates
- Multi-Currency Support: Convert between multiple international currencies
- Cross-Platform: Single codebase for both Android and iOS
- Modern UI: Beautiful, intuitive interface built with Compose Multiplatform
- Offline Capability: Access previously loaded rates when offline
- Fast Performance: Optimized for quick conversions and smooth user experience
- Travelers: Quickly convert currencies while traveling internationally
- Traders: Stay updated with current exchange rates for trading decisions
- General Users: Anyone needing accurate, real-time currency conversion
This project follows Kotlin Multiplatform architecture with shared business logic:
CurrencyApp/
βββ composeApp/ # Shared Compose Multiplatform code
β βββ commonMain/ # Common code for all platforms
β βββ androidMain/ # Android-specific implementations
β βββ iosMain/ # iOS-specific implementations
βββ iosApp/ # iOS application entry point
βββ androidApp/ # Android application module
- Kotlin Multiplatform: Share business logic across platforms
- Compose Multiplatform: Unified UI framework for Android and iOS
- Ktor Client: HTTP networking for API calls
- Kotlinx Serialization: JSON parsing and serialization
- Coroutines: Asynchronous programming
- SQLDelight: Cross-platform database (if applicable)
- Android Studio (Arctic Fox or newer) with Kotlin Multiplatform Mobile plugin
- Xcode (for iOS development)
- JDK 11 or higher
- iOS Simulator or physical iOS device
- Android device/emulator (API level 21+)
-
Clone the repository
git clone https://github.com/remziakgoz/CurrencyApp.git cd CurrencyApp -
Open in Android Studio
- Open Android Studio
- Select "Open an existing project"
- Navigate to the cloned repository folder
-
Build the project
./gradlew build
./gradlew :composeApp:installDebugOr run directly from Android Studio using the Android run configuration.
- Open the
iosApp/iosApp.xcodeprojin Xcode - Select your target device/simulator
- Click Run button or press
Cmd + R
Alternatively, you can run from Android Studio using the iOS run configuration.
- Launch the app on your device
- Select source currency from the dropdown menu
- Enter the amount you want to convert
- Choose target currency for conversion
- View real-time conversion results instantly
- Swap currencies with a single tap for reverse conversion
/composeApp/commonMain: Contains shared business logic, data models, repositories, and common UI components/composeApp/androidMain: Android-specific implementations and platform code/composeApp/iosMain: iOS-specific implementations and platform code/iosApp: iOS app entry point and platform-specific configurations
- Currency Models: Data classes representing currency information
- Exchange Rate API: Service layer for fetching real-time rates
- Repository Pattern: Data management and caching
- Compose UI: Shared UI components across platforms
- Platform-Specific Code: Device-specific functionalities
./gradlew :composeApp:assembleRelease- Open
iosApp.xcodeprojin Xcode - Select "Any iOS Device" as target
- Product β Archive
- Follow App Store distribution workflow
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Commit your changes
git commit -m 'Add some amazing feature' - Push to the branch
git push origin feature/amazing-feature
- Open a Pull Request
- Follow Kotlin coding conventions
- Add unit tests for new features
- Update documentation as needed
- Ensure cross-platform compatibility
- Test on both Android and iOS before submitting
Android:
- Android 5.0 (API level 21) or higher
- 50 MB free storage space
iOS:
- iOS 14.0 or higher
- 50 MB free storage space
This project is licensed under the MIT License - see the LICENSE file for details.
Remzi Akgoz
- GitHub: @remziakgoz
- Kotlin Multiplatform team for the amazing cross-platform technology
- Compose Multiplatform for unified UI development
- JetBrains for developing excellent development tools
- Currency exchange rate API providers
- Open source community for various libraries and tools
If you encounter any issues or have questions:
- Check existing Issues
- Create a new issue with detailed description
- Reach out to the maintainer
Happy Converting! ππ±