Бакалавриат
2023/2024
Основы iOS разработки
Статус:
Курс по выбору (Программная инженерия)
Направление:
09.03.04. Программная инженерия
Кто читает:
Департамент программной инженерии
Где читается:
Факультет компьютерных наук
Когда читается:
3-й курс, 1, 2 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Язык:
русский
Кредиты:
5
Контактные часы:
56
Программа дисциплины
Аннотация
В рамках курса студентам предстоит освоить язык программирования Swift, изучить стандартные компоненты интерфейса и популярные нативные фреймворки, а также применить ряд мобильных архитектур в рамках выполнения практических работ по созданию iOS-приложений.
Цель освоения дисциплины
- Ознакомление слушателей с разработкой iOS-приложений и предоставление достаточного набора знаний для дальнейшего профессионального развития в этой области.
Планируемые результаты обучения
- 1. Знакомство с синтаксисом языка Swift 2. Знание основных типов данных и принципов хранения данных в памяти 3. Опыт работы с элементами интерфейса из стандартной библиотеки 4. Опыт создания новых элементов пользовательского интерфейса 5. Умение создавать интерфейс мобильного приложения версткой кодом
- 6. Знакомство с популярными мобильными архитектурами 7. Знакомство с хранением данных с помощью UserDefaults, CoreData, понимание персистентного слоя 8. Опыт взаимодействия с сетью интернет и сторонними API через URLSession 9. Умение создавать модели для локального хранения и передачи информации 10. Понимание основ многопоточности
Содержание учебной дисциплины
- Введение. IDE Xcode и структура проекта. Погружение в язык программирования Swift
- Создание UI-интерфейсов с использованием UIKit в среде Xcode. Знакомство с дизайн-паттернами MVC и MVVM и паттерном делегирования. Жизненный цикл UIViewController. Responder chain. CALayer
- Проектирование многооконных пользовательских интерфейсов, работа с различными интерфейсными элементами. Работа с Autolayout. Навигация по экранам
- Работа с интерфейсными элементами UIKit и констрейнтами в коде. Создание новых UI-компонентов
- Локальное хранение данных на устройстве: UserDefaults, CoreData. CRUD-примеры. Реализации нотификаций
- Определение геолокации пользователя и работа с картами Apple на примерах
- Создание виджетов iOS-приложения
- Работа с многопоточностью. ARC, MRC, Memory leaks
- URLSession и Codable. Работа с сетью. Сокеты: концепция, создание iOS-клиентов для взаимодействия с сервером через сокеты
- Клиент-серверное взаимодействие: архитектурный стиль REST API, создание iOS-клиентов для взаимодействия с сервером
Промежуточная аттестация
- 2023/2024 учебный год 2 модульНАКОП = MIN( 0,4 * ДЗ + 0,3 * АУД_АКТИВН + 0,3 * ПРОЕКТ + БОНУСЫ, 10 ) Экзамен обязателен, если НАКОП < 8, тогда ИТОГ = 0.8 * НАКОП + 0,2 * ЭКЗ. АВТОМАТ возможен по желанию, если НАКОП >= 8, тогда ИТОГ = НАКОП. Дополнительные баллы: - за призовое место на хакатоне с использованием Swift в период проведения КПВ (1,5 балла max). - отбор в период проведения КПВ на стажировку (или ее успешное прохождение) в крупную компанию на нативную iOS-разработку на Swift / Objective-C (1,5 балла max). - за публикацию в App Store в период проведения КПВ iOS-приложения на Swift (1,5 балла max).