Проект этого модуля — квиз по популярным фильмам. Вам предстоит работа с киносервисом IMDb: получить список 250 самых популярных фильмов, и для каждого фильма создать вопрос для квиза. Пользователю нужно будет угадывать, какого персонажа играл актёр на фотографии.
Для пользователей приложение — это прежде всего работа с интерфейсом, который вы для них и делаете. В рамках работы над приложением вы сверстаете экран квиза, освоите HTTP и REST для работы с API IMDb и научитесь хранить данные пользователя.
Задачи и проект в этом модуле будут сначала проходить через автотесты в Github или самостоятельную проверку по чек-листу, а затем отправятся к код-ревьюеру.
Спринт 3
Тема 1. Основы верстки и базовые UI-элементы
Сверстаете простой экран для приложения с квитами по макету в Figma, добавите и удалите элементы на экран.
Тема 2. Cвязь верстки с кодом, обработка действий пользователя
Добавите обработку событий и контролов.
Тема 3. Git
Тема 4. Слои мобильного приложения
Спринт 4
Тема 1. Простая верстка, конфликты AutoLayout
Дорабатываем верстку экрана, учимся решать конфликты AutoLayout.
Тема 2. Cвязь с кодом, отображение данных
Доработаете логику интерфейса и опишете структуру данных экрана.
Спринт 5
Тема 1. Хранение данных. Какие бывают данные, как их хранить. In memory
Создадите свою структуру данных, научитесь хранить результаты в user defaults.
Тема 2. Сеть. Клиент-серверное взаимодействие. HTTP и REST
Изучите основы клиент-серверного общения, научитесь работать с API сервиса IMDb.
Тема 3. URLSession, URLRequest
Напишете простой запрос на получение данных, а если почувствуете в себе силы решить задачу со звёздочкой — добавите индикатор загрузки (UIActivityIndicatorView).
Тема 4. Encoding / Decoding
Сделаете Codable-структуры для использования в запросе и обработке ответа сети.
Спринт 6
Тема 1. Архитектура. Введение
Тема 2. Архитектура. SOLID, KISS, DRY, YAGNI
Изучите основные принципы объектно ориентированного программирования (ООП) и шаблоны проектирования.
Тема 3. Архитектура. MVC
Займётесь личным рефакторингом — приведёте в порядок свой код.
Тема 4. Сборка и деплой. Dependency management
Подключите CocoaPods/Swift Package Manager и SwiftLint.
Тема 5. Тесты. Unit tests, XCTest
Напишете тест по функциональной спецификации.
Тема 6. Тесты. UI Testing
Напишете UI-тест для одного или нескольких сценариев.