Курсы
События
Преподавателям
Компаниям
О нас
+7 499 938-92-02

iOS Developer. Professional

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

30 ноября

Professional

5 месяцев

Онлайн

Пн/Ср 20:00 Мск

Для кого этот курс?

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

Необходимые знания

  • знание языка Swift (базовые типы, циклы, ветвление)
  • опыт в разработке под IOS от 1 года
  • общее представление о Foundation (или Glibc)
  • опыт работы в Xсode
  • навыки работы с Git

Что даст вам этот курс?

  • Научитесь писать выразительный код, который в несколько строчек делает то, на что раньше уходил целый экран
  • Освоите ключевые особенности Swift 5
  • Сможете определять целесообразность применения тех или иных архитектурных паттернов
  • Погрузитесь в нюансы использования Rx: когда он необходим и дает окупаемую выгоду

Особенности программы

Обучение построено исключительно на кейсах из практики разработки приложений в 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)

После обучения вы

На профессиональном уровне сможете проектировать сложные UI-компоненты и оптимизировать их производительность, разрабатывать клиент-серверные приложения и оффлайн-режим работы, писать тестируемый unit-тестами код и, конечно, успевать писать тесты. 

Необходимое оборудование

Для комфортного изучения технологий iOS-разработки необходим MacBook или другой компьютер на macOS.

Актуальность профессии

Несмотря на ограничения со стороны компании Apple для использования некоторых сервисов экосистемы, нет никакой вероятности, что устройства потеряют актуальность. Поэтому на рынке необходимы специалисты, которые будут поддерживать уже созданные приложения для iOS и macOS, а также разрабатывать новые. Профессия iOS-разработчика по-прежнему актуальна и востребована на рынке труда.

Процесс обучения

  • Обучение проходит онлайн: живые вебинары, общение с преподавателями и группой в Slack, обратная связь от экспертов по готовым ДЗ
  • Вебинары идут дважды в неделю по 1,5 часа. Записи занятий будут доступны в личном кабинете
  • Домашние задания выдаются в среднем раз в 2 недели. Самостоятельное выполнение работ поможет применить полученные знания на практике
  • Вопросы по материалам лекций, ДЗ и выпускному проекту можно обсудить как на вебинарах, так и в чате группы в Slack
  • Выполните настоящий проект, тема которого будет указана в сертификате

Эффективные навыки


Научитесь писать кроссплатформенные приложения для экосистемы Apple

Перспективы


Сможете претендовать на позицию Middle iOS Developer

Портфолио


Создадите проектную работу, которая поможет закрепить полученные знания

Трудоустройство

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

  • Получите помощь с оформлением резюме, портфолио и сопроводительного письма
  • Разместите свое резюме в базе OTUS и сможете получать приглашения на собеседования от партнеров
  • Пройдете карьерную консультацию с нашим HR-специалистом
  • Получите рекомендации, как искать работу, и советы по прохождению собеседования

Работодатели курса

Формат обучения

Интерактивные вебинары


2 занятия по 2 ак.часа в неделю
Доступ к записям и материалам остается навсегда

Практика


Домашние задания + проектная работа, которая усилит ваше портфолио

Активное комьюнити


Общайтесь с преподавателями голосом на вебинарах и в Slack группы

Программа

SwiftUI и основы Combine

В этом модуле мы изучим внутренности UIKit, его архитектурные плюсы и недочеты. Научимся отображать комплексные данные. Оптимизировать рендеринг UI компонентов. Попрактикуемся в сборке интерфейсов корректно работающих на всех вариациях Size Classes и анимации.

Тема 1: Проектируем UI декларативно с SwiftUI. В чем отличия UIKit и SwiftUI

Тема 2: SwiftUI List, List с кастомным лейаутом, Hosting ViewControllers

Тема 3: Использование NavigationView, TabView. Нативная навигация + Создание собственного стека Навигации в случаях, где недостаточно нативной

Тема 4: Создание кастомных Shape, SwiftUI Drawing and Animation API

Тема 5: Отображение структурированных данных, List, пейджинг, кастомные компоненты на UIViewRepresentable

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

MVC, MVP, MVI, MVVM, VIPER, RIBs, MOVVER, YARCH и что дальше? Архитектуры множатся, проблемы остаются те же. Научимся целевому выбору архитектурных паттернов и попрактикуемся в проектировании.

Тема 1: Необычная система типов Swift, структуры данных, Generics, Связывание разных частей приложения Observing, Signals, Callbacks. PATs (Protocol with Associated Types)

Тема 2: Protocol Oriented Programming (POP), SOA, модуляризация, архитектурные Rx паттерны: Flux/Redux

Тема 3: MVx, VIP, анализ архитектурных паттернов. SOLID, GRASP, Coupling/Cohesion принципы.

Foundation без сторонних фреймвоков и Swift 5 Standard Library

Загрузим в мозг стройную модель Statements, Expressions и Declaration языка Swift, и попрактикуемся в их использовании. Научимся использовать все возможности String. Научимся управлять "сахарностью" Swift и поймем, что многие библиотеки в проекте вам просто не нужны.

Тема 1: Sequences и коллекции, асимптотический анализ: O(1), O(N), O(N*log(N)), O(n^2)

Тема 2: String: устройство, конвертация с другими типами, регулярные выражения Swift 5.7

Тема 3: Поддержка многоязычности: локализация строк, кодогенерация и сервисы переводов. Региональные отличия: переводы дат, величин, оцифровывание текста

Многозадачность

Попрактикуемся в использовании последовательных (serial) и параллельных (concurrent) очередей, в создании управлении DispatchGroup, использовании мьютексов и семафоров и других Locks. Будем знать, как решать проблемы параллельной многозадачности типа Priority inversion и другие.

Тема 1: Проблемы многозадачности и способы их решения, GCD

Тема 2: Внутренности GCD(libdispatch), OperationQueue

Тема 3: Async/Await, Tasks, Groups

Тема 4: Actor, @MainActor, Global actors, Distributed actor (пример по сокетам)

Networking и хранение данных

Познакомимся со свежим фреймвоком Network для iOS. Будем использовать Codable для легкой серилизации и десириализации данных. Изучим подходы к хранению данных в приложении. Потренируемся использовать Core Data и Realm, и будем понимать когда какое хранилище использовать.

Тема 1: GraphQL, кодогенерация, отправка и прием сообщений

Тема 2: gRPC, кодогенерация, отправка и прием сообщений

Тема 3: Socket.io, WebSocket и другие сокеты для чатов и мгновенных обновлений

Тема 4: SQLite, способы кеширования, Files, Сравнение CoreData и Realm

Тема 5: Безопасность: AppSecurity, Keychain и обфускация API ключей, SSL Pinning

Создание приложений для Apple Watch, TV, Mac

Потренируемся собирать мультиплтаформу средствами Apple. Разберемся в особенность разработки под watchOS, tvOS, macOS и iPadOS. Будем использовать преимущества SwiftUI для мультиплатформы.

Тема 1: Виджеты, AppClips

Тема 2: watchOS

Тема 3: tvOS

CoreML и Vision, нейронные сети и машинное обучение

Научимся внедрять в приложение обученные модели на нейронных сетях. Также разберемся как самому получить модель с помощью AutoML Vision.

Тема 1: CoreML, CreateML, Vision использование обученных моделей нейронных сетей

Тема 2: Обработка видеопотока с помощью CoreML в режиме реального времени c AVFoundation, CoreImage и Metal

Мультиплатформенная разработка: перенос на Android, Vulkan/Metal

Разберемся с GPU программированием, как писать общий GPU код под iOS и Android. Познакомимся с аналогом SwiftUI для Android – Jetpack Compose. Научимся собирать мультиплатформенные iOS+Android приложения с помощью Kotlin Multiplatform и Kotlin 1.4

Тема 1: Мультиплатформа для Rich Media: Metal и Vulkan, разработки игр, Video/Image процессинг

Тема 2: Одновременная реализация фич на iOS + Android. Необходимый tool-set

Тема 3: Jetpack Compose

Организация разработки

Немного познакомимся с теорией тестирования, напишем XCTest и UITest, узнаем как правильно проектировать тестируемый код. Изучим как настраивать Continuous Integration (CI) и причем здесь git и git-flow. Также научимся писать работающие резюме и то, что не говорят на собеседованиях, но используют.

Тема 1: Тестирование кода XCTest, UITest, fastlane и CI

Тема 2: Как правильно написать резюме и развивать hard-skills

Проектная работа

На основе умений и знаний полученных в курсе студент выбирает какой проект будет реализовывать. С нашей стороны будет помощь и наставничество в реализации проекта. Также нами будет предложен экспертный список «Чего не хватает в AppStore» из небольших и средних программ, где вы бы могли себя проявить. Проект может помочь в трудоустройстве.

Тема 1: Написание приложения с нуля

Тема 2: Консультация по проектам и домашним заданиям

Тема 3: Защита проектных работ

Выпускной проект


На основе умений и знаний полученных в курсе студент выбирает какой проект будет реализовывать. С нашей стороны будет помощь и наставничество в реализации проекта. Также нами будет предложен экспертный список «Чего не хватает в AppStore» из небольших и средних программ, где вы бы могли себя проявить.

Преподаватели

Руководитель курса

Ексей Пантелеев

Руководитель группы разработки мобильных приложений

Новые Облачные Технологии

Анна Жаркова

Маргарита Жерихова

Павел Плотников

Евгений Салов

Николай Бакланов

Старший разработчик

ISSArt

Сергей Балалаев

Team Lead iOS

SberCloud

Тимур Саидов

Эксперты-практики делятся опытом, разбирают кейсы студентов и дают развернутый фидбэк на домашние задания

Прошедшие
мероприятия

Ексей Пантелеев
Открытый вебинар
Machine Learning в iOS с помощью CoreML и CreateML: изображения, текст, звук
Николай Бакланов
Открытый вебинар
Пример реализации технологии Flux на SwiftUI
Оставьте заявку, чтобы получить доступ к записям прошедших мероприятий. Записи всех мероприятий появятся в этом блоке

Корпоративное обучение для ваших сотрудников

Отус помогает развивать высокотехнологичные Команды. Почему нам удаётся это делать успешно:
  • Курсы OTUS верифицированы крупными игроками ИТ-рынка и предлагают инструменты и практики, актуальные на данный момент
  • Студенты работают в группах, могут получить консультации не только преподавателей, но и профессионального сообщества
  • OTUS проверяет знания студентов перед стартом обучения и после его завершения
  • Простой и удобный личный кабинет компании, в котором можно видеть статистику по обучению сотрудников
  • Сертификат нашего выпускника за 5 лет стал гарантом качества знаний в обществе
  • OTUS создал в IT более 120 курсов по 7 направлениям, линейка которых расширяется по 40-50 курсов в год

Отзывы

Светлана Лобан

27.11.2019
Спасибо за курс и мотивацию программировать не только на работе, но и после работы :)

Алексей Хитров

02.03.2020
Занятия понравились, почти все проходили интересно. Многое зависит от умения преподавателя вести онлайн лекцию, получалось это не у всех, есть над чем работать. Довольно большой объем знаний вкладывается в каждое занятие и требует дальнейшего самостоятельного изучения, что считаю большим плюсом. По итогу получил много новой теоретической и практической информации. Данный курс не был рассчитан на изучение Swift UI, но благодаря Ексею Пантелееву, руководителю курса, и его стремлению работать с новейшими технологиями, нам были изложены основы, дана возможность проявить себя на курсовой работе, решить возникшие вопросы. Не понравился подход к домашнему заданию, не хватает более грамотного и точного описания, проверки проходят с запозданием. Надеюсь в будущих программах преподаватели это учтут и исправят. Большое спасибо за курс!

Евгений Дробов

02.06.2020
Спасибо за курс, было много интересных тем, получил новые навыки)

Александр Краев

31.08.2020
Курс однозначно в списке рекомендуемых, первый и чуть ли не единственный русскоязычный про современный стэк разработки на SwiftUI, отдельное спасибо Алексею Пантелееву!

Максим Сытый

01.09.2020
Хорошая программа, охватывает много аспектов разработки, быстрое внедрение новых трендов в программу. Очень понравилось работать со SwiftUI.

Sergey Vinogradov

09.09.2020
До обучения я работал уже в компании maddevs.io. Выбрав курс, хотелось изучить SwiftUI, плюс в программе были задания, которые необходимо было делать. Так же было желание найти новую работу именно в России, или получить хотя-бы рекомендацию от Отуса, поскольку это довольно проблематично сделать без гражданства, многие даже прекращали интервью, когда говорил что не гражданин РФ. Было интересно посмотреть как пишут другие люди и с чем сталкиваются, поскольку чаще всего в проекте работал в небольших командах. Понравилось что структурно проходили темы и в самом начале был хороший разбор домашних работ, давали советы как и что можно исправить. Хотелось бы добавить какое-то углубление в некоторых темах и раскрыть их более обширно(такие как Metal, fastlane, CoreML, тестирование). Так же проверять домашние работы не больше чем неделю, поскольку теряется фокус и потом вообще забываешь что ты там хотел сделать или не смог решить. Обучение дало хорошие знания по новой технологии, которую собираюсь внедрять в проекты и довести их до релиза. Так же огромное спасибо Ексею, Константину были интересные лекции и Алексею за отличный код ревью, и поддержке Отуса, помогали, отвечали, на вопросы, консультировали.

Александра Безносова

09.09.2020
До обучения в Otus.ru, работала в в компании сети магазинов одежды, занималась поддержкой небольшого приложения для постоянных клиентов этой сети. Я самостоятельно научилась программировать и создавать приложения для платформы iOS, мое увлечение стало работой, но так складывалось, что я всегда один единственный разработчик в компании, у меня не было команды, а мне хотелось узнать больше и расти как профессионал, книги, блоги - этого мало, я решила пройти онлайн курс «iOS Разработчик. Продвинутый курс» на Otus.ru, ознакомившись с темами занятий, нисколько не сомневалась в своем решении. И очень рада успешному их завершению, в них мне очень понравилось практические уроки, просто и понятно объясняли, казавшиеся ранее сложные темы, проверка домашних заданий, преподаватели всегда советовали верное направление в решении заданий. После окончания курса, я подтянула свой уровнь знаний, в архитектурах мобильных приложений, современных подходах в программировании и технологиях(SwiftUI, SwiftUI 2.0, Combine) и особенностях языка Swift. Теперь у меня есть сертификат, чему очень рада и теперь с гордостью могу называть себя iOS разработчик! И даже успела получить интересное предложение о работе. Благодарю за создание таких курсов, и преподавателей за их труд. Спасибо.

Анастасия Сачкова

01.10.2020
Спасибо преподавателям курса! Было полезно и интересно, конечно были и недочеты, но в совокупности плюсов и минусов, я бы посоветовала прослушать этот курс. Помогает профессионально двигаться дальше.

Александр Хожев

13.04.2021
Один из лучших ios курсов c bleeding-edge подходами/технологиями/стеком в русскоязычном образовательном сегменте, позволил привести в порядок беспорядочно накопленные к моменту записи на него знания. Нагрузка (домашние задания) позволяет совмещать занятия с основной работой (правда лишь благодаря отсутствию дедлайнов на моем потоке), некоторые темы были "scratch-the-surface", но это и неудивительно, они настолько обширны, что сами по себе могут быть самостоятельными курсами. Тем не менее, курс стимулирует к дальнейшему профессиональному развитию, погружению в смежные области и развитию инженерного подхода к решению задач, словом, выполняет свою основную задачу (как заявлено). Рекомендую к приобретению/прослушиванию/посещению.

Николай Бакланов

27.04.2021
Отличный курс, нацеленный на технологию SwiftUI, призывающий к ее использованию и переходу на нее. Оперативная проверка домашних работ, отличный преподавательский состав. Занятия с Ексеем каждый раз мотивировали на то, чтобы взять и начать прямо что-то делать.

Сертификат о прохождении курса

OTUS осуществляет лицензированную образовательную деятельность.
В конце обучения вы получите сертификат OTUS о прохождении курса

После обучения:

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

Частые вопросы

Что, если в середине курса я не смогу продолжать обучение?
У вас есть право одного бесплатного трансфера в другую группу
Обязательно ли защищать выпускной проект?
Для получения сертификата OTUS необходимо сдать проект. Кроме того, проект необязательно защищать перед аудиторией, а можно сдать в чате с преподавателем.
С какого момента я смогу заниматься трудоустройством?
Получить карьерную консультацию вы сможете уже в начале обучения. Остальные опции: помощь с резюме, добавление резюме в нашу базу специалистов и т.д. будут доступны после окончания обучения.
Я могу вернуть деньги?
Да, вы можете сделать возврат средств пропорционально оставшимся месяцам обучения.