Top.Mail.Ru
Программа обучения IOS middle
1 Этап: Программирование на Objective-C и Swift
Время прохождения : 1 месяц
Содержание:
Результат:
1. Напишете 20 простых программ на псевдокоде с использованием событий, условий, циклов и функций
Computational thinking. Работа кода. Хранение и передача информации
Основы работы с сетями. TCP/UDP
Классификация языков программирования. Концепции объектно-ориентированного и функционального программирования. Принципы SOLID, KISS
1 Этап: «Программирование на Objective-C и Swift»
2 Этап: Мобильная iOS-разработка
3 Этап: Мобильная iOS-разработка
Качество кода
Обратная связь
Содержание:
Время прохождения : 1 месяц
Устройство WEB и работа браузера. Работа протоколов. DNS
Результат:
1. Освоите синтаксис Swift — от базовых логических конструкций до сложных концепций языка
2. Напишите 50+ программ на Swift и научитесь работать в IDE и «песочнице»
Операторы и выражения. Булевы и логические выражения. Условные конструкции
Обзор и установка IDE. Знакомство с Playground
Циклы. Условия. Инструкции
Функции. Методы. Замыкания
Переменные, константы, основные типы данных. Преобразование типов
Структуры и энумы
2 Этап: Swift
Практика:
1. Проект 1: Написание игры по типу Arkanoid на Swift с помощью SpriteKit
2. Проект 2: Написание калькулятора на Swift
3. 10 практических работ по написанию кода на Swift
4. Тренажёр по синтаксису Swift
Коллекции: массивы, словари, множества
Объектно-ориентированное программирование: наследование, полиморфизм, свойства классов
Протоколы
Опшионалы. Строки. Классы
Generic-код
Обработка исключений и ошибок
Этап 3. Мобильная iOS-разработка
Содержание:
Время прохождения: 1 месяц
1. Используете AutoLayout в качестве технологии верстки
2. Научитесь проектировать динамичные мобильные интерфейсы
Результат:
3. Реализуете своё первое приложение
Основные компоненты для работы с Xcode: Navigator, Debug area, Utilities
Архитектурные паттерны: MVC, MVVM, MVP, чистая архитектура. Cocoa-паттерн, структурный, поведенческий паттерны
Архитектурные принципы. SOLID и внедрение зависимостей
Практика:
1. Проект 3: Создание интерфейса главной страницы для медитации (или любого хобби на выбор) в InterfaceBuilder
2. Проект 4: Создание интерфейсов многоэкранного приложения для планирования дел и событий
3. Проект 5: Приложение для информирования о погоде в нескольких городах с подключением к сторонним данным
Компоненты UIKit: UIView, UIViewController, Layout и AutoLayout, Navigation. Constraints. StackView. Жизненный цикл UIView
UIViewController. Cоздание окон и экранов. Создание переходов между экранами. Создание динамических интерфейсов
UITableView, UICollectionView. Работа с таблицами и коллекциями
Создание собственных UI-компонентов
Работа с фреймворками Cocoa Touch и Swift UI
Жизненный цикл приложения
Делегирование и работа с протоколами
11
Инструмент Storyboard. Знакомство с фреймворком UIKit
Создание уведомлений
12
Взаимодействие с сервером. Форматы передачи данных: JSON, XML, binary, base64 и др. Парсинг JSON
13
Асинхронное программирование
14
Этап 4. Работа с данными и их хранение
Содержание:
Время прохождения: 1 месяц
Основы хранения данных. Работа с файловой системой APFS
OnDemandResourses. Работа с ресурсами для уменьшения размера приложения
Работа с фреймворком CoreData
Практика:
1. 4 практикума по работе с данными
Компоненты UIKit: UIView, UIViewController, Layout и AutoLayout, Navigation. Constraints. StackView. Жизненный цикл UIView
UIViewController. Cоздание окон и экранов. Создание переходов между экранами. Создание динамических интерфейсов
UITableView, UICollectionView. Работа с таблицами и коллекциями
Создание собственных UI-компонентов
Управление памятью. ARC (автоматический подсчёт ссылок)
Хранение данных в облаке
Этап 5. Многопоточность
Содержание:
Время прохождения: 1 месяц
Потоки и конкурентность. Плюсы и минусы использования многопоточности
POSIX, NSThread: низкоуровневые API для работы с многопоточностью
Понятие очереди. Работа с Grand Central Dispatch
Практика:
1. Проект 6: Приложение для обмена изображениями с возможностью ставить реакции, оставлять комментарии, делать личные подборки
Поиск и исправление ошибок встроенными средствами Xcode
Поиск проблем производительности приложения
Этап 6. Работа с сетью
Содержание:
Время прохождения: 1 месяц
Практика:
1. Реализуете асинхронность в вашем приложении для увеличения производительности, настроите обмен данными по сети и с базой данных и увеличите функциональность приложения
Клиент-серверное взаимодейтсвие. Протокол HTTP, RESTful APIs
URLSession: высокоуровневый API для работы с сетью
Сериализация и десериализация данных в Realm
Составление CV и cover lette
Имитация технического интервью с экспертом-разработчиком и полезный фидбэк
Решение реальных тестовых заданий
Практическое задание: отправлять не менее 10 откликов на позиции Junior iOS Developer в день в течение двух недель
Работа с сетью в фоновом режиме
WKWebView, SFSafariViewController: отображение веб-страниц внутри приложения
Этап 7. Мобильная iOS-разработка. Интерфейсы и архитектура приложения
Содержание:
Время прохождения: 1 месяц
1. Научитесь проектировать интерактивные и динамические мобильные интерфейсы и реализуете своё первое приложение
Основы digital-дизайна
Результат:
Этап 8. Процесс разработки. Основы компьютерной науки
Содержание:
Время прохождения: 1 месяц
1. Освоите базовые принципы разработки программного обеспечения
2. Научитесь работать в команде и применять методологии управления проектами
Результат:
3. Приобретете навыки работы с системами контроля версий и базовые знания алгоритмов и структур данных
Процесс разработки - Декомпозиция задач, технические требования и навыки работы в команде
Методологии Agile и Scrum: основы гибкой разработки и управления проектами
Системы управления версиями: Git, основы работы с репозиториями, ветвление и слияние
Практика:
1. Проект 1: Командная разработка простого приложения с использованием Git
2. Проект 2: Реализация алгоритмов сортировки и поиска
+ 8 домашних заданий
Компоненты UIKit: UIView, UIViewController, Layout и AutoLayout, Navigation. Constraints. StackView. Жизненный цикл UIView
Структуры данных: массивы, списки, стеки, очереди, деревья
Основы компьютерной науки - Асимптотический анализ: оценка сложности алгоритмов
Алгоритмы: основные методы сортировки (пузырьковая, быстрая, слиянием и другие) и поиска (линейный, бинарный)
Этап 9. Продвинутая работа с БД. Архитектура и паттерны проектирования
Содержание:
Время прохождения: 1 месяц
1. Освоите основные концепции и инструменты для разработки приложений под iOS
2. Научитесь использовать язык Swift для создания функциональных и адаптивных приложений
Результат:
3. Приобретете навыки работы с базами данных и архитектурными паттернами
Основы Swift - Интерполяция строк и использование ExpressibleByStringInterpolation для гибкой работы со строками
Продвинутая работа с БД (Core Data)
Организация работы с Core Data: настройка и использование для управления данными
Практика:
1. Проект 1: Разработка приложения с поддержкой темной темы и локализацией
2. Проект 2: Создание приложения с использованием Core Data для управления данными
+ 10 домашних заданий
Обработка ошибок и отладка: эффективные методы выявления и устранения ошибок в коде
Архитектура и паттерны проектирования
Архитектуры приложения (MVx, VIP и другие): выбор и реализация подходящей архитектуры для приложения
Создание моделей, управление данными и оптимизация производительности: эффективное хранение и извлечение данных
Ориентированное на протоколы программирование (POP) и сервис-ориентированная архитектура (SOA): внедрение современных подходов к разработке
Реализация темной темы в приложении: адаптация интерфейса под разные цветовые схемы
Лучшие практики для организации кода, именования переменных и комментирования: поддержка чистоты и читаемости кода
11
Локализация и интернационализация: создание приложений, поддерживающих несколько языков
Этап 10. Асинхронное программирование и многопоточность. Сети и интеграция API
Содержание:
Время прохождения: 1 месяц
1. Освоите асинхронное программирование и многопоточность для повышения производительности приложений
2. Научитесь интегрировать сетевые API и работать с современными технологиями обмена данными
Результат:
3. Приобретете навыки работы с сервисами Apple для расширения функциональности приложений
Асинхронное программирование и многопоточность
Асинхронное программирование: основы и преимущества для повышения отзывчивости приложений
Grand Central Dispatch (GCD) и libdispatch: управление потоками и задачами
Практика:
1. Проект 1: Разработка приложения с использованием многопоточности и асинхронных операций
2. Проект 3: Проект 2: Интеграция сетевых API и сервисов Apple в приложение
+ 10 домашних заданий
Использование GCD, Operation Queues и Dispatch Queues: реализация многопоточности в приложениях
Сети и интеграция API - Socket.io, WebSockets и другие сокетные технологии: реализация реального времени и двусторонней связи
gRPC, кодогенерация и отправка/прием сообщений: работа с высокопроизводительными RPC
GraphQL, кодогенерация и отправка/прием сообщений: гибкое взаимодействие с сервером
Интеграция с сервисами Apple (iCloud, Apple Pay, Siri): расширение функциональности и возможностей приложений
Очереди операций и async/await, задачи и группы: эффективная организация асинхронных операций
Concurrency and Parallelism: основные концепции конкурентного программирования и параллельной обработки
Этап 11. Безопасность. Обработка медиа
Содержание:
Время прохождения: 1 месяц
1. Освоите методы обеспечения безопасности приложений, включая аутентификацию и шифрование данных
2. Научитесь работать с мультимедиа контентом и разрабатывать приложения с поддержкой rich media
Результат:
3. Приобретете навыки мультиплатформенной разработки для обработки медиа
Безопасность - OAuth 2.0, Keychain и обфускация API-ключей: защита данных и управление доступом
Безопасность при передаче данных: использование протоколов для безопасной передачи информации
Biometric Authentication: основы биометрической аутентификации и ее преимущества
Практика:
1. Проект 1: Реализация безопасного приложения с использованием биометрической аутентификации и шифрования данных
2. Проект 2: Разработка мультимедийного приложения с использованием технологий Metal и Vulkan
+ 10 домашних заданий
Мультиплатформенная разработка для Rich Media (Metal, Vulkan): создание приложений с поддержкой сложной графики и анимации
Шифрование данных и безопасность хранения: защита данных от несанкционированного доступа
SSL pinning и безопасность приложения: предотвращение атак и обеспечение целостности данных
Разработка игр и видео/изображение обработка: использование современных технологий для работы с мультимедиа контентом
Face ID, Touch ID и другие технологии: интеграция современных методов аутентификации
Обработка медиа
Этап 12. SwiftUI. Тестирование и непрерывная интеграция
Содержание:
Время прохождения: 1 месяц
Разработка интерфейса пользователя
1. Освоите проектирование и разработку пользовательских интерфейсов с использованием SwiftUI
2. Научитесь обеспечивать доступность и локализацию интерфейсов для различных пользователей
Результат:
3. Приобретете навыки тестирования и внедрения CI/CD для повышения качества приложений
Проектирование UI с помощью SwiftUI и его отличия от UIKit: создание современных интерфейсов
SwiftUI списки, кастомные макеты и хостинг контроллеров представления: работа с компонентами и макетами
Практика:
1. Проект 1: Создание приложения с интуитивно понятным интерфейсом, поддерживающего доступность и локализацию
2. Проект 2: Настройка CI/CD конвейера для автоматизации тестирования и развертывания приложения
+ 10 домашних заданий
Тестирование и непрерывная интеграция
Написание unit-тестов с помощью XCTest и UI-тестов с помощью UITest: обеспечение стабильности и надежности кода
Fastlane и CI/CD-конвейеры: автоматизация тестирования и развертывания для ускорения разработки
Навигация в SwiftUI (создание кастомного навигационного стека): организация навигации в приложении
Отображение структурированных данных, списки, пейджинг и кастомные компоненты с помощью UIViewRepresentable: интеграция UIKit в SwiftUI
После успешного завершения обучения:
Сертификат
Персональный сертификат о прохождении специализации. По запросу на английском языке.
Развитие карьеры и бизнеса:
У вас будет:
Консультации с ментором в течение обучения.
У вас будет:
Подборки вакансий, инсайты рынка труда.
У вас будет:
Проекты в ваше портфолио.
У вас будет:
Реальный опыт на крауд-платформах.