Giter Club home page Giter Club logo

currencyconverter's Introduction

Currency converter

image

Features

  • App displays monthly requests left for the month
  • User can select a base and target currency to convert a input amount
  • Result quote is displayed and if user approves, the approved transaction is added under recent transactions

Technologies and Libraries Used

  • Android Jetpack Compose: Modern UI toolkit for building native Android UI.
  • Kotlin Coroutines: For asynchronous and concurrent programming.
  • Room: Android's SQLite database library for local data storage.
  • ViewModel: Part of the Android Architecture Components, used to manage UI-related data in a lifecycle-aware manner.
  • Retrofit: HTTP client library for making network requests.
  • Gson: JSON serialization/deserialization library for parsing API responses.
  • Dagger Hilt: Dependency injection framework for Android.
  • Kotlin DSL: Gradle build scripts written in Kotlin.

Architecture

  • The app follows the principles of Clean Architecture, which promotes separation of concerns and modular development. The architecture consists of the following layers:

  • Presentation: Contains the Jetpack Compose UI components, ViewModels, and UI-related logic.

  • Domain: Contains the business logic and defines the use cases of the application.

  • Usecase: Implements the concrete implementations of the data sources, such as network and local database.

  • Data: Handles data operations, including fetching data from the network and accessing the local database using Room.

  • Dependency Injection: Uses Dagger Hilt for dependency injection, enabling modular and testable code.

Improvements for future

  • Enhanced UI validation and UX
  • Error handling and appropriate error messages shown to user upon failure
  • Storing data in better format. e.g. Storing conversion rates in float rather than in string
  • Accessibility support can be added
  • Modularisation of features

currencyconverter's People

Contributors

javeria-amatul avatar

Watchers

 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.