Вводная часть 15 часов - Бесплатная вводная часть
Прежде чем погрузиться в учёбу и начать практиковаться, вы узнаете:
— в чём особенности платформы iOS и экосистемы Apple
— чем занимаются iOS-разработчики и разработчицы
— из каких блоков состоит программа
— какие проекты вам предстоит выполнить
— как в целом проходит обучение в Практикуме
— кто поможет вам учиться
— как найти работу после обучения
Сразу после онбординга начнётся бесплатная часть курса. На ней вы:
— познакомитесь с языком Swift
— допишете и запустите свое первое приложение (для этого не нужно заново учить математику
— но нужен компьютер от Apple с системой macOS Monterey или более поздней версии)
— увидите результаты своих трудов и поймёте, интересно ли вам заниматься iOS-разработкой в дальнейшем
Опциональный модуль 6-8 часов - Бассейн
После покупки курса мы предложим вам «Бассейн».
Это несколько дополнительных уроков, которые станут доступны вместе с первым спринтом. Благодаря им вы познакомитесь с основными понятиями программирования. Простые и увлекательные задачи на базовую логику и алгоритмику помогут лучше усваивать дальнейший материал, особенно если вы сталкиваетесь с программированием впервые в жизни.
Важно: можно не проходить «Бассейн», а сразу отправиться исследовать iOS-галактику. Чтобы определиться, нужен вам этот этап или нет, мы предложим вам ответить на несколько вопросов.
Тема 1. Базовая логика
— Истинность
— Двойное отрицание
— И или Не
Тема 2. Алгоритмика
— Базис (последовательность действий), понятие алгоритма
— Следование
— Понятие переменной
— Массивы и циклы
Тема 3. Программирование
— Как работают языки программирования, синтаксис, выражение
Модуль 1 40 часов - Знакомство с iOS-разработкой и основами Swift
Изучим основные конструкции языка программирования Swift, на котором пишется большинство приложений под iOS, в специальном тренажёре от Apple — Playground. Познакомимся со средой разработки и тем, как устроены мобильные приложения
Спринт 1
Тема 1. Основы Swift
Тема 2. Работа с Xcode
Тема 3. Типы
Тема 4. Массивы, циклы
Тема 5. Функции
Тема 6. Перечисления
Спринт 2
Тема 1. Структуры данных
Тема 2. Опционалы
Тема 3. Классы
Тема 4. Протоколы
Тема 5. Extensions
Модуль 2 121 час - Основы вёрстки, сетевого взаимодействия и хранения данных
Проект этого модуля — квиз по популярным фильмам. Вам предстоит работа с киносервисом 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-тест для одного или нескольких сценариев.
Модуль 3 106 часов - Навигация, работа с таблицами, авторизация
В этом модуле вы освоите переходы между экранами, элементы вёрстки со скроллом и улучшите свои навыки клиент-серверного взаимодействия. Проектом этого модуля будет клиент сервиса стоковых фотографий (аналог Unsplash).
Задачи и проект в этом модуле будут сначала проходить через автотесты в Github или самостоятельную проверку по чек-листу, а затем отправятся к код-ревьюеру.
Спринт 7
- Тема 1. UI. Сложная верстка. Сделаете Tab Bar (UITabBarController).
- Тема 2. UI. Навигация. Cверстаете главные экраны приложения по макету.
Спринт 8
- Тема 1. UI. UIScrollView и UITableView. Cверстаете главные экраны по макету с использованием компонентов скролла (UIScrollView) и таблицы (UITableView).
- Тема 2. Хранение данных. UserDefaults. Загрузите данные из хранимого в UderDefaults JSON-файла.
Спринт 9
- Тема 1. Базовая многопоточность, авторизация. Освоите работу с многопоточным кодом для выполнения нескольких задач параллельно. Добавите в приложение авторизацию в сервис Unsplash.
- Тема 2. Хранение данных. Keychain. Научитесь сохранять данные в Keychain и получать их оттуда.
Спринт 10
- Тема 1. Cеть. Многопоточность. Изучите Grand Central Dispatch (GCD) — библиотеку, позволяющую эффективно управлять потоками выполнения задач. Реализуете несколько сетевых запросов.
- Тема 2. Тесты. Test-driven development (TDD), Mock, Stub. Напишете тесты сетевых запросов (Mock, Stub).
Спринт 11
- Тема 1. Архитектура. MVP+C. Погружение в работу архитектуры iOS-приложений. Обзор архитектуры MVP.
- Тема 2. Архитектура. MVVM. Проведете рефактиринг проекта: перейдете от MVC к MVVM
- Тема 3. Архитектура. Координаторы. Реализуете координаторы для экрана авторизации и основных экранов.
Спринт 12
- Тема 1. Сборка и деплой. Advanced Xcode. На более глубоком уровне погрузитесь в настройки проекта. Освоите работу с конфигурациями проекта (сможете менять источник данных для приложения).
Модуль 4 91 час - Коллекции, встроенные контроллеры, базы данных и основы многопоточности
В этом модуле вам предстоит сделать приложение-трекер для разных событий. Вы освоите сложную вёрстку — работу с коллекциями. На этот раз все данные будут храниться локально в базе данных, а работа с информацией будет происходить на фоновом потоке.
Задачи и проект в этом модуле будут сначала проходить через автотесты в Github или самостоятельную проверку по чек-листу, а затем отправятся к код-ревьюеру.
Спринт 13
- Тема 1. UI. UICollectionView и ChildVCs. Сверстаете список и доменные модели трекера, экран создания трекера, реализуете бизнес-логику.
Спринт 14
- Тема 1. Clean Architecture. Синхронизируете обновление данных между несколькими экранами (создание нового крекера и главный экран).
- Тема 2. UICollectionView и ChildVCs. Освоите работу с отображением данных в несколько столбцов и разделением контроллера на дочерние.
Спринт 15
- Тема 1. Хранение данных. Базы данных. Встроите базы данных в проект. Научите приложение сохранять и читать информацию из БД.
Спринт 16
- Тема 1. Многопоточность. GCD, Operations
- Тема 2. Многопоточность. Thread-safety. Реализуете поиск по трекерам на экране списка трекеров с Debounce.
- Тема 3. Многопоточность. DispatchGroup, queue Освоите работу с группированием асинхронных задач в приложении.
Спринт 17
- Тема 1. Хранение данных.. Освоите работу с доменной моделью и реализуете миграцию.
Модуль 5 12 часов - Продуктовая и командная разработка
Спринт 18
- Тема 1. Жизненный цикл продукта, MVP
- Тема 2. Agile
- Тема 3. Инструменты ведения командной работы
- Тема 4. Мобильная разработка в реальной жизни. Поймете, как устроены команды, кто есть кто, как коммуницировать с разными ролями.
- Тема 5. Git для гигантов
- Тема 6. Декомпозиция задач
Финишная прямая 40 часов - Командный дипломный проект
Разделитесь на команды по 3-5 человек и вместе сделаете eСommerce приложение — небольшой NFT-маркетплэйс. Это приложение с каталогом NFT-картинок, которые можно просматривать, выбирать, класть в корзину, проходить чекаут и совершать покупку.
У вас будет техническое задание от менеджера и дизайн — нужно будет декомпозировать всю работу, разбить на спринты и сделать продукт за 1 месяц.
Спринт 19
- 1 неделя
Созвонитесь с наставником, который поможет декомпозировать главные задачи проекта, команда распределит их между собой.
- 2 неделя
Проведёте ретроспективу, сделаете выводы по двухнедельному отрезку работы.
Спринт 20
- 3 неделя
Вместе с наставником проведете планирование оставшихся задач.
- 4 неделя
Поделитесь результатами работы с другими командами на демо.
Проведете ретроспективу, сделаете выводы по всему командному проекту.
Карьерный трек 30 часов - Программа трудоустройства
Эта часть курса для тех, кто решил найти работу в сфере разработки. Она становится доступна после прохождения модуля 4.
Карьерный трек организован так же, как и предыдущие темы: теория и практика. Но вместо навыков программирования вы изучите стратегии поиска работы и узнаете о тонкостях выбора компании-работодателя, а в качестве практики вы будете писать не код, а резюме и сопроводительное письмо.
В течение курса вы подготовите портфолио к визиту работодателя и проведёте исследование рынка трудоустройства, а также потренируетесь проходить технические собеседования на публичных встречах.
Спринт 1
— Профессия и целеполагание
— Поиск работы
— Рынок труда
— Работа мечты
— Подготовка резюме
— Хорошее портфолио
Спринт 2
— Неформальный поиск работы
— Сопроводительное письмо
— Коммуникация с HR
— Анализ собственных результатов
Спринт 3
— Подготовка к собеседованию
— Soft и hard-навыки
— Деньги
— Выбор компании
— Офис, удалёнка или фриланс?
— Как не ошибиться при выборе компании
— Испытательный срок
— Публичное техническое собеседование
Акселерация
Программа сопровождения: вы ищете работу, мы консультируем и помогаем. Участвовать в программе могут те, кто закончил программу трудоустройства и находится в активном поиске работы.Участники на практике применяют навыки, полученные в программе трудоустройства, адаптируют эти навыки к собственной стратегии поиска работы и каждую неделю рассказывают о своих результатах.
Основной формат участия — индивидуальные консультации и публичные собеседования.