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 без запуска эмулятора