Skip to content

Modern Android App for converting most commonly used currencies

Notifications You must be signed in to change notification settings

AlejandroHCruz/currency-converter

Repository files navigation

Currency Converter App

Clean Architecture

Diagram showing what was followed in this app:

⚙️ Technologies used

  • Room
  • MVVM
  • LiveData
  • Retrofit2 + Moshi
  • Coroutines
  • Kotlin
  • Dagger2
  • Espresso
  • RecyclerView
  • Material Components
  • Jetpack
  • Lifecycle Extensions
  • Junit 5
  • Crashlytics

📱 Devices supported:

  • Android 5 and up
  • Phones, Chromebooks and Tablets

🚀 Definition of "shippable"

  • App has an icon & splash screen
  • Query the values every second (while the app is in the foreground)
  • Offline support (with Room database)
  • Orientation change
  • Not using any experimental library or technology
  • No TODOs left in the code
  • Tests for meaningful parts of the code

🎇 Features

✨ Requested features

  • Every currency has a flag icon & a consistant name
  • Hint: Color and value in the EditText
  • Typing in values (Removing the leading 0, can't input anything but positive numbers)
  • Typing a lot of numbers on any one does not break the app
  • Changin base currency by tapping on the row
  • Any currency works as expected when using it as a base (KRW & IDR were challenging)
  • While typing, the the values of the other currencies keep updating
  • Tapping an item while typing works aswell

💖 Additional Features

  • Bottom bar is the same color as the status bar
  • Configuring TLSv1.3 or 1.2 on app start (when needed)
  • Localized into German, Spanish & French
  • On Scroll: dismiss the keyboard
  • On app start: No EditText is selected automatically
  • Setup working Crashlytics
  • Loading screen (when no data is cached), relevant for slow internet connection
  • Error screen (when no data is cached), relevant for when the user does not have internet and opens the app for the first time
  • Error snack bars
  • Handle focus when changing the base currency (select the top most instead of the one that was being edited)
  • Don't update values in the UI while scrolling (for performance ⚡️)

🙏 Credits

🏳 Vector files:

🤲 Open Source Projects

About

Modern Android App for converting most commonly used currencies

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages