Skip to content

nicoqueijo/Android-Currency-Converter

Repository files navigation

Currency Converter

Currency conversion tool using live exchange rates.

Installation

Demo

Screenshots

https://github.com/nicoqueijo/Android-Currency-Converter/tree/master/graphics/screenshots

API service

https://openexchangerates.org/

Architecture

This app implements the MVVM architectural pattern using a single activity with fragment-swapping and data-caching using a repository to fetch local or remote data.

Dependency Graph

Built with

  • ViewModel - A class designed to store and manage UI-related data in a lifecycle conscious way.
  • LiveData - An observable data holder class.
  • Coroutines - A great new feature of Kotlin which allow you to write asynchronous code in a sequential fashion.
  • Room - An abstraction layer over SQLite to allow fluent database access while harnessing the full power of SQLite.
  • Dagger-Hilt - A dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project.
  • Retrofit - Type-safe HTTP client for Android and Java by Square, Inc.
  • Navigation - A library that can manage complex navigation, transition animation, deep linking, and compile-time checked argument passing between the screens in your app.
  • Data Binding - A support library that allows you to bind UI components in your layouts to data sources in your app using a declarative format rather than programmatically.
  • Moshi - A modern JSON library for Android and Java.
  • JUnit 5 - The most widely used testing framework for Java applications.
  • MockK - A mocking library for Kotlin.
  • Truth - A library that makes your test assertions and failure messages more readable.
  • Material Components for Android - A library that brings Material Theming, new widgets, dark theme support and other exciting features to your Android app.
  • Google AdMob - A mobile advertising platform that you can use to generate revenue from your app.
  • Google Play Billing - A service that lets you sell digital content on Android.
  • Android In-App Billing v3 - A simple, straight-forward implementation of the Android v3 In-app billing API.
  • FadingEdgeLayout - A versatile layout that fades its edges regardless of child view type.
  • DragLinearLayout - An Android LinearLayout that supports draggable and swappable child Views.
  • Recycler Bubble - Provides fast scroll and section indexer for recycler view.
  • TapTargetView - An implementation of tap targets from Google's Material Design guidelines on feature discovery.

Acknowledgments

License

 Copyright 2020 Nicolas Queijo

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.