Top.Mail.Ru
  •  Computational thinking. Работа кода. Хранение и передача информации.
  • Устройство WEB и работа браузера. Работа протоколов. DNS
  • Основы работы с сетями. TCP/UDP
  • Классификация языков программирования. Концепции объектно-ориентированного и функционального программирования. Принципы SOLID, KISS
  • Качество кода
Введение в программирование
Первый уровень
1 месяц
  • Напишете 20 простых программ на псевдокоде с использованием событий, условий, циклов и функций
Результат:
Swift
Первый уровень
1 месяц
  • Освоите синтаксис Swift — от базовых логических конструкций до сложных концепций языка — напишите 50+ программ на Swift и научитесь работать в IDE и «песочнице»
Результат:
  • Обзор и установка IDE. Знакомство с Playground
  • Переменные, константы, основные типы данных. Преобразование типов
  • Операторы и выражения. Булевы и логические выражения. Условные конструкции
  • Циклы. Условия. Инструкции
  • Функции. Методы. Замыкания
  • Структуры и энумы
  • Опшионалы. Строки. Классы
  • Коллекции: массивы, словари, множества
  • Объектно-ориентированное программирование: наследование, полиморфизм, свойства классов
  • Протоколы
  • Обработка исключений и ошибок
  • Generic-код
Содержание курса:
Содержание курса:
  • Проект 1: Написание игры по типу Arkanoid на Swift с помощью SpriteKit
  • Проект 2: Написание калькулятора на Swift
  • 10 практических работ по написанию кода на Swift
  • Тренажёр по синтаксису Swift
Практика:
Программа специализации
«Программирование на Objective-C и Swift»
1

2

Программа специализации «Мобильная iOS-разработка»
Интерфейсы и архитектура приложения
Второй уровень
2 недели
Результат:
  • Научитесь проектировать интерактивные и динамичные мобильные интерфейсы и реализуете своё первое приложение
Содержание курса:
  • Основные компоненты для работы с Xcode: Navigator, Debug area, Utilities
  • Архитектурные паттерны: MVC, MVVM, MVP, чистая архитектура. Cocoa-паттерн, структурный, поведенческий паттерны
  • Архитектурные принципы. SOLID и внедрение зависимостей
  • Жизненный цикл приложения
  • Инструмент Storyboard. Знакомство с фреймворком UIKit
  • Компоненты UIKit: UIView, UIViewController, Layout и AutoLayout, Navigation. Constraints. StackView. Жизненный цикл UIView
  • UIViewController. Cоздание окон и экранов. Создание переходов между экранами. Создание динамических интерфейсов
  • UITableView, UICollectionView. Работа с таблицами и коллекциями
  • Создание собственных UI-компонентов
  • Работа с фреймворками Cocoa Touch и Swift UI
  • Делегирование и работа с протоколами
  • Создание уведомлений
  • Взаимодействие с сервером. Форматы передачи данных: JSON, XML, binary, base64 и др. Парсинг JSON
  • Асинхронное программирование
Практика:
  • Проект 3: Создание интерфейса главной страницы для медитации (или любого хобби на выбор) в InterfaceBuilder
  • Проект 4: Создание интерфейсов многоэкранного приложения для планирования дел и событий
  • Проект 5: Приложение для информирования о погоде в нескольких городах с подключением к сторонним данным
Работа с данными и их хранение
Второй уровень
2 недели
Практика:
  • 4 практикума по работе с данными
Содержание курса:
  • Основы хранения данных. Работа с файловой системой APFS
  • OnDemandResourses. Работа с ресурсами для уменьшения размера приложения
  • Работа с фреймворком CoreData
  • Управление памятью. ARC (автоматический подсчёт ссылок)
  • Хранение данных в облаке
  • Выборка и отображение данных. NSFethedRequest, NSFetchedResultsController
  • Работа с утечками данных встроенными средствами Xcode
  • Кэширование данных
  • Обзор Realm и SQLite+
Многопоточность
Второй уровень
2 недели
Практика:
  • Проект 6: Приложение для обмена изображениями с возможностью ставить реакции, оставлять комментарии, делать личные подборки
Содержание курса:
  • Потоки и конкурентность. Плюсы и минусы использования многопоточности
  • POSIX, NSThread: низкоуровневые API для работы с многопоточностью
  • Понятие очереди. Работа с Grand Central Dispatch
  • Поиск и исправление ошибок встроенными средствами Xcode
  • Поиск проблем производительности приложения
Работа с сетью
Второй уровень
2 недели
Практика:
  • Реализуете асинхронность в вашем приложения для увеличения производительности, настроите обмен данных по сети и с базой данных и увеличите функциональность приложения
Содержание курса:
  • Клиент-серверное взаимодейтсвие. Протокол HTTP, RESTful APIs
  • URLSession: высокоуровневый API для работы с сетью
  • Сериализация и десериализация данных в Realm
  • Работа с сетью в фоновом режиме
  • WKWebView, SFSafariViewController: отображение веб-страниц внутри приложения
  • Составление CV и cover letter
  • Имитация технического интервью с экспертом-разработчиком и полезный фидбэк,
  • Решение реальных тестовых заданий,
  • Практическое задание: отправлять не менее 10 откликов на позиции Junior iOS Developer в день в течение двух недель
Параллельный трек — карьерный модуль:
3
4
5
6

Программа специализации «Мобильная iOS-разработка»
Интерфейсы и архитектура приложения
Третий уровень
1 неделя
Результат:
  • Научитесь проектировать интерактивные и динамичные мобильные интерфейсы и реализуете своё первое приложение
Содержание курса:
  • Основы digital-дизайна
Дополнительные фреймворки
Третий уровень
2 недели
Практика:
  • Проект 6.1: Добавление в приложение для обмена изображениями возможности обмена аудио- и видеофайлами
Содержание курса:
  • Фреймворк Photos: работа с изображениями
  • Фреймворки AVKit и AVFoundation: работа с видео
  • Фреймворки AudioToolbox и CoreAudio: работа с аудио
  • App Extensions: расширение возможностей приложения
  • Добавление встроенных покупок в приложение
  • Интеграция с социальными сетями
  • Особенности создания приложений для Apple Watch, AppleTV, iPad
Тестирование, debugging и аналитика
Третий уровень
1 неделя
Практика:
  • 1 практикум по UI-тестированию
Содержание курса:
  • Unit-тестирование. TDD-тестирование. Фреймворк XCTest
  • UI-тестирование
Сборка и подготовка к публикации приложения в AppStore
Третий уровень
2 недели
Результат:
  • Изучите дополнительные фреймворки и библиотеки для придания большей функциональности вашему приложению, спроектируете безопасное архитектурное решение для финального проекта, настроите тестирование, подключите инструменты аналитики и разработаете приложение-мессенджер
Содержание курса:
  • Концепция CI/CD. Доработки и оптимизация приложения. Поддержка приложения
  • Работа с CI-системами: Fastlane, Jenkins, Travis
  • Локализация приложения
  • Загрузка в AppStore. Стратегии распространения приложения
Практика:
  • Финальный проект: Приложение-мессенджер с различными типами обмена сообщениями (личные сообщения, канал, групповой чат, чат-бот) на Swift
Введение в Objective-C
Первый уровень
2 недели
Результат:
  • Освоите синтаксис и основные конструкции Objective-C, чтобы в будущем было легче подойти к поддержке кода на нём в реальных проектах
Содержание курса:
  • Инварианты и переменные. Указатели. Типы данных. Объявление методов и классов. Вызов методов
  • Создание объектов. Протоколы. Обработка исключений
  • Динамичность Objective-C и работа с Runtime API. Особенности интеграции Objective-C и Swift. Поддержка проектов с Objective-C-кодом
Практика:
  • 4 мини-проекта по написанию кода на Objective-C
7
8
9
10
11
После успешного обучения
Сертификат
Персональный сертификат о прохождении специализации. По запросу предоставляется на английском языке.
Развитие карьеры и бизнеса
— консультации с ментором в течение обучения
— подборки вакансий, инсайты рынка труда
— проекты в ваше портфолио
— реальный опыт на крауд-платформах
Развитие карьеры и бизнеса
Сообщество экспертов с бизнес-опытом из разных сфер