بدون توضیح

MrOzOn 3cc920e3f1 fix README.md 4 سال پیش
app 367efff9cd add landscape layout for fragment 4 سال پیش
gradle 4db64476c5 initial commit 4 سال پیش
.gitignore 4db64476c5 initial commit 4 سال پیش
README.md 3cc920e3f1 fix README.md 4 سال پیش
build.gradle 5a325fb572 add dependencies for navigation 4 سال پیش
detekt-config.yml 0ea71ba332 add Timber 4 سال پیش
detekt.gradle 97b138e11f add Detekt (static code analysis tool) 4 سال پیش
gradle.properties 4db64476c5 initial commit 4 سال پیش
gradlew 4db64476c5 initial commit 4 سال پیش
gradlew.bat 4db64476c5 initial commit 4 سال پیش
settings.gradle 4db64476c5 initial commit 4 سال پیش

README.md

CurrencyConverter

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

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

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

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

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

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

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

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

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

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

  • MVVM
  • Kotlin Coroutines
  • Navigation Component
  • Dagger2 and Hilt
  • Room
  • Retrofit
  • DataBinding

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

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