iOS Developer. Professional

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

Professional

Онлайн

Перейдите на новый уровень разработки

  1. Изучите актуальный стек технологий для современного iOS-разработчика: SwiftUI, Protocol Oriented Programming, Actor и async/await, CoreML, ARKit и RealityKit и др.
  2. Создадите свой аналог Pinterest, TikTok, Room Planner, VSCO, Strava или Canva в рамках разработки индивидуальной проектной работы, которая пополнит ваше портфолио
  3. Общение напрямую с преподавателями на лекциях и в Telegram-чате, обсуждение кейсов, задач, которые стоят перед вами

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

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

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

  • знание языка Swift (базовые типы, циклы, ветвление) или другого современного языка программирования (Kotlin, C#, TypeScript, Rust);
  • опыт в разработке под iOS или Android от 1 года;
  • общее представление о Foundation (или Glibc);
  • опыт работы в Xсode или другим современным IDE;
  • навыки работы с Git.
пройди тест - получи демо-ролик

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

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

Дополнительно на курсе вы научитесь

  • применять GCD, OperationQueue, Actor и async/await, решать проблемы многозадачности;
  • работать с протоколами 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);
  • использовать в приложениях CoreML, Metal, ARKit и RealityKit и LiDAR датчик;
  • синхронизировать данные через Bluetooth и интегрировать управление приложением с помощью SiriKit.

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

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

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

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

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

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

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

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

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


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

Перспективы


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

Портфолио


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

Партнеры

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

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

Формат обучения
Интерактивные вебинары

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

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

Общайтесь с преподавателями голосом на вебинарах и в Telegram-чате

Программа

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: Swift Runtime, компилятор LLVM, продвинутая отладка с помощью LLDB, скриптинг

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

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

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

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

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

Тема 1: Передача данных, Transferable протокол, Bluetooth

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

Тема 3: Проблемы многозадачности, GCD(libdispatch), OperationQueue

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

Тема 5: 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

Тема 4: Shortcuts и Siri интеграция с приложением

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

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

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

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

Тема 3: ARKit и RealityKit, LiDAR датчик

Мультиплатформенная разработка: перенос на 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» из небольших и средних программ, где вы бы могли себя проявить.

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

Открытый вебинар
Как правильно организовать навигацию с помощью Deep Links и Universal Links в SwiftUI?
Открытый вебинар
Как создавать приложения с помощью обновленного SDK для кросс-платформенной разработки Kotlin Multiplatform?
Оставьте заявку, чтобы получить доступ ко всем записям прошедших мероприятий. Записи всех мероприятий появятся в этом блоке

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

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

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

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

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

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

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

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