Тестовое задание

Реализовать компонент “Календарь тренировок”. Макет предоставлен.

Функциональные требования

  1. Календарь на неделю. В дни, выделенные цветом, запланированы тренировки. Полный список тренировок указан под календарем.
  2. При нажатии на определенный день происходит отображение тренировки, запланированной на этот день.
  3. При скролле вправо/влево неделя пролистывается. Состав занятий перерисовывается.

Нефункциональные требования

  1. Состав занятий сделать на 3 недели - текущую, предыдущую и будущую.
  2. Реализация должна укладываться в mvvm.
  3. Реализация должна быть на Swift UI.
  4. Должен присутствовать тест (хотя бы один работающий) на реализованный компонент.

Результат прислать в виде кода.

UPD (Функциональные требования)

  1. Когда пользователь ещё раз нажимает на этот же день: день "отжимается", никакой день не выбран, показывается расписание на неделю.
  2. Пользователь выбрал день недели, показались тренировки на этот день. Пользователь смахивает неделю вперед или назад. На новой неделе: выбран такой же день недели, как на предыдущей неделе
  3. Пользователь тапает на конкретной тренировке в списке: реализовать на свое усмотрение