Разработка iOS приложений
Курс разработки iOS приложений – это практический курс, где студенты изучат язык программирования Swift и интегрированную среду разработки Xcode, чтобы создавать мобильные приложения для устройств Apple. Они научатся разрабатывать пользовательские интерфейсы, работать с базами данных, обрабатывать данные и работать с сетью. Курс включает в себя лекции, практические занятия и проектную работу, чтобы подготовить студентов к работе в индустрии мобильной разработки для iOS.
Длительность курса
29 недель, 116 академических часов
2 занятия в неделю по 2 академических часа
600 000 тг за весь период обучения
Формат обучения
гибрид
Онлайн занятия проводятся в Google Meet / Zoom.
Оффлайн занятия проводятся в учебной аудитории школы.
Соотношение теории к практике - 50/50.
Система оценки успеваемости на курсе будет основана на
практических заданиях и проектах, которые студенты будут
выполнять в течение курса. Каждое задание/проект будет
оцениваться по нескольким критериям, таким как соответствие
требованиям, качество кода, использование современных
технологий и т.д. Максимальный балл - 10. Кроме того, на курсе
будут проводиться тесты и экзамены, чтобы проверить понимание
теоретической базы и навыков iOS разработки.
Критерий завершения обучения - средний балл выше 5/10,
или выше 50%.
Отбор студентов на курс будет проводиться на основе онлайн-анкетирования и просмотра эссе, в которых студенты должны указать свой интерес к разработке web приложений, а также обосновать, почему они хотят изучать эту тему. После этого студенты проходят собеседование. Мы ищем студентов, которые заинтересованы в разработке мобильных приложений, будет плюсом обладание базовыми знаниями программирования. Также мы оцениваем мотивацию и готовность студентов к обучению, а также их способность работать в команде. Курс iOS разработки – это отличная возможность для тех, кто хочет научиться создавать web-приложения и получить практические навыки для работы в индустрии web разработки.
Программа обучения
- Неделя 1. Введение. Основы Swift. Среда разработки.
- Неделя 2. Основы Swift. Строки. Логические типы и управление потоком.
- Неделя 3. Основы Swift. Массивы. Методы. Работа со словарями.
- Неделя 4. Основы UI\UX.
- Неделя 5. Классы и структуры.
- Неделя 6. ООП.
- Неделя 7. Протоколы.
- Неделя 8. Компоновка элементов UI. Использование Enum.
- Неделя 9. Работа с макетами.
- Неделя 10. Жизненный цикл и навигация.
- Неделя 11. Списки.
- Неделя 12. Библиотеки. Модификаторы доступа.
- Неделя 13. Версионный контроль.
- Неделя 14. Многопоточность.
- Неделя 15. Сетевые запросы.
- Неделя 16. Хранение данных пользователей. SQL.
- Неделя 17. Анимации.
- Неделя 18-19. SwiftUI. Верстка элементов. Навигация. Виджеты. Компоновка элементов.
- Неделя 20. SwiftUI. Работа со State.
- Неделя 21. SwiftUI. Анимация.
- Неделя 22. Современные подходы к разработке.
- Неделя 23. Создание навигации в коде.
- Неделя 24. Тестирование. Оптимизация и инструменты Xcode.
- Неделя 25. Паттерны проектирования.
- Неделя 26. Push-уведомления. Публикация приложения в App Store.
- Неделя 27. Финальный проект. Начало. / Практика (по выбору)
- Неделя 28. Финальный проект. Начало. / Практика (по выбору)
- Неделя 29. Финальный проект. Защита. / Практика
История и философия Swift.
Установка и настройка Xcode.
Переменные, константы, числовые типы данных.
Работа со строками и их методами.
Bool и условные операторы (if, else, switch).
Циклы (for, while).
Создание и использование массивов, методы массивов.
Определение и вызов методов.
Словари и их методы.
Принципы дизайна интерфейсов.
Основы пользовательского опыта (UX).
Определение и использование классов и структур.
Свойства и методы.
Наследование и полиморфизм.
Глубокое погружение в объектно-ориентированное
программирование.
Инкапсуляция, наследование, абстракция и полиморфизм.
Определение и реализация протоколов.
Протокольное программирование и его применение.
Расположение и настройка элементов пользовательского
интерфейса в Xcode.
Enumerations и их использование в управлении UI состояниями.
Использование Interface Builder и Storyboards.
Auto Layout и Constraints для адаптивных интерфейсов.
Понимание жизненного цикла приложения и контроллеров
представлений.
Реализация навигации между экранами.
Работа с UITableView и UICollectionView.
Создание кастомных ячеек.
Использование сторонних библиотек через CocoaPods или Swift
Package Manager.
Понимание и применение модификаторов доступа.
Основы работы с Git.
Использование GitHub для совместной разработки.
Основы многопоточности и параллельного программирования.
Использование Grand Central Dispatch (GCD) и Operation.
Основы HTTP.
Работа с URLSession для выполнения сетевых запросов.
Core Data и Realm для локального хранения данных.
Основы SQL для работы с базами данных.
Реализация анимаций средствами UIKit.
Использование Core Animation для сложных анимаций.
Основы SwiftUI и декларативный синтаксис для создания UI.
Создание навигации и маршрутизации в SwiftUI.
Работа со стандартными и кастомными виджетами.
Понимание и использование @State, @Binding, @ObservedObject, @EnvironmentObject для управления состоянием приложения.
Создание анимаций в SwiftUI, использование анимационных модификаторов и переходов.
Изучение методологий Agile и Scrum для управления проектами
разработки.
Принципы чистого кода и рефакторинга.
Программная реализация навигации без использования
Storyboard.
Управление переходами и передачей данных между экранами.
Подходы к тестированию iOS-приложений, юнит-тесты и
UI-тесты.
Использование инструментов Xcode для профилирования и
оптимизации приложений.
Изучение основных паттернов проектирования, применимых в разработке iOS-приложений, таких как MVC, MVVM, Singleton, Factory.
Реализация push-уведомлений с использованием Apple Push
Notification service (APNs).
Подготовка приложения к публикации: настройка профилей,
создание сборок, работа с App Store Connect.
Подготовка к финальному проекту и итоговому тестированию.
Планирование и начало разработки финального проекта.
Выбор темы и технологического стека, определение
функциональности.
Разбор возникших вопросов и проблем в процессе
разработки.
Работа над финальными штрихами проекта, рефакторинг,
тестирование.
Завершение и защита финального проекта перед преподавателями
и однокурсниками.
Обсуждение полученного опыта, получение обратной связи и
рекомендаций по дальнейшему развитию.