Skip to content

Latest commit

 

History

History
 
 

104

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Критерии оценки:

  • Качество кода(чистота, именование переменных(abc - не подойдет, сразу 0 за код-стайл));
  • Возможность расширения функционала(чтобы Ваш код возможно было улучшать, не сломав предыдущего функционала);
  • Решение задания.

Инструкция к домашкам:

  • Сделать Fork ветки к себе в репозиторий;
  • Выполнить основную задачу в xCode Project;
  • Выполнить доп задачи на высшие функции в Playground Swift(далее в проекте);
  • Отправить Pull Request в эту ветку(HW103_ФИО);
  • При сдаче задания после дедлайна, баллов будет много-меньше и проверяться оно будет больше 1 недели(также пересдать ее уже вряд ли будет можно);
  • Пересдать код после получения комментария можно в течение N(уточнится позже) дней, при этом баллы не потеряются, возможность на ошибки у Вас имеется и поощряется.

Задача 1: MyToDo


Клиент, который является руководителем проекта, обратил внимание на популярные приложения для управления задачами, такие как Todoist и Wunderlist. Он хочет, чтобы наше приложение имело аналогичную функциональность списка задач.

Каждая ячейка в таблице должна представлять задачу с ее названием и описанием. Клиент хочет, чтобы при нажатии на ячейку открывалось окно деталей задачи (Task Detail Screen), где пользователь может редактировать задачу. Это взаимодействие между ячейкой и экраном деталей задачи должно осуществляться через делегат.

Кроме того, клиент хочет, чтобы данные в списке задач обновлялись динамически с использованием Diffable Data Source, чтобы обеспечить эффективное обновление интерфейса при добавлении, изменении или удалении задач.

Требования:

  1. Разработать экран списка задач (Task List Screen) с использованием таблицы для отображения задач в виде ячеек.
  2. Реализовать делегат для взаимодействия между ячейкой и экраном деталей задачи.
  3. Создать экран деталей задачи (Task Detail Screen), где пользователь может редактировать задачу.
  4. Использовать Diffable Data Source для эффективного обновления данных и интерфейса списка задач при изменении задач.
  5. Обеспечить передачу данных между экранами для обновления списка задач и обратно.

Дополнительная задача: Добавление фильтрации и сортировки в список задач(вот тут и нужны функции высшего порядка)

Требования:

  1. Реализовать возможность фильтрации задач по различным критериям, предоставив пользователю выбор через интерфейс.
  2. Добавить опцию сортировки задач по нескольким критериям, таким как дата создания, дата завершения или приоритет.
  3. Предоставить пользователю удобный и интуитивно понятный способ настройки фильтрации и сортировки в интерфейсе приложения.
  4. Обеспечить обновление списка задач в соответствии с выбранными параметрами фильтрации и сортировки.