Cryptocurrency Mobile Application
This Project is a Kotlin Multiplatform Mobile Application That Built on Android, IOS Platforms to show Cryptocurrencies Information Based on Free Api This Application is a Simple Demo To See how i can Integrate Shared Logic Between 2 Platforms for Saved Data With/Without Session, Api Requests, Database Queries
This Application has Shared Module that Contains The code Shared Between 2 Platforms
- Database Queries (Write, Read, Custom Queries)
- Key, Value Store (UserDefaults, SharedPrefs)
- Api Requests (All APIs)
- UseCases (Each UseCase for Each Screen)
- Login Screen
- Home Screen
- Coins List
- Exchanges List
- Categories List
- Category Coins List
Shared Module
- Ktor Client
- Realm Kotlin SDK
- Kotlinx-Serialization
- Native cocoapods
Android Modules
- Multi Modular App (Each Feature has it's own Module)
- Jetpack Compose
- Material 3
- Ktor Android Client
- Lifecycle - ViewModels
- Hilt
- Kapt
- Google Play Services
- Jetpack Compose - Navigation Components
- Jetpack Compose Accompanist - UI Controller
- Coil - Image Loading
- Timber
- MultiDexMerge
- Firebase
- MPAndroidChart
IOS App
- SwiftUI
- Google MaterialComponents - Snackbar
- ObjectMapper
- Shared Module
- Cocoapods Dependencies
- Ktor Darwin Client
- Auth Screen Exists to Test (SharedPrefs, UserDefault) with same Key Value Manager
- Coins List Simulate Multiple UseCases and Actions in one ViewModel
- Coins List Simulate Same Database Query to Search in Coins
- Categories List Simulate Navigation Between Screens in Each Platform
- Auth, Home Screens Support Dark, White Mode in each Platform
- Project Structure Built Based on cocoapods to Import Shared Library
- User Flow in The Application
- Feature Flow in Each Screen
- Android Studio Version: Android Studio Flamingo | 2022.2.1 Canary 5
- XCode Version: Version 14.2 (14C18)
1. Open Android Studio with Root Application
2. Open Terminal and Execute (pod install)
If Gradle Build Failed for First Time
3. Execute Command (cd iosApp)
4. Execute Command (pod install)
5. Run The Android App
6. Open XCode with iosApp Folder
7. Execute Command (pod update shared)
8. Run IOS App