31 мая
Professional
5 месяцев
Онлайн
Пн/Ср 20:00 Мск
На профессиональном уровне сможете проектировать сложные UI-компоненты и оптимизировать их производительность, разрабатывать клиент-серверные приложения и оффлайн-режим работы, писать тестируемый unit-тестами код и, конечно, успевать писать тесты.
Для комфортного изучения технологий iOS-разработки необходим MacBook или другой компьютер на macOS.
В этом модуле мы изучим внутренности 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 принципы.
Загрузим в мозг стройную модель 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 (пример по сокетам)
Познакомимся со свежим фреймвоком 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. Разберемся в особенность разработки под watchOS, tvOS, macOS и iPadOS. Будем использовать преимущества SwiftUI для мультиплатформы.
Тема 1: Виджеты, AppClips
Тема 2: watchOS
Тема 3: tvOS
Тема 4: Shortcuts и Siri интеграция с приложением
Научимся внедрять в приложение обученные модели на нейронных сетях. Также разберемся как самому получить модель с помощью AutoML Vision.
Тема 1: CoreML, CreateML, Vision использование обученных моделей нейронных сетей
Тема 2: Обработка видеопотока с помощью CoreML в режиме реального времени c AVFoundation, CoreImage и Metal
Тема 3: ARKit и RealityKit, LiDAR датчик
Разберемся с 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: Защита проектных работ
Эксперты-практики делятся опытом, разбирают кейсы студентов и дают развернутый фидбэк на домашние задания
OTUS осуществляет лицензированную образовательную деятельность.
В конце обучения вы получите сертификат OTUS о прохождении курса
Стоимость в рассрочку