No Description

MrOzOn 5473c69c97 add test for fun loadCurrencies 4 years ago
app 5473c69c97 add test for fun loadCurrencies 4 years ago
gradle 4db64476c5 initial commit 4 years ago
.gitignore 4db64476c5 initial commit 4 years ago
README.md 261fe75597 add network dependencies 4 years ago
build.gradle d2692191ca add dependencies for room 4 years ago
detekt-config.yml 0ea71ba332 add Timber 4 years ago
detekt.gradle 97b138e11f add Detekt (static code analysis tool) 4 years ago
gradle.properties 4db64476c5 initial commit 4 years ago
gradlew 4db64476c5 initial commit 4 years ago
gradlew.bat 4db64476c5 initial commit 4 years ago
settings.gradle 4db64476c5 initial commit 4 years ago

README.md

CurrencyConverter

Тестовое приложение - конвертор валют

Исходные данные

На экране пользователю доступы список всех валют с возможностью ввода. После изменения любого из полей все остальные поля пересчитываются согласно курса валют.

Курсы валют брать отсюда: https://www.cbr-xml-daily.ru/daily_json.js

При каждом входе в приложении следует пытаться загрузить по сети курсы валют и (в случае их доступности) сохранять их локально (кэшировать следует безусловно, не нужно проверять, отличаются ли загруженные курсы от закэшированных). В случае, если загрузить не удалось / не успели, следует использовать закэшированные курсы.

Обязательные требования:

  • Код пишется на Kotlin/Java.
  • Использовать мета­паттерн MVVM.

Будет плюсом:

  • В проекте имеется выверенная архитектура с четким разделением обязанностей по слоям.
  • Модель защищена юнит­тестами на уровне method coverage (branch coverage – это плюс, но необязательный).
  • Приложение оформлено в Material Design.

Используемый стек

  • MVVM
  • Kotlin Coroutines
  • Dagger2 and Hilt
  • Room
  • Retrofit

Дополнительные инструменты

  • статический анализатор кода Detekt (запуск проверки - команда ./gradlew detekt)