Skip to content

nicoqueijo/Android-Currency-Converter

Repository files navigation

Overview

Currency conversion Android app using live exchange rates.

Installation

Demo

Key Features

  • Convert multiple currencies simultaneously
  • Add unlimited currencies to your list
  • Drag & drop to reorder currencies in your list
  • Swipe to remove currencies from your list
  • Copy conversion results to your clipboard
  • Search and filter currencies by name or ISO 4217 code
  • Locale-based conversion formatting for maximum clarity and readability

Architecture


Modularization

App Launch Flowchart

Built With

  • Compose - Android’s modern toolkit for building native UI with a declarative approach.
  • Room - A persistence library that provides an abstraction layer over SQLite to allow for more robust database access while harnessing the full power of SQLite.
  • Ktor - An asynchronous framework for creating microservices and web applications in Kotlin, designed to be lightweight and highly extensible.
  • Navigation - Simplifies implementing navigation, including handling fragment transactions, deep linking, and providing a consistent user experience.
  • Hilt - A dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project.
  • Material3 - A design system that provides a set of principles and components for creating modern, adaptive UIs in Jetpack Compose.
  • DataStore - A data storage solution that allows you to store key-value pairs or typed objects with built-in support for Kotlin coroutines and Flow.
  • Kotest - A flexible and comprehensive testing library for Kotlin, offering a range of testing styles and extensive assertion capabilities.
  • JUnit5 - A testing framework for Java and Kotlin that provides powerful tools for writing and running tests.
  • MockK - A mocking library for Kotlin that simplifies the creation of mocks, stubs, and spies, providing a powerful way to handle complex testing scenarios.
  • Kotlin Coroutines - Simplify asynchronous programming by allowing you to write concurrent code that is more readable and maintainable.
  • Kotlin Serialization - A Kotlin library for converting Kotlin objects to and from JSON and other formats seamlessly.
  • Reorderable - A Jetpack Compose library that allows you to create reorderable lists and grids with drag-and-drop functionality.
  • Tap Target Compose - A Jetpack Compose library that helps you guide users by highlighting specific UI elements with customizable tap targets.