Домашнее задание к занятию "Внедрение зависимостей в iOS"

Правила выполнения домашней работы:

  • Базовый проект для выполнения домашней работы - последний проект с домашней работой курса iOSUI, где присутствуют LoginViewController + FeedViewController
  • При сдаче домашнего задания в поле для сдачи работы прикрепите ссылку на Pull Request с кодом на проверку внутри вашего проекта в Git.
  • Все задачи обязательны к выполнению для получения зачета, кроме задач со звездочкой. Присылать на проверку можно каждую задачу по отдельности или все задачи вместе. Во время проверки по частям ваша домашняя работа будет со статусом "На доработке".
  • Любые вопросы по решению задач задавайте в чате Slack (ссылку вы найдете в письме на вашей эл. почте).

Задача

  1. Добавить класс User для хранения информации о пользователе: полное имя, аватар, статус.
  2. Добавить протокол UserService с функцией, которая принимает имя пользователя и возвращает объект класса User.
  3. Добавить класс CurrentUserService, который поддерживает протокол UserService. Класс должен хранить объект класса User и возвращать его в реализации протокола, если переданное имя соответствует имени пользователя.
  4. В классе ProfileViewController добавить свойство с типом UserService и инициализатор, который принимает объект UserService и имя пользователя, введённое на экране LogInViewController. При инициализации объекта ProfileViewController передать объект CurrentUserService.
  5. В классе ProfileViewController добавить получение пользователя из объекта UserService и отображение информации из объекта User.
  6. Добавить класс TestUserService, который поддерживает протокол UserService. Класс должен хранить объект класса User с тестовыми данными и возвращать его в реализации протокола.
  7. При инициализации объекта ProfileViewController добавить проверку Debug сборки с помощью флага компиляции #DEBUG и передавать объект TestUserService. Для Release сборок оставить передачу объекта CurrentUserService.

--- COMPLETED ---

Домашнее задание к занятию "Менеджеры зависимостей"

В рамках домашней работы мы научимся использовать внешние зависимости с помощью менеджеров зависимостей Cocoapods и Swift Package Manager.

Правила выполнения домашней работы

  • Домашнее задание выполняется на базе проекта для Вконтакте. Изучите инструкцию по сдаче домашних заданий через Pull Request. В поле для сдачи работы прикрепите ссылку на ваш проект на Github.
  • Все задачи обязательны к выполнению для получения зачета, кроме задач со звездочкой. Присылать на проверку можно каждую задачу по отдельности или все задачи вместе. Во время проверки по частям ваша домашняя работа будет со статусом "На доработке".
  • Любые вопросы по решению задач задавайте в чате Slack.

Задача 1

  1. Добавьте зависимость SnapKit через Cocoapods. Используйте последнюю версию библиотеки.
  2. Перепишите вёрстку класса ProfileHeaderView при помощи SnapKit.

Задача 2

  1. Установите зависимость iOSIntPackage через Swift Package Manager. Используйте последнюю версию библиотеки.
  2. С помощью класса ImageProcessor добавьте различные фильтры для картинок, которые отображаются в постах.

---

Домашнее задание к занятию "Структура проекта и жизненный цикл приложения"

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

Правила выполнения домашней работы

  • Домашнее задание выполняется на базе проекта для Вконтакте. Изучите инструкцию по сдаче домашних заданий через Pull Request. В поле для сдачи работы прикрепите ссылку на ваш проект на Github.
  • Все задачи обязательны к выполнению для получения зачета, кроме задач со звездочкой. Присылать на проверку можно каждую задачу по отдельности или все задачи вместе. Во время проверки по частям ваша домашняя работа будет со статусом "На доработке".
  • Любые вопросы по решению задач задавайте в чате Slack.

Задача 1

  1. Добавить новый таргет из шаблона Framework с названием StorageService.
  2. Перенести в таргет StorageService файлы StorageService и Post. Эти файлы не должны быть добавлены в таргет основного приложения.
  3. Добавить с проект необходимые модификаторы доступа public и импорты фреймворка StorageService для успешного запуска проекта.

Задача 2

  1. Создать дубликат текущей схемы проекта, настроить запуск приложения с Release конфигурацией.
  2. На экране ProfileViewController настроить разный цвет фона для Debug и Release сборки с помощью флага компиляции DEBUG.
  3. Запустить обе схемы и проверить, что цвет фона меняется.