Giter Site home page Giter Site logo

yazan98 / kmm-cryptocurrency Goto Github PK

View Code? Open in Web Editor NEW
17.0 2.0 0.0 424.49 MB

KMM - Kotlin Multiplatform Mobile Project (Android, IOS) Apps Built with Jetpack Compose, SwiftUI, Ktor, Realm Kotlin SDK

License: Apache License 2.0

Kotlin 19.39% Java 8.88% Ruby 0.19% Swift 6.97% Assembly 0.02% Objective-C 64.55%
cryptocurrencies cryptocurrency ios ios-app jetpack-compose jetpack-lifecycle-components kmm kmm-library kmm-mvvm kmm-sample kotlin-android kotlin-multi-platform kotlin-multiplatform kotlin-multiplatform-mobile swiftui kmm-app kmm-example

kmm-cryptocurrency's Introduction

Coina

Cryptocurrency Mobile Application

Description

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

Shared Parts

This Application has Shared Module that Contains The code Shared Between 2 Platforms

  1. Database Queries (Write, Read, Custom Queries)
  2. Key, Value Store (UserDefaults, SharedPrefs)
  3. Api Requests (All APIs)
  4. UseCases (Each UseCase for Each Screen)

Application Features

  1. Login Screen
  2. Home Screen
  3. Coins List
  4. Exchanges List
  5. Categories List
  6. Category Coins List

Components Used to Build this App

Shared Module

  1. Ktor Client
  2. Realm Kotlin SDK
  3. Kotlinx-Serialization
  4. Native cocoapods

Android Modules

  1. Multi Modular App (Each Feature has it's own Module)
  2. Jetpack Compose
  3. Material 3
  4. Ktor Android Client
  5. Lifecycle - ViewModels
  6. Hilt
  7. Kapt
  8. Google Play Services
  9. Jetpack Compose - Navigation Components
  10. Jetpack Compose Accompanist - UI Controller
  11. Coil - Image Loading
  12. Timber
  13. MultiDexMerge
  14. Firebase
  15. MPAndroidChart

IOS App

  1. SwiftUI
  2. Google MaterialComponents - Snackbar
  3. ObjectMapper
  4. Shared Module
  5. Cocoapods Dependencies
  6. Ktor Darwin Client

Application Training Parts

  1. Auth Screen Exists to Test (SharedPrefs, UserDefault) with same Key Value Manager
  2. Coins List Simulate Multiple UseCases and Actions in one ViewModel
  3. Coins List Simulate Same Database Query to Search in Coins
  4. Categories List Simulate Navigation Between Screens in Each Platform
  5. Auth, Home Screens Support Dark, White Mode in each Platform
  6. Project Structure Built Based on cocoapods to Import Shared Library

Application Flow Information

  1. User Flow in The Application

  1. Feature Flow in Each Screen

Screenshots Information

  1. Application Images
  2. Video Compare Android, IOS

IDEs Requirements

  1. Android Studio Version: Android Studio Flamingo | 2022.2.1 Canary 5
  2. XCode Version: Version 14.2 (14C18)

Steps to Run the Project

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

Useful Resources

  1. Key Value Store
  2. SwiftUI
  3. Shared ViewModels
  4. Shared ViewModels
  5. Ktor Documentation
  6. KMM Documentation
  7. Api Link
  8. Android Charts Library
  9. Realm Kotlin SDK
  10. XCode-Kotlin Plugin

kmm-cryptocurrency's People

Contributors

yazan98 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.