- Базовый проект для выполнения домашней работы - последний проект с домашней работой курса iOSUI, где присутствуют LoginViewController + FeedViewController
- При сдаче домашнего задания в поле для сдачи работы прикрепите ссылку на Pull Request с кодом на проверку внутри вашего проекта в Git.
- Все задачи обязательны к выполнению для получения зачета, кроме задач со звездочкой. Присылать на проверку можно каждую задачу по отдельности или все задачи вместе. Во время проверки по частям ваша домашняя работа будет со статусом "На доработке".
- Любые вопросы по решению задач задавайте в чате Slack (ссылку вы найдете в письме на вашей эл. почте).
- Добавить класс User для хранения информации о пользователе: полное имя, аватар, статус.
- Добавить протокол
UserService
с функцией, которая принимает имя пользователя и возвращает объект классаUser
. - Добавить класс
CurrentUserService
, который поддерживает протоколUserService
. Класс должен хранить объект классаUser
и возвращать его в реализации протокола, если переданное имя соответствует имени пользователя. - В классе
ProfileViewController
добавить свойство с типом UserService и инициализатор, который принимает объектUserService
и имя пользователя, введённое на экранеLogInViewController
. При инициализации объектаProfileViewController
передать объектCurrentUserService
. - В классе
ProfileViewController
добавить получение пользователя из объектаUserService
и отображение информации из объектаUser
. - Добавить класс
TestUserService
, который поддерживает протоколUserService
. Класс должен хранить объект классаUser
с тестовыми данными и возвращать его в реализации протокола. - При инициализации объекта
ProfileViewController
добавить проверку Debug сборки с помощью флага компиляции#DEBUG
и передавать объектTestUserService
. Для Release сборок оставить передачу объектаCurrentUserService
.
В рамках домашней работы мы научимся использовать внешние зависимости с помощью менеджеров зависимостей Cocoapods и Swift Package Manager.
- Домашнее задание выполняется на базе проекта для Вконтакте. Изучите инструкцию по сдаче домашних заданий через Pull Request. В поле для сдачи работы прикрепите ссылку на ваш проект на Github.
- Все задачи обязательны к выполнению для получения зачета, кроме задач со звездочкой. Присылать на проверку можно каждую задачу по отдельности или все задачи вместе. Во время проверки по частям ваша домашняя работа будет со статусом "На доработке".
- Любые вопросы по решению задач задавайте в чате Slack.
- Добавьте зависимость SnapKit через Cocoapods. Используйте последнюю версию библиотеки.
- Перепишите вёрстку класса
ProfileHeaderView
при помощи SnapKit.
- Установите зависимость iOSIntPackage через Swift Package Manager. Используйте последнюю версию библиотеки.
- С помощью класса
ImageProcessor
добавьте различные фильтры для картинок, которые отображаются в постах.
В рамках домашней работы мы научимся создавать отдельные таргеты в Xcode проекте, подключать и использовать внутренние библиотеки и использовать флаги компиляции.
- Домашнее задание выполняется на базе проекта для Вконтакте. Изучите инструкцию по сдаче домашних заданий через Pull Request. В поле для сдачи работы прикрепите ссылку на ваш проект на Github.
- Все задачи обязательны к выполнению для получения зачета, кроме задач со звездочкой. Присылать на проверку можно каждую задачу по отдельности или все задачи вместе. Во время проверки по частям ваша домашняя работа будет со статусом "На доработке".
- Любые вопросы по решению задач задавайте в чате Slack.
- Добавить новый таргет из шаблона Framework с названием StorageService.
- Перенести в таргет StorageService файлы StorageService и Post. Эти файлы не должны быть добавлены в таргет основного приложения.
- Добавить с проект необходимые модификаторы доступа
public
и импорты фреймворка StorageService для успешного запуска проекта.
- Создать дубликат текущей схемы проекта, настроить запуск приложения с Release конфигурацией.
- На экране
ProfileViewController
настроить разный цвет фона для Debug и Release сборки с помощью флага компиляции DEBUG. - Запустить обе схемы и проверить, что цвет фона меняется.