Skip to content

Latest commit

 

History

History
65 lines (53 loc) · 3.02 KB

README.md

File metadata and controls

65 lines (53 loc) · 3.02 KB

currency-converter with Jetpack Compose

Currency converter app helps you to convert one currency to another currency

📸 Screens01 📸 Screens02 📸 Screens03
Screenshot_20240329_081136 Screenshot_20240329_073445 Screenshot_20240329_073542

🏗️ Project Structure:

├── src
|    ├── composable
|    |    └── ConvertScreen
|    |  
|    ├── data
|    |    ├── models
|    |    |     ├── ExchangeResponse
|    |    |     ├── Info
|    |    |     └── Query
|    |    └── ConvertApi
|    |
|    ├── di
|    |    └── AppModule
|    |
|    ├── main
|    |    ├── MainRepository
|    |    ├── MainRepositoryImpl
|    |    └── MainViewModel
|    |
└──  ├── utils
     |    ├── ConvertEvent
     |    └── Resource
     |
     ├── MainActivity
     └── MyApp

🔨 This sample app showcases the following:

  • Kotlin
  • Clean and Simple UI with Jetpack Compose
  • Coroutines
  • MVVM(Model + View + ViewModel)
  • ApiLayer
  • Dagger Hilt for DI
  • Retrofit

Built With 🛠

  • Jetpack Compose - Jetpack Compose is Android’s modern toolkit for building native UI. It simplifies and accelerates UI development on Android. Quickly bring your app to life with less code, powerful tools, and intuitive Kotlin APIs.
  • Kotlin - First class and official programming language for Android development.
  • Coroutines - For asynchronous and more.
  • Dependency Injection -
    • Hilt-Dagger - Standard library to incorporate Dagger dependency injection into an Android application.
  • MVVM stands for Model, View, ViewModel -
    • Model: This holds the data of the application. It cannot directly talk to the View. Generally, it’s recommended to expose the data to the ViewModel through Observables.
    • View: It represents the UI of the application devoid of any Application Logic. It observes the ViewModel.
    • ViewModel: It acts as a link between the Model and the View. It’s responsible for transforming the data from the Model. It provides data streams to the View. It also uses hooks or callbacks to update the View. It’ll ask for the data from the Model.

Contact

You can connect with me here LinkedIn