Разработчик iOS: практическое применение Swift 5, работа в Xсode и Git
Неделя кибер-студента!
Только на этой неделе — дополнительные скидки на обучение в честь Дня студента! Подробности в чате.
Подробнее

Курсы

Курсы в разработке Подготовительные курсы
+7 499 110-61-65

iOS Разработчик. Продвинутый курс v 2.0.

Вся мощь Swift 5.1 для развития профессиональных навыков уровня Middle/Senior iOS Developer
Подойдет ли мне этот курс?

Длительность

5 месяцев

Начало

27 февраля

Занятия

Чт 20:00, Вт 20:00

Общая стоимость

50 000 ₽

В месяц

12 500 ₽

В кредит:

12500 ₽ в месяц

Хочу дешевле
Общая стоимость
50 000 ₽
В месяц: 12 500 ₽
В кредит: 50000 ₽
в месяц
Продолжительность
5 месяцев, 4 академ. часа в неделю
Чт 20:00, Вт 20:00
Начало занятий
27 февраля
Что даст вам этот курс

Для кого
Программа создана специально для iOS Developers с опытом работы в сфере разработки мобильных iOS-приложений от 1 года и более.

Особенности программы
Обучение построено исключительно на кейсах из практики разработки приложений в production. Мы будем решать сложные и хардкорные задачи с уровнем качества топовых приложений:
✔ разработаем комплексный и анимированный UI, используя SwiftUI и знания, которые не найти в статьях в интернете;
✔ научимся адаптировать UI код для iPadOS и переносить на watchOS, tvOS, macOS платформы;
✔ изучим вопрос смешения декларативной и императивной парадигм, Rx паттерны и разработку на Combine.
✔ выстроим архитектуру под конкретное приложение: MVVM+S, Clean Swift(VIP) или SOA;
✔ научимся редкому навыку комфортного для iOS разработчиков переноса приложения на Android с сохранением 80-90% логики. Использованию кодогенерации, способу развивать себя как T-shaped мобайл инженера.

Вы научитесь:
✔ применять GCD и решать проблемы многозадачности,
✔ работать с протоколами Sequence и Collection,
✔ использовать в проектах структуры данных, Generic Type, Associated Types и техники Type Erasure, PATs (Protocol with Associated Types)
✔ грамотно работать с различными способами хранения данных (Core Data, Realm, Keychain, Cache),
✔ применять Dependency Injection (DI) и модуляризации приложений для более комфортной командной разработки и покрытия тестами;
✔ на практике изучите все плюсы и минусы известных методологий, подходов и парадигм (Protocol Oriented Programming, ООП, Reactive Programming).


Научитесь писать выразительный код, который в несколько строчек делает то, на что раньше уходил целый экран

Освоите ключевые особенности Swift 5

Сможете определять целесообразность применения тех или иных архитектурных паттернов

Погрузитесь в нюансы использования Rx: когда он необходим и дает окупаемую выгоду



После обучения
Выпускники на профессиональном уровне смогут проектировать сложные UI-компоненты и оптимизировать их производительность, разрабатывать клиент-серверные приложения и оффлайн-режим работы, писать тестируемый unit-тестами код и, конечно, успевать писать тесты.
iOS-приложение на SwiftUI с использованием Kotlin Mobile Multiplatform, 12 февраля в 20:00
Напишем приложение с использованием современных средств разработки, таких как SwiftUI на presentation слое, а в качестве слоя сервисов воспользуемся Kotlin Mobile Multiplatform, который уже используется такими компаниями как Яндекс и Autodesk.
Ведет
Кирилл
Володин
Предыдущий открытый вебинар
Всё о курсе «iOS Разработчик. Продвинутый курс v 2.0», 19 февраля в 20:00
День Открытых Дверей — отличная возможность узнать подробнее о программе курса, особенностях онлайн-формата, навыках, компетенциях и перспективах, которые ждут выпускников после обучения. Также преподаватель расскажет о своём профессиональном опыте и ответит на вопросы участников. Поэтому если есть вопрос, запишитесь на онлайн-трансляцию и задайте его в прямом эфире!
Ексей
Пантелеев
Предыдущий день открытых дверей
Swift is new C
Ексей Пантелеев
Преподаватель курса
Swift is new C
Ексей Пантелеев
Преподаватель курса
Преподаватели
Ексей Пантелеев
Head Of Mobile (Новые облачные технологии)
Алексей Соболевский
iOS-разработчик в Яндекс
Алексей Кудрявцев
iOS performance engineer в Avito
Кирилл Володин
TeamLead iOS в «Финансовой корпорации Открытие»
Алексей Киселев
Senior iOS Developer в Headhunter Group
Константин Савялов
Senior IOS-разработчик в «Газпром-Медиа Радио»
Работает программистом с 2002 года, суммарный опыт программирования — 17 лет. Имеет большой опыт разработки на С/С++, C#, Java, JS, Swift.

Принял участие более чем в десяти крупных и сложных проектах в ведущих IT-компаниях страны (игры, мессенджеры, финтех и офисные приложения), таких как "Тинькофф Банк", Мail.ru, "Новые Облачные Технологии".

Преподает iOS/Swift 4 года. Выступает на iOS-митапах. Знает, что программирование развивает мозг, поэтому планирует заниматься разработкой всю жизнь.

Свободное время посвящает geek-арт-фотографии и майнингу криптовалют.

Руководитель программы
Окончил Кемеровский государственный университет по специальности «Преподаватель-лингвист». В 2013 году сменил деятельность и самостоятельно обучился web-разработке. Работал в компаниях SilverSite и «Росконтроль», создавал сайты на языках PHP и Java, занимался вёрсткой.

Профессионально занимается iOS-разработкой с 2015-го года. Участвовал в создании чат-приложений, программного обеспечения для грузового такси, внедрял Continius Ingegration и т. д. Работал в компании Mover24 в качестве руководителя команды разработчиков, а также в компании «Новые Облачные Технологии».

На сегодняшний день Алексей работает в Яндексе. Помимо разработки на платформе iOS, активно проводит собеседования кандидатов, претендующих на позицию iOS Developer.

Стек технологий: Objective-C, Swift, UIKit, Foundation, CoreAnimation, Keychain, Associated Domains, SSO, App Groups, TeamCity.

iOS performance engineer в «Авито», ведущий подкаста AppsCast, член программного комитета конференции Mobius. Спикер, ментор, активный участник iOS-сообщества.

Успел поработать самостоятельно, сделать собственный open source-проект на чистом энтузиазме, побывать в небольших стартапах и сменить 3 бизнес-кластера из трёх в «Авито». Сейчас занимается производительностью приложения, так как считает, что это то, чего чаще всего не хватает современному софту.

Любит понимать, как работают сложные концепции и люди, приносить пользу пользователям своим продуктом, холиварить за качественный UI и UX, передавать свои знания через выступления на конференциях и другую публичную активность.

В свободное время занимается бегом, катается на велосипеде, играет на джембе, читает книги и пробует новые виды активности.

TeamLead iOS в «Финансовой корпорации Открытие» в г. Москва. Сооснователь Digital агентства RxProject. В прошлом работал в компании «Бинбанк» и как фрилансер.

Образование: окончил магистратуру МГТУ им. Н. Э. Баумана по специальности «Информатика и системы управления». Преподавал iOS-разработку на кафедре ИУ6 в МГТУ им. Н. Э. Баумана.

Основной стек: Swift, Alamofire, Realm, UIKit, Keychain, Gitlab, Swiftlint, Firebase, CryptoSwift. Имеет опыт разработки на Python и Java.

Помимо разработки на платформе iOS, сейчас активно интересуется разработкой под Android и Machine Learning. Также имеет за плечами опыт основания и работы в стартапе как CTO.

Любит участвовать в хакатонах. Участвовал в 8 хакатонах, на 7 из которых победил или занимал призовые места. На хакатоне «Росбанка» команда студентов с курса Кирилла в МГТУ им. Баумана заняла 1 место по мобильной разработке.

Преподаватель
Практикующий Senior iOS Developer с опытом управления командой разработчиков в качестве Lead iOS Developer. В программировании более 10 лет.

Начинал с .NET в области веб-приложений, получил статус MCPD. При развитии мобильного направления переключился на iOS-разработку. В iOS начинал с языка Objective-C с использованием MRC (pre-ARC). Последние 3 года старается использовать только Swift.

Работал в таких компаниях, как Fuse8, Humanworld.info, IDScan.net, ООО «КРИЭЙТ», 2can, OZON.travel, Mamba и других. Владеет широким спектром профессиональных навыков: Swift, Objective-C, JavaScript, HTML, CSS, C#, ASP.Net, ADO.Net, MS SQL Server, SQLite и пр.

Окончил Челябинский государственный университет по специализации «Радиофизика и компьютерная электроника».

Преподаватель
Окончил Ереванский государственный университет в 1992 году. В iOS-разработке с 2014 года.

Участвовал в реализации проектов разной степени сложности. Наиболее значимые из них — «Госуслуги», «МТС TV», «Волонтёры», «LikeFM».

Сейчас работает над разработкой приложения для «ComedyClub».

Преподаватель
Ексей
Пантелеев
Алексей
Соболевский
Алексей
Кудрявцев
Кирилл
Володин
Алексей
Киселев
Константин
Савялов
Преподаватели
Ексей Пантелеев
Head Of Mobile (Новые облачные технологии)
Работает программистом с 2002 года, суммарный опыт программирования — 17 лет. Имеет большой опыт разработки на С/С++, C#, Java, JS, Swift.

Принял участие более чем в десяти крупных и сложных проектах в ведущих IT-компаниях страны (игры, мессенджеры, финтех и офисные приложения), таких как "Тинькофф Банк", Мail.ru, "Новые Облачные Технологии".

Преподает iOS/Swift 4 года. Выступает на iOS-митапах. Знает, что программирование развивает мозг, поэтому планирует заниматься разработкой всю жизнь.

Свободное время посвящает geek-арт-фотографии и майнингу криптовалют.

Руководитель программы
Алексей Соболевский
iOS-разработчик в Яндекс
Окончил Кемеровский государственный университет по специальности «Преподаватель-лингвист». В 2013 году сменил деятельность и самостоятельно обучился web-разработке. Работал в компаниях SilverSite и «Росконтроль», создавал сайты на языках PHP и Java, занимался вёрсткой.

Профессионально занимается iOS-разработкой с 2015-го года. Участвовал в создании чат-приложений, программного обеспечения для грузового такси, внедрял Continius Ingegration и т. д. Работал в компании Mover24 в качестве руководителя команды разработчиков, а также в компании «Новые Облачные Технологии».

На сегодняшний день Алексей работает в Яндексе. Помимо разработки на платформе iOS, активно проводит собеседования кандидатов, претендующих на позицию iOS Developer.

Стек технологий: Objective-C, Swift, UIKit, Foundation, CoreAnimation, Keychain, Associated Domains, SSO, App Groups, TeamCity.

Алексей Кудрявцев
iOS performance engineer в Avito
iOS performance engineer в «Авито», ведущий подкаста AppsCast, член программного комитета конференции Mobius. Спикер, ментор, активный участник iOS-сообщества.

Успел поработать самостоятельно, сделать собственный open source-проект на чистом энтузиазме, побывать в небольших стартапах и сменить 3 бизнес-кластера из трёх в «Авито». Сейчас занимается производительностью приложения, так как считает, что это то, чего чаще всего не хватает современному софту.

Любит понимать, как работают сложные концепции и люди, приносить пользу пользователям своим продуктом, холиварить за качественный UI и UX, передавать свои знания через выступления на конференциях и другую публичную активность.

В свободное время занимается бегом, катается на велосипеде, играет на джембе, читает книги и пробует новые виды активности.

Кирилл Володин
TeamLead iOS в «Финансовой корпорации Открытие»
TeamLead iOS в «Финансовой корпорации Открытие» в г. Москва. Сооснователь Digital агентства RxProject. В прошлом работал в компании «Бинбанк» и как фрилансер.

Образование: окончил магистратуру МГТУ им. Н. Э. Баумана по специальности «Информатика и системы управления». Преподавал iOS-разработку на кафедре ИУ6 в МГТУ им. Н. Э. Баумана.

Основной стек: Swift, Alamofire, Realm, UIKit, Keychain, Gitlab, Swiftlint, Firebase, CryptoSwift. Имеет опыт разработки на Python и Java.

Помимо разработки на платформе iOS, сейчас активно интересуется разработкой под Android и Machine Learning. Также имеет за плечами опыт основания и работы в стартапе как CTO.

Любит участвовать в хакатонах. Участвовал в 8 хакатонах, на 7 из которых победил или занимал призовые места. На хакатоне «Росбанка» команда студентов с курса Кирилла в МГТУ им. Баумана заняла 1 место по мобильной разработке.

Преподаватель
Алексей Киселев
Senior iOS Developer в Headhunter Group
Практикующий Senior iOS Developer с опытом управления командой разработчиков в качестве Lead iOS Developer. В программировании более 10 лет.

Начинал с .NET в области веб-приложений, получил статус MCPD. При развитии мобильного направления переключился на iOS-разработку. В iOS начинал с языка Objective-C с использованием MRC (pre-ARC). Последние 3 года старается использовать только Swift.

Работал в таких компаниях, как Fuse8, Humanworld.info, IDScan.net, ООО «КРИЭЙТ», 2can, OZON.travel, Mamba и других. Владеет широким спектром профессиональных навыков: Swift, Objective-C, JavaScript, HTML, CSS, C#, ASP.Net, ADO.Net, MS SQL Server, SQLite и пр.

Окончил Челябинский государственный университет по специализации «Радиофизика и компьютерная электроника».

Преподаватель
Константин Савялов
Senior IOS-разработчик в «Газпром-Медиа Радио»
Окончил Ереванский государственный университет в 1992 году. В iOS-разработке с 2014 года.

Участвовал в реализации проектов разной степени сложности. Наиболее значимые из них — «Госуслуги», «МТС TV», «Волонтёры», «LikeFM».

Сейчас работает над разработкой приложения для «ComedyClub».

Преподаватель
Отзывы
Светлана
Лобан
Спасибо за курс и мотивацию программировать не только на работе, но и после работы :)
Читать целиком
Светлана
Лобан
Спасибо за курс и мотивацию программировать не только на работе, но и после работы :)
Читать целиком
Необходимые знания

– знание языка Swift (базовые типы, циклы, ветвление);
– опыт в разработке под IOS от 1 года;
– общее представление о Foundation (или Glibc);
– опыт работы в Xсode;
– навыки работы с Git.
Процесс обучения
Всё обучение проходит онлайн: вебинары, общение с преподавателями и вашей группой в слаке курса, сдача домашних работ и получение обратной связи от преподавателя. Вебинары идут дважды в неделю по 1,5 часа. Все вебинары сохраняются и в записи в вашем личном кабинете. Домашнее задание выдается в среднем одно в неделю, а его выполнение занимает 3-5 часов. Мы рекомендуем выполнять самостоятельную работу, так как это поможет качественно освоить все изучаемые технологии на практике с поддержкой и обратной связью преподавателей-экспертов.

Возникающие вопросы по материалам лекций, домашним заданиям и по выпускному проекту можно задавать преподавателям в Slack или во время вебинаров. Курс длится 5 месяцев, финальный месяц отводится для выполнения проектной работы, «досдачи» домашних заданий и вопросов преподавателям. Выполнение проектной работы помогает усвоению практических навыков, а тема проекта отдельно выносится в сертификат. Во время работы над проектом студенты получают консультации и обратную связь от преподавателей в Slack группы и на проектных занятиях.
Программа обучения
Модуль 1
SwiftUI и основы Combine
Модуль 2
Современная архитектура мобильных приложений
Модуль 3
Foundation без сторонних фреймвоков и Swift 5 Standard Library
Модуль 4
Многозадачность
Модуль 5
Networking и хранение данных
Модуль 6
Создание приложений для watchOS, tvOS, перенос приложений с помощью Mac Catalyst
Модуль 7
Мультиплатформенная разработка, кодогенерация, перенос приложения на Android
Модуль 8
Организация разработки
Модуль 9
Проектная работа
SwiftUI и основы Combine
В этом модуле мы изучим внутренности UIKit, его архитектурные плюсы и недочеты. Научимся отображать комплексные данные. Оптимизировать рендеринг UI компонентов. Попрактикуемся в сборке интерфейсов корректно работающих на всех вариациях SizeClasses и анимации.
Тема 1: Проектируем UI декларативно с SwiftUI. В чем отличия UIKit и SwiftUI
– Возможности и ограничения SwiftUI
– Property Wrappers: @State, @Binding, @ObservedObject и ObservableObject, @EnvironmentObject, @Environment
– Основы Combine: @Published
– Решение организационных вопросов.
– Настройка environment: Xcode, git, scripts
27 февраля, 20:00 — 21:30
Домашние задания: 1
1 Создание каркаса приложения на SwiftUI
Цель: Студент 1. Будет целостно понимать навигационный стек SwiftUI/Combine 2. Получит умение сборки иерархии экранов на SwiftUI/Combine
Тема 2: Life cycles, Responder Chain, SceneDelegate, Hosting ViewControllers
— Life cycle приложения
— UIResponder
— SceneDelegate
— Hosting ViewControllers и зачем они
— Combine
3 марта, 20:00 — 21:30
Тема 3: Использование NavigationView, TabView, ScrollView и продвинутая работа с UIScrollView
– Особенности навигации в SwiftUI
– Кейсы использования ScrollView в SwiftUI
– Бесконечный скроллинг
– Устройство UIScollView и что такое контейнеры в UIKit
5 марта, 20:00 — 21:30
Тема 4: Отображение структурированных данных, List, пейджинг, кастомные компоненты на UIViewRepresentable
– Использование List в SwiftUI
– Реализация пейджинга для List
– Привязывать List к реальному API с помощью кодогенерации
10 марта, 20:00 — 21:30
Домашние задания: 1
1 Реализация пейджинга на реальном API
Цель: Список с пейджингом работающий на реальном серверном API
Тема 5: Создание кастомных Shape, SwiftUI Drawing and Animation API
– Разница CoreGraphics и Drawing API SwiftUI
– Создание кастомных фигур на Drawing API SwiftUI
– Анимация интерфейса в SwiftUI
12 марта, 20:00 — 21:30
Современная архитектура мобильных приложений
MVC, MVP, MVI, MVVM, VIPER, RIBs, MOVVER, YARCH и что дальше? Архитектуры множатся, проблемы остаются те же. Научимся целевому выбору архитектурных паттернов и попрактикуемся в проектировании.
Тема 1: MVP, MVCS, MVVM, архитектурные паттерны, модуляризация, Архитектурные Rx паттерны
— MV(X) архитектурные паттерны
— Модуляризация приложения, способы: Frameworks, Cocoapods, JSCore, SPM
— Архитектурные Rx паттерны
17 марта, 20:00 — 21:30
Домашние задания: 1
1 Создания каркаса для модуляризированного приложения
Цель: Прокачать умение делать архитектурный рефакторинг всего приложения.
Тема 2: Dependency Injection, SOA, слоистая архитектура. Protocol Oriented Programming (POP)
— Inversion of Control паттерн
— ServiceLocator и инжектинг
— Разделение архитектуры на слои и что это дает
– Protocol Oriented Programming (POP)
– Type constraints
19 марта, 20:00 — 21:30
Домашние задания: 1
1 Реализация Service Locator и Dependency Injection и изолированности слоев в приложении
Цель: Научится внедрять DI, понять плюсы подхода
Тема 3: Современные паттерны проектирования, принцип SOLID и его целесообразное применение. Принципы GRASP
— SOLID и как получить от него пользу
— Другие принципы: KISS, DRY/DIE, YAGNI, BDUF, SOC
— Необходимые паттерны для сегодняшней мобильной разработки: Adapter, Memento, Observer, Strategy, Factory, Command, Composite, Iterator, Mediator, Proxy, Template Method, Singleton и где они приненимы на iOS
24 марта, 20:00 — 21:30
Тема 4: Необычная система типов Swift, структуры данных, Generics
— Теория типов и Compound и Named типы
— Метатип и вложенные типы
— Protocol Composition
— Generics
— Создание кастомных структур данных
26 марта, 20:00 — 21:30
Тема 5: Связывание разных частей приложения Observing, Signals, Callbacks. PATs (Protocol with Associated Types)
— Observing и broadcasting, нужен ли нам KVO
— Плюсы и минусы Delegation, виды делегатов
— Callbacks
— Signals ans Slots и причем здесь Rx
– PATs (Protocol with Associated Types)
31 марта, 20:00 — 21:30
Foundation без сторонних фреймвоков и Swift 5 Standard Library
Загрузим в мозг стройную модель Statements, Expressions и Declaration языка Swift, и попрактикуемся в их использовании. Научимся использовать все возможности String. Научимся управлять "сахарностью" Swift и поймем, что многие библиотеки в проекте вам просто не нужны.
Тема 1: Sequences и коллекции, асимптотический анализ: O(1), O(N), O(N*log(N)), O(n^2)
— Sequence и IteratorProtocol
— Type-erased типы: AnySequence, AnyIterator, AnyCollection
— Lazy Wrappers
— Wrappers for Algorithms
— Асимпотический анализ встроенных и кастомных структур данных
2 апреля, 20:00 — 21:30
Домашние задания: 1
1 Реализация механизма тестирования алгоритмов на производительность и отображения результатов
Цель: Вы научитесь создавать кастомные структуры данных на основе протоколов Sequence и IteratorProtocol кастомные структуры данных и решать с помощью них реальные задачи в приложениях
Тема 2: Использование всей мощи String, Literals vs. UnicodeScalar, UTF-16
— Сравнение суффиксов и префиксов и другие способы сравнения строк
— Работа с utf8 и utf16 представлениями
— Ипользование подстрок и Ranges, StringProtocol
— Regex
7 апреля, 20:00 — 21:30
Домашние задания: 1
1 Продвинутая локализация приложения на несколько языков
Тема 3: Региональные форматы и локализация iOS приложения
— Парсинг и представление телефонных номеров
— Форматирование дат согласно региону и локали, POSIX спецификация
— Работа с единицами измерения и валютами
— Корректная локализация приложения на несколько языков и регионов
9 апреля, 20:00 — 21:30
Домашние задания: 1
1 Создание ячейки с поддержкой региональной локализации
Цель: Получить умение создавать App Extension. Научиться разрабатывать поддержку в приложении нескольких региональных локалей
Тема 4: Ассоциативные типы, Type Erasure, «сахарные» типы данных, диспетчеризация вызовов в Swift 5
— 3 типа диспатчеризации в Swift: direct, dynamic, message
— Associated Types
— PATs и динамическая диспатчеризация
— Другие способы реализации паттерна Type Erasure
— Как работают типы в SIL (Swift Intermediate Language)
14 апреля, 20:00 — 21:30
Домашние задания: 1
1 Создание 3х реализаций расчета и отображения и вывод результатов на диаграмму
Тема 5: Компилятор LLVM, AST, создание собственных операторов
— Как работает LLVM: SIL, IR
— Как некоторые типы представлены в SIL и для чего это нужно знать
— Особенности и хитрости компиляции
— Перезагрузка и создание операторов
16 апреля, 20:00 — 21:30
Домашние задания: 1
1 Проектирование и реализация своей собственной структуры данных и оценка ее эффективности
Многозадачность
Попрактикуемся в использовании последовательных (serial) и параллельных (concurrent) очередей, в создании управлении DispatchGroup. Использовании мьютексов и семафоров и других Locks. Будем знать как решать проблемы параллельной многозадачности типа Priority inversion и другие.
Тема 1: Проблемы многозадачности и способы их решения, GCD
— Антипаттерны и проблемы: Priority Inversion, Race condition, Deadlock, Resource contention, Starvation, Non-deterministic and Fairness
— Использование GCD: QoS, Queues, Main Queue и Main Thread
21 апреля, 20:00 — 21:30
Домашние задания: 1
1 Реализация асинхронного выполнения задач и оценка эффективности подхода
Цель: Научиться внедрять сервис очереди в существующую инфраструктуру приложение, развиваем навык рефакторинга для не-UI кода приложения
Тема 2: Внутренности GCD(libdispatch), OperationQueue
— Плюсы и минусы OperationQueue
— Внутренности libdispatch: пул тредов, continuation, QoS и как зная это лучше использовать очереди
23 апреля, 20:00 — 21:30
Тема 3: RunLoop & POSIX Threads, Инструменты синхронизации, Lock, Mutex
— RunLoop и чем сегодня он может нам быть полезен
— pthreads
— Виды локов: NSLock, NSRecursiveLock, Spinlock, Mutex, Semaphore
— Dispatch Barriers
— Trampoline техника
28 апреля, 20:00 — 21:30
Домашние задания: 1
1 Реализация общей конкурентной очереди на приложение, создание внутренней системы тасков
Networking и хранение данных
Познакомимся со свежим фреймвоком Network для iOS. Будем использовать Codable для легкой серилизации и десириализации данных. Изучим подходы к хранению данных в приложении. Потренируемся использовать Core Data и Realm, и будем понимать когда какое хранилище использовать.
Тема 1: Новый Network-фреймвок, URLSession, Codable
— Network феймвок, HTTP, REST, Sockets, GraphQL
— URLSession
— Сериализация и десериализация c помощью Codable
30 апреля, 20:00 — 21:30
Тема 2: Когда использовать Files, чистый SQLite, способы кеширования
— Виды кеширования
— SQLite и другие DB* альтернативы
— NoSQL
— Files и File System
5 мая, 20:00 — 21:30
Домашние задания: 1
1 Имплементация сериализации и сохранения данных на backend
Цель: Научится сохранять Codable структуры в файлы, реализовывать кэш
Тема 3: CoreData — основные стратегии использования
— NSManagedObject, NSPersistentStoreCoordinator, NSManagedObjectContext
— NSPersistentContainer
— Модель данных
— CRUD на Core Data
7 мая, 20:00 — 21:30
Тема 4: Realm
— Плюсы и минусы Realm
— Модель данных на Realm
— Realm Browser
— CRUD на Realm
12 мая, 20:00 — 21:30
Домашние задания: 1
1 Реализация поддержки оффлайн режима в приложении
Цель: Создать приложение, которое будет получать данные из сети. 1 Кэширование реализовать на Realm или CoreDara. 2 Полученными данными заполнить таблицу согласно архитектурному паттерну MVC или другому
Создание приложений для watchOS, tvOS, перенос приложений с помощью Mac Catalyst
Тема 1: watchOS
— Отличия SwiftUI для watchOS
— Создание приложения для Apple Watch
— Интеграция c iOS приложением
14 мая, 20:00 — 21:30
Тема 2: tvOS
— Отличия SwiftUI для tvOS
— Создание приложения для Apple TV
19 мая, 20:00 — 21:30
Тема 3: iPadOS, Mac Catalyst, перенос приложения на macOS
— Нюансы SwiftUI для iPadOS/macOS
— Перенос приложения на macOS
21 мая, 20:00 — 21:30
Мультиплатформенная разработка, кодогенерация, перенос приложения на Android
Тема 1: Мета-программирование на чистый Swift и Kotlin и внедрение кодогенерации
— Основы метапрограммирования
— OpenAPI
— Sourcery
26 мая, 20:00 — 21:30
Тема 2: Виды нативной мультиплатформы: Pure Swift + Pure Kotlin, общее ядро на Kotlin Multiplatform
— Android Studio & IntelliJ IDEA
— Обзор Kotlin Multiplatform и целесообразность общего ядра
— Разработка Pure Swift + Pure Kotlin
28 мая, 20:00 — 21:30
Домашние задания: 1
1 Реализация каркаса приложения используя декларативный подход и Rx
Тема 3: Одновременная реализация фич на iOS + Android. Необходимый tool-set
— Как Swift разработчику писать на Kotlin
— SwiftUI + Jetpack Compose
— Combine + RxAndroid/RxKotlin/RxJava
2 июня, 20:00 — 21:30
Домашние задания: 1
1 Создание UI слоя приложения на Rx
Организация разработки
Немного познакомимся с теорией тестирования, напишем XCTest и UITest, узнаем как правильно проектировать тестируемый код. Изучим как настраивать Continuous Integration (CI) и причем здесь git и git-flow. Также научимся писать работающие резюме и то, что не говорят на собеседованиях, но используют.
Тема 1: Тестирование кода XCTest, UITest, fastlane и CI
— Test-Driven Development (TDD)
— Теория тестирования
— Использование XCTest
— Зачем нужен UITest
— Сборка CI (Continuous Integration) на fastlane
4 июня, 20:00 — 21:30
Тема 2: Git-flow, TBD, автоматизизация workflow
— Продвинутое использование git
— Фича, хотфикс, релизный цикл, master ветка
— Использование комманд git-flow
— Trunk Based Development и ветки для вич
9 июня, 20:00 — 21:30
Домашние задания: 1
1 Покрытие приложения юнит-тестами
Тема 3: Как правильно написать резюме и развивать hard-skills
— Почему важно корректно писать резюме
— Как выбирать работодателя чтобы развивать свой hard-skills
— Какие бывают работодатели
— Какие скрытые критерии отбора используются
11 июня, 20:00 — 21:30
Домашние задания: 1
1 Написание работающего резюме
Проектная работа
На основе умений и знаний полученных в курсе студент выбирает какой проект будет реализовывать. С нашей стороны будет помощь и наставничество в реализации проекта. Также нами будет предложен экспертный список «Чего не хватает в AppStore» из небольших и средних программ, где вы бы могли себя проявить.

Проект может помочь в трудоустройстве.

Тема 1: Написание приложения с нуля
— Выбор темы для приложения
— Как генерировать идеи для простых приложений на основе известных «­болей» пользователй
— Как использовать iOS платформу для генерации идей для приложений
— Подбор инструментов, помощь с стартом написания приложения
16 июня, 20:00 — 21:30
Домашние задания: 1
1 Написание приложения с нуля
Тема 2: Консультация по проекту
18 июня, 20:00 — 21:30
Тема 3: Защита проекта
23 июня, 20:00 — 21:30
Домашние задания: 1
1 Сдать ссылку на репозиторий курсового проекта. В репозитории обязательно должен быть заполнен файл Readme.md с описание проекта.
Выпускной проект
На основе умений и знаний полученных в курсе студент выбирает какой проект будет реализовывать. С нашей стороны будет помощь и наставничество в реализации проекта. Также нами будет предложен экспертный список «Чего не хватает в AppStore» из небольших и средних программ, где вы бы могли себя проявить.
Прошедшие открытые вебинары по курсу
Открытый вебинар — это настоящее занятие в режиме он-лайн с преподавателем курса, которое позволяет посмотреть, как проходит процесс обучения. В ходе занятия слушатели имеют возможность задать вопросы и получить знания по реальным практическим кейсам.
Онлайн-интенсив, день 2: SwiftUI: перенос приложения с iOS на Android
Ексей Пантелеев
День открытых дверей
20 ноября 2019 года в 20:00
Для доступа к прошедшим мероприятиям необходимо пройти входное тестирование
Возможность пройти вступительное тестирование повторно появится только через 2 недели
Результаты тестирования будут отправлены вам на e-mail, указанный при регистрации.
Тест рассчитан на 30 минут, после начала тестирования отложить тестирование не получится!
Пройти вступительное тестирование
После обучения вы

  • заберете с собой полный комплект обучающих материалов: видеозаписи всех вебинаров и презентации к занятиям;

  • сохраните пример разработанного приложения;

  • получите сертификат о прохождении курса;

  • получите приглашение пройти собеседование в компаниях-партнерах (эту возможность получают самые успешные студенты).

Дата выдачи сертификата: 31 августа 2020 года
Ваш сертификат

онлайн-образование

Сертификат №0001

Константин Константинопольский

Успешно закончил курс «iOS Разработчик. Продвинутый курс v 2.0.»
Выполнено практических заданий: 16 из 16

Общество с ограниченной ответственностью “Отус Онлайн-Образование”

Город:
Москва

Генеральный директор ООО “Отус Онлайн-Образование”
Виталий Чибриков

Лицензия на осуществление образовательной деятельности
№ 039825 от 28 декабря 2018г.

онлайн-образование

Сертификат №0001

Константин Константинопольский

Успешно закончил курс «iOS Разработчик. Продвинутый курс v 2.0.»
Выполнено практических заданий: 16 из 16

Общество с ограниченной ответственностью “Отус Онлайн-Образование”

Город:
Москва

Генеральный директор ООО “Отус Онлайн-Образование”
Виталий Чибриков

Лицензия на осуществление образовательной деятельности
№ 039825 от 28 декабря 2018г.
Общая стоимость
50 000 ₽
В месяц: 12 500 ₽
В кредит: ₽ в месяц
Продолжительность
5 месяцев
Начало занятий
27 февраля