A modern cryptocurrency mobile application built with Kotlin Multiplatform Mobile (KMM) for Android and iOS platforms.
| Android | iOS |
|---|---|
![]() |
![]() |
Coina is a comprehensive cryptocurrency mobile application built using Kotlin Multiplatform Mobile (KMM) technology. The app provides real-time cryptocurrency information, market data, and portfolio tracking across both Android and iOS platforms with a shared codebase.
- Cross-Platform: Single codebase for Android and iOS
- Real-time Data: Live cryptocurrency prices and market information
- Modern UI: Material Design 3 on Android, SwiftUI on iOS
- Offline Support: Local data storage with Realm database
- Dark/Light Theme: Adaptive theming support
- Modular Architecture: Clean separation of concerns with feature modules
Powered by the free CoinGecko API for real-time cryptocurrency data.
The core of the application is built around a shared Kotlin module that contains:
- Database Layer: Realm database for local data persistence
- API Layer: HTTP client with Ktor for network requests
- Storage Layer: Cross-platform key-value storage (SharedPreferences/UserDefaults)
- Business Logic: Use cases and view models shared between platforms
- Data Models: Common data structures and serialization
androidFeatures:core- Core Android utilities and base classesandroidFeatures:auth- Authentication screens and logicandroidFeatures:home- Home screen and main navigationandroidFeatures:coin- Cryptocurrency details and charts
- Authentication Screen - User login and session management
- Home Dashboard - Market overview and trending cryptocurrencies
- Cryptocurrency List - Comprehensive list of all available coins
- Exchange List - Cryptocurrency exchange information
- Categories - Cryptocurrency categories and classifications
- Category Coins - Coins filtered by specific categories
- Coin Details - Detailed information, charts, and market data
- Ktor Client - HTTP networking and API communication
- Realm Kotlin SDK - Local database and data persistence
- Kotlinx Serialization - JSON serialization/deserialization
- Kotlin Coroutines - Asynchronous programming
- CocoaPods - iOS dependency management
- Jetpack Compose - Modern declarative UI toolkit
- Material Design 3 - Latest Material Design components
- Hilt - Dependency injection framework
- Navigation Compose - Type-safe navigation
- Coil - Image loading and caching
- Firebase - Analytics, Crashlytics, and cloud services
- MPAndroidChart - Interactive charts and graphs
- Timber - Logging framework
- MultiDex - Support for large applications
- SwiftUI - Declarative UI framework
- Material Components - Google's Material Design for iOS
- ObjectMapper - JSON object mapping
- CocoaPods - Dependency management
- Ktor Darwin Client - iOS-specific HTTP client
This project demonstrates several key concepts in mobile development:
- Cross-Platform Data Storage - Shared key-value storage using SharedPreferences (Android) and UserDefaults (iOS)
- Shared ViewModels - Business logic sharing between platforms with common state management
- Database Integration - Realm database queries and local data persistence
- Navigation Patterns - Platform-specific navigation implementations
- Theme Support - Dark and light mode implementation across platforms
- Modular Architecture - CocoaPods integration for shared library management
- Screenshots: View all application screenshots
- Demo Video: Platform comparison video
- Android Studio: Flamingo | 2022.2.1 Canary 5 or later
- Xcode: Version 14.2 (14C18) or later
- Kotlin: 1.6.20
- Gradle: 8.0.0-alpha05
- Android: API 24+ (Android 7.0)
- iOS: 14.1+
- macOS: Required for iOS development
- Install Android Studio with latest SDK
- Install Xcode (macOS only)
- Install CocoaPods:
sudo gem install cocoapods
git clone https://github.com/0x0zeus/coina-cryptocurrency-app.git
cd coina-cryptocurrency-app# Open in Android Studio
# Sync project with Gradle files
# Install dependencies automaticallycd iosApp
pod install
cd ..Android:
- Open project in Android Studio
- Select target device/emulator
- Click Run button
iOS:
- Open
iosApp/iosApp.xcworkspacein Xcode - Select target device/simulator
- Click Run button
If you encounter build issues:
# Clean and rebuild
cd iosApp
pod update shared
pod install
cd ..
# Clean Android project in Android Studio- KMM Official Documentation
- Ktor Multiplatform Client
- Shared ViewModels Architecture
- KMM Shared ViewModels
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Haruki Mizuno
- GitHub: @0x0Zeus




