# CurrencyConverter Тестовое приложение - конвертор валют ## Исходные данные На экране пользователю доступы список всех валют с возможностью ввода. После изменения любого из полей все остальные поля пересчитываются согласно курса валют. Курсы валют брать отсюда: [https://www.cbr-xml-daily.ru/daily_json.js](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 ## Дополнительные инструменты - статический анализатор кода [Detekt](https://github.com/detekt/detekt) (запуск проверки - команда `./gradlew detekt`) - подключен Robolectric для тестирования на JVM без запуска эмулятора