● Занятия проходят 2 раза в неделю в будни с 18:00 МСК● На лекции и практические задания понадобится 10–12 часов в неделю● Записи вебинаров и митапов, лекции, тесты, тренажёр, презентациии другие полезные материалы хранятся в личном кабинете
Основы Swift
Познакомитесь с языком программирования Swift. Начнёте с азов: работа с переменными, типы данных, условные конструкции. Напишете свой первый Hello world и подготовитесь к следующим блокам, посвящённым задачам разработки приложений.Вам предстоит создавать первые простые программы на Swift: от вывода текстовых сообщений по условию до создания различных коллекций. Например, данные для игры в шахматы (имя и координаты фигуры) и электронный дневник с данными студентов.
- Среда разработки и основные понятия
- Swift в Playground
- Переменные, константы, типы данных
- Условные конструкции
- Коллекции: массив
- Словарь. Кортеж и множество
- Функции и области видимости
Основы Swift Advanced
Углубитесь в программирование на Swift и познакомитесь с принципами объектно-ориентированного программирования. Изучите понятия класса, функций, наследования и обработки ошибок при исполнении программы.Выполните более 20 задач для отработки теории на практике. Например, будете работать над библиотекой аудиотреков: для этого потребуется создать новые классы, объекты и определить методы.
- Основы объектно-ориентированного программирования (ООП)
- Классы, структуры и перечисления
- Интерфейсы и конструирование собственных типов
- Классы и структуры: Value & Reference-типы
- Продвинутые свойства объектов
- Замыкания и функциональное программирование
- ООП: наследование, переопределение методов, инициализация классов
- Протоколы: создание моделей с полиморфным поведением
- Ошибки и возможности: моделирование исключительных ситуаций и работа с ошибками
Git — система контроля версий
Научитесь работать с системой Git и сервисом GitHub, сможете публиковать свои домашние работы и уже в процессе обучения сформируете первое портфолио — работодатели часто просят показать примеры вашего кода на GitHub.
- Знакомство с системой контроля версий
- Работа с локальным репозиторием
- Работа с удалённым репозиторием через GitHub
- Командная работа в Git и GitHub
- Вебинар с ответами на вопросы
Интерфейс приложения
Перейдёте к работе над интерфейсом приложения и узнаете, как работать с дизайном. Рассмотрите UI и UX-дизайн, навигацию приложения, использование жестов и работу с анимациями. Начнёте работу над итоговым проектом — разработке клиент-приложения для ВКонтакте. Подготовите компоненты, экраны и механизмы переходов между экранами и сценариями будущего приложения, а именно view для отображения аватара и экрана профиля пользователя, ленту новостей, механизм авторизации.
- Дизайн и пользовательский интерфейс
- Инструменты для разработки интерфейса
- Навигация в iOS и жизненный цикл UIViewController
- Базовые UI-компоненты
- Вёрстка экранов для iOS. Auto Layout
- UITableView, UIScrollView, datasource и delegate
- CollectionView
- Жесты и анимация
- Xcode debugging (отладка)
Промышленная разработка
Узнаете о жизненном цикле приложения, типах зависимостей в Swift и работе с внешними библиотеками. Познакомитесь со структурой Xcode-проектов, структурными и архитектурными паттернами. Научитесь создавать отдельные таргеты в Xcode-проекте, подключать и использовать внутренние библиотеки.Продолжите работу над итоговым приложением клиента для ВКонтакте: приведёте структуру проекта в порядок, структурируете код согласно паттернам, построите навигацию через координаторы.
- Структура проекта и жизненный цикл приложения
- Работа с внешними библиотеками
- Менеджеры зависимостей. Cocoapods
- Структурные паттерны: Delegate, Singleton, Factory, Observer, Facade
- Архитектурные паттерны. Координаторы
Асинхронная разработка и многопоточность
Познакомитесь с асинхронной разработкой и организацией многопоточности — параллельным выполнением нескольких блоков программы. Научитесь работать с инструментами многопоточности и обрабатывать ошибки. Узнаете, как добавлять видео, аудио и получать разрешение пользователя на использование камеры и микрофона.В своём проекте вы добавите уведомления об ошибках и реализуете отображение медиа в ленте.
- Асинхронная разработка и многопоточность
- Operation, OperationQueue, GCD
- Потоки, Run Loop, таймеры
- Управление ошибками приложения
- Мультимедиа
Работа с сетью и хранение данных
Познакомитесь с принципами безопасности, кодирования и шифрования, научитесь работать с базами данных и сетью: отправлять запросы на сервер и обрабатывать данные из сети.Для клиента ВКонтакте вы разработаете: — загрузку ленты новостей, списка друзей и профиля пользователя;— хранение настроек приложения в user defaults: какой экран открываем первым при запуске приложения;— хранения профиля пользователя между запусками приложения; — безопасное хранение аутентификационных данных.
- Хранение данных
- FireBase
- Основы базы данных
- Основы работы с сетью
- Получение и передача данных
- Работа с ресурсами
- Общие принципы безопасности
Продвинутая iOS-разработка
Познакомитесь с продвинутыми задачами разработки. Научитесь работать с геолокацией и картами, узнаете о разных типах уведомлений на iOS и механизмах их работы, научитесь использовать Face ID и Touch ID.Для своего приложения доработаете отображение локации пользователя на карте, смену тёмной и светлой темы в зависимости от настроек системы, экран с картой городов. Создадите локальное уведомление и добавите авторизацию по биометрии.
- Работа с геолокацией и картами
- Локализация приложения: локализация, Accessibility
- Light и dark тема
- Работа с уведомлениями
- Face ID и Touch ID
Тестирование iOS-приложений
Познакомитесь с процессом тестирования. Узнаете, какие типы тестов существуют в мобильной разработке и как создавать unit-тесты и UI-тесты.На практике покроете критичный функционал приложения тестами.
- Тесты: зачем нужны и какие бывают
- Cоздание unit-тестов с помощью XCTest
- Методологии TDD и BDD
- Создание UI-тестов
Фреймворк SwiftUI
Изучите основные возможности фреймворка SwiftUI и разработаете мобильное приложение с удобной базой знаний по выбранной вами теме.
- Введение в фреймворк SwiftUI
- Архитектура и потоки данных в SwiftUI
- Интеграция, графика и анимации в SwiftUI
Разработка для iPad, Apple TV, Apple Watch
Познакомитесь с особенностями разработки приложений под разные платформы и ОС. Узнаете о дополнительных возможностях iPadOS, отличиях в системах вёрстки для tvOS и watchOS. Познакомитесь с App Store со стороны разработчика и освоите процесс публикации приложения.Доработаете ваше приложение под iPad.
- App Extensions: особенности, жизненный цикл, настройка проекта
- iPadOS
- tvOS
- watchOS
- Обзор AppStore, информация для публикации приложения
Карьера в iOS-разработке
Научитесь формулировать карьерные цели, создавать резюме, собирать портфолио и готовиться к собеседованиям. Создадите пошаговый план поиска работы, запишите видеопрезентацию и пройдете карьерную консультацию с HR-экспертом.
- Пошаговый план поиска работы
- Анализ рынка труда
- Резюме, портфолио iOS-разработчика и сопроводительное письмо
- Собеседование: подготовка и прохождение
- Статистика и измерение эффективности поиска работы
- Индивидуальная карьерная консультация