# Задачи на Mobius 2022
## Задача 1
### Вводная часть
Есть некий класс для работы с API, позволяющий получать список товаров и есть UIViewController, отображающий этот список в таблице.
### Задание
Задача спроектировать отказоустойчивую систему, позволяющую делать 5 попыток получения информации с сервера `URL1`, в случае провала переподключаться на резервный сервер `URL2` на котором возможны теже 5 попыток, и далее на `URL3` при отказе`URL2`. В случае, если последний резервный сервер не ответил, отображать информацию из JSON файла, размещенного в ресурсах приложения.
### Результат
Предоставить набросок такой системы в любом удобом и понятном виде.
### Решение
Однозначного решения нет, подразумевает и подталкивает к обсуждению предложенного решения.
Система должна быть гибкой и расширяемой, необходимо использование паттернов Композиция и Стратегия.
Как контр-аргумент к плохой системе, да и к хорошей, предложить рассказать, как можно исправить ситуацию при отсутствии сети, чтобы не ждать все 15 попыток доступа по URL, а сразу получать данные из JSON
## Задача 2
### Вводная часть
Есть некоторое приложение, которое состоит из 10 экранов, множества сервисов и бизнес-логики, работает с БД и сетью. Архитектура приложения не имеет значение.
### Задание
Задача спроектировать систему сбора логов и аналитики для данного приложения. Логи и статистика должны отправляться на сервер. Обеспечить возможность сохранять записи, при отсутствии сети и отправки после её появления без использования сторонних фреймворков.
### Решение
Однозначного решения нет, подразумевает и подталкивает к обсуждению предложенного решения.
Должно быть решение без использования Синглтонов и прочих антипаттернов. Нужно рассказать как такое возможно реализовать стандартными средствами Swift.
Возможно в дискуссии накидывать предложения о том, что если логирование заменят на сохранение на диск или в БД или в системный журнал. Как этим управлять и как иметь возможность переключать методы логирования без переделывания всего приложения.