Currency Converter — приложение для конвертации валют, выполненное как тестовое задание для компании Workmate. Оно состоит из трех экранов: "Валюты", "Обмен" и "Транзакции". Приложение позволяет просматривать курсы валют, обменивать валюту с учетом доступных средств на счетах и просматривать историю транзакций.
- Анимированный Splash Screen с логотипом Workmate.
- Экран "Валюты" с возможностью ввода суммы для обмена.
- Автоматическое обновление курсов валют каждую секунду с использованием метода
getRatesиз RemoteRatesServiceImpl. - Поддержка кросс-курсов с пересчетом по выбранной валюте.
- Ввод суммы для обмена с автоматическим пересчетом валют, доступных для покупки.
- Переход на экран "Обмен" с расчетом суммы для покупки и продажи валюты.
- Экран "Транзакции", отображающий список всех совершенных транзакций.
- Поддержка светлой и темной темы.
Проект использует паттерн MVI. Каждая функциональность оформлена отдельным пакетом (home, profile, transaction) с подпакетами data, domain и presentation по чистой архитектуре.
- Навигация построена через
Navigation Composeи типобезопасные маршруты. Состояния экранов описаны как сериализуемые sealed классы вScreens, а переходы выполняются с помощью расширенияanimatedTransition. - DI реализовано через Hilt. Модули располагаются в пакете
di. - Все строки и ресурсы вынесены в
strings.xmlи обращение к ним происходит черезR.string.*, что упрощает локализацию (приложение локализировано на английский и русский языки).
| Технология | Описание |
|---|---|
| Jetpack Compose | Построение пользовательского интерфейса и навигации |
| Hilt | Внедрение зависимостей |
| Kotlinx Serialization | Сериализация аргументов для type‑safe навигации |
| Room | Локальная БД для хранения информации о валюте и транзакциях |
Ссылка на текущую версию Releases
Прямая ссылка на установку .zip
Прямая ссылка на установку .apk
Для ознакомления с другими работами автора вы можете посетить портфолио на Behance.











