Постер курса

OTUS

iOS Developer. Professional

  • Продвинутый уровень
  • Наставник: Есть
  • Сертификат: Есть
  • Формат: Online
  • Рассрочка: Нет
  • Язык: Русский
  • Осталось мест: Неограничено
Записаться

iOS Developer. Professional

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


Для кого
Программа создана специально для 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-тестами код и, конечно, успевать писать тесты.

 Наши партнеры Certiport предоставляют скидку 10% на сдачу сертификационного экзамена App Development with Swift (Level1) всем выпускникам курса!

 

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


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

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


Всё обучение проходит онлайн: вебинары, общение с преподавателями и вашей группой в слаке курса, сдача домашних работ и получение обратной связи от преподавателя. Вебинары идут дважды в неделю по 1,5 часа. Все вебинары сохраняются и в записи в вашем личном кабинете. Домашнее задание выдается в среднем раз в 2 недели, а его выполнение занимает от 3 до 5 часов. Мы рекомендуем выполнять самостоятельную работу, так как это поможет качественно освоить все изучаемые технологии на практике с поддержкой и обратной связью преподавателей-экспертов.

Возникающие вопросы по материалам лекций, домашним заданиям и по выпускному проекту можно задавать преподавателям в Slack или во время вебинаров. Курс длится 5 месяцев, финальный месяц отводится для выполнения проектной работы, «досдачи» домашних заданий и вопросов преподавателям. Выполнение проектной работы помогает усвоению практических навыков, а тема проекта отдельно выносится в сертификат. Во время работы над проектом студенты получают консультации и обратную связь от преподавателей в Slack группы и на проектных занятиях.
Программа обучения
SwiftUI и основы Combine
  • Тема 1. Проектируем UI декларативно с SwiftUI. В чем отличия UIKit и SwiftUI
  • Тема 2. SwiftUI List, List с кастомным лейаутом, Hosting ViewControllers
  • Тема 3. Использование NavigationView, TabView. Создание собственного стека Навигации
  • Тема 4. Создание кастомных Shape, SwiftUI Drawing and Animation API
  • Тема 5. Отображение структурированных данных, List, пейджинг, кастомные компоненты на UIViewRepresentable
Современная архитектура мобильных приложений
  • Тема 6. Необычная система типов Swift, структуры данных, Generics
  • Тема 7. Связывание разных частей приложения Observing, Signals, Callbacks. PATs (Protocol with Associated Types)
  • Тема 8. Protocol Oriented Programming (POP), SOA, модуляризация, архитектурные Rx паттерны: Flux/Redux
  • Тема 9. MVx, VIP, анализ архитектурных паттернов. SOLID, GRASP, Coupling/Cohesion принципы.
Foundation без сторонних фреймвоков и Swift 5 Standard Library
  • Тема 10. Sequences и коллекции, асимптотический анализ: O(1), O(N), O(N*log(N)), O(n^2)
  • Тема 11. Использование всей мощи String: StringInterpolation, Expressible. Региональные форматы.
  • Тема 12. Ассоциативные типы, Type Erasure, «сахарные» типы данных, диспетчеризация вызовов в Swift 5
  • Тема 13. Компилятор LLVM, AST, создание собственных операторов
Многозадачность
  • Тема 14. Проблемы многозадачности и способы их решения, GCD
  • Тема 15. Внутренности GCD(libdispatch), OperationQueue
  • Тема 16. RunLoop & POSIX Threads, Инструменты синхронизации, Lock, Mutex
Networking и хранение данных
  • Тема 17. Новый Network-фреймвок, URLSession, Codable
  • Тема 18. Socket.io, WebSocket и другие сокеты для чатов и мгновенных обновлений
  • Тема 19. SQLite, способы кеширования, Files, Сравнение CoreData и Realm
  • Тема 20. Безопасность: OAuth 2.0, Keychain и обфускация API ключей, SSL Pinning
Создание приложений для Apple Watch, TV, Mac
  • Тема 21. watchOS
  • Тема 22. tvOS
  • Тема 23. Кросс-платформенный код для iOS/iPadOS, watchOS, macOS, tvOS
CoreML и Vision, нейронные сети и машинное обучение
  • Тема 24. CoreML, CreateML, TensorFlow использование обученных моделей нейронных сетей
  • Тема 25. CoreML: получение моделей с помощью AutoML Vision и использование их на устройстве
Мультиплатформенная разработка: перенос на Android, Vulkan/Metal
  • Тема 26. Мультиплатформа для Rich Media: Metal и Vulkan, разработки игр, Video/Image процессинг
  • Тема 27. Jetpack Compose
  • Тема 28. Одновременная реализация фич на iOS + Android. Необходимый tool-set
Организация разработки
  • Тема 29. Тестирование кода XCTest, UITest, fastlane и CI
  • Тема 30. Git-flow, TBD, автоматизизация workflow
  • Тема 31. Как правильно написать резюме и развивать hard-skills
Проектная работа
  • Тема 32. Написание приложения с нуля
  • Тема 33. Консультация по проектам и домашним заданиям
  • Тема 34. Защита проектных работ
Что нужно знать?
  • Знание языка Swift (базовые типы, циклы, ветвление); – опыт в разработке под IOS от 1 года; – общее представление о Foundation (или Glibc); – опыт работы в Xсode; – навыки работы с Git
Знания и навыки, которые приобретете
  • Заберете с собой полный комплект обучающих материалов: видеозаписи всех вебинаров и презентации к занятиям
  • Получите сертификат о прохождении курса
  • Получите приглашение пройти собеседование в компаниях-партнерах (эту возможность получают самые успешные студенты)
  • Сохраните пример разработанного приложения
Партнеры

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

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

    iOS Team Lead, Утконос

    Работает программистом с 2002 года, суммарный опыт программирования — 17 лет. Имеет большой опыт разработки на С/С++, C#, Java, JS, Swift.Принял участие более чем в десяти крупных и сложных проектах в ведущих IT-компаниях страны (игры, мессенджеры, финтех и офисные приложения), таких как "Тинькофф Банк", Мail.ru, "Новые Облачные Технологии".Преподает iOS/Swift 4 года. Выступает на iOS-митапах. Знает, что программирование развивает мозг, поэтому планирует заниматься разработкой всю жизнь. Свободное время посвящает geek-арт-фотографии и майнингу криптовалют. Руководитель программы

  • Анна Жаркова

    Ведущий мобильный разработчик компании «Usetech»

    Занимается разработкой iOS и Android приложений как нативных (Swift/Objective-C, Kotlin/Java), так и кроссплатформенных (Xamarin iOS/Android и Xamarin Forms). Разрабатывает архитектуру мобильных приложений для обеих платформ, управляет командой направления. Ведет младших разработчиков (менторство). Среди ее проектов приложения для банков, служб занятости, приложения для транспортных компаний, вело- и каршеринга. Также разрабатывает приложения справочные и программ лояльности. В свободное время изучает иностранные языки (китайский и немецкий). Увлекается живописью. Преподаватель

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

    Сейчас занимается разработкой IOS-приложения для крупной транспортной компании России.Профессиональный путь был извилист: программировала для электроники, около 10 лет была PHP-разработчиком, в последнее время посвятила всю себя iOS разработке. Как IOS-разработчик разрабатывала различные приложения от электронной библии до приложения для банков. Преподаватель

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

    Работаю iOS разработчиком в ритейл-компании. До прихода в iOS занимался разработкой программного обеспечения.На текущий момент занимаюсь развитием и переводом приложения на SwiftUI.Принимал участие в реализации крупных коммерческих и маленьких некоммерческих проектов.Испытываю особую любовь к приложениям на AppleTV после реализации одного из крупнейших Российских онлайн сервисов. Преподаватель

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

    iOS-разработчик в BestDoctor

    Закончил математико-механический факультет Уральского Государственного Университета.Последние 4 года занимаюсь iOS в банках (Сбер, Альфа-Банк) и страховых. На первое место всегда ставлю удобство работы пользователя в приложении, поэтому особое внимание всегда обращаю на UX и узкие места, которые люблю оптимизировать. Пользователь не должен страдать. В последнее время люблю ковыряться в исходниках Swift и делать для себя удивительные открытия.iOS разработку и Swift невозможно не полюбить благодаря их удобству и открытости; и я готов делиться своим опытом с людьми, осознанно выбирающими платформу iOS для своего развития. Преподаватель

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

    Компания ISS Art.

    Увлекся программированием еще со школы, потому что хотел делать игры. Первое время после университета писал игры на языке Actionscript, Flash. В мобильном программировании есть опыт во всех направлениях : iOS, Android. Занимался разработкой нативных приложений, есть опыт работы с Kotlin-Multiplatform и Flutter. Писал приложения для проигрывания музыки, а также работал с библиотекой OpenCV для реализации функций компьютерного зрения.Любит программировать, изучать новые технологии и пробовать применять их на практике. Преподаватель