/CleanArchitectureCurrencyConverterApp

This app uses clean architecture principles combined with MVVM to build an offline first currecncy converter app.

Primary LanguageKotlin

CurrencyConverter App

An simple currency converter app utilizing CurrentLayer API.

Built with ❤︎ by Kashif Mehmood


Features

  • Updated Exchange rates.
  • Offline Support
  • Conversion in realtime.
  • Every 30 minutes gets the latest rates and update lcoal DB

Architecture

  • Built with Modern Android Development practices
  • Utilized Usecase, Repository pattern for data
  • Includes unit tests for Use cases.

Built With 🛠

  • Kotlin - First class and official programming language for Android development.
  • Coroutines - For asynchronous and more..
  • Flow - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.
  • Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
    • LiveData - Data objects that notify views when the underlying database changes.
    • ViewModel - Stores UI-related data that isn't destroyed on UI changes.
    • ViewBinding - Generates a binding class for each XML layout file present in that module and allows you to more easily write code that interacts with views.
  • Dependency Injection
    • Hilt - Easier way to incorporate Dagger DI into Android apps.
  • Room - For saving Data in local DB and to provide offline support.
  • Retrofit - A type-safe HTTP client for Android and Java.
  • Work Manager - WorkManager the recommended library for persistent work.
  • Material Components for Android - Modular and customizable Material Design UI components for Android.
  • Gradle Kotlin DSL - For writing Gradle build scripts using Kotlin.
  • MockK - For Mocking and Unit Testing

To Be Done:

  • UI tests

👨 Developed By

Kashif Mehmood

[![Linkedin] (https://www.linkedin.com/in/kashif-mehmood-km)