Протестировано на iOS Simulator
Был использован подход Clean Architechure (domain, infrastructure, presentation), BLoC (cubit), в качестве DI — dino (https://github.com/Exeteres/dino), локализация на en и ru.
Функционал:
-
Скачивание PDF файлов
-
Защита от дубликатов
-
Автоматическая вставка валидной ссылки
-
Проверка на валидность ссылки
-
Управление состоянием скачивания файла
-
Удаление, открытие файла
-
Восстановление списка загрузок после повторого запуска приложения
На уровне инфраструктуры также реализована поддержка массовых действий (удаление, возобновление скачивания нескольких файлов), но в presentation недоступно в силу дедлайна.