Skip to content

Тестовое задание от Додо Пиццы на архитектуру и тесты

Notifications You must be signed in to change notification settings

akaDuality/DodoTestTask

Repository files navigation

Это тестовое задание Додо Пиццы.

Фича в миниатюре: задание и требование похоже на те, что бывают в нашей работе.

Нужно сделать фича-фреймворк Bonuses. Он должен содержать контроллер и все классы нужные для его работы.

Реквизит

В проекте находится файл Network. Это фейковая реализация сети, возвращает json в виде Data. Используй его для проверки приложения.

Задача

  1. Получить данные и вывести на экран. Пример в Main.png. Дата из формата iso 8601 надо привести к тому что в примере.
  2. Обработать состояния загрузки: загрузка, данные, ошибка.
  3. По нажатию на ячейку открывать модальный экран, вывести на него дату. Модальный экран должен открываться в основном приложении, а не фреймворке. Пример в Detail.png

Подготовка

  1. Создай фреймворк Bonuses и подключи его к проекту
  2. Передай класс сети как внешнюю зависимость во фреймворк Bonuses. Меняй класс как тебе удобно.
  3. В итоге Bonuses должен содержать UIViewController который выведет данные на экран и использовать Network

Пожелания

  1. Весь код фичи во фреймворке Bonuses
  2. Написаны тесты. Начни работать с данными прямо в тесте, а потом рефактори по-необходимости. Экраном можно заняться в последнюю очередь.
  3. Можно из кода легко переключить состояние сети: всегда загрузка, сразу данные, фейл.
  4. Есть состояния загрузки, данных и фейла сети. Состояния находятся в разных UIViewController.

Что оцениваем:

  1. Умение работать во фреймворке
  2. Архитектуру: экранную, между экранами, между приложением и фреймворком
  3. Работу с данными: насколько понятно как данные меняются из одного типа в другой, как хранятся
  4. Навык написание тестов
  5. Управление зависимостями: как передаются, как управляется их поведение.

About

Тестовое задание от Додо Пиццы на архитектуру и тесты

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages