Middle iOS Developer

Вся сила и мощь Swift 5

Middle iOS Developer
Цена
50000
5 месяцев5 месяцев
СертификатСертификат
РусскийРусский
Otus

Описание:

 Этот курс подойдет для разработчиков, которые:

– имеют опыт программирования на другой платформе и желают полноценно освоить iOS;
– уже являются iOS-разработчиками и хотят подтянуть свой технический скилл, получить грамотное и целостное понимание iOS-платформы и языка Swift, стать «пуленепробиваемыми» на технических собеседованиях;
– желают научиться решать сложные и хардкорные задачи с уровнем качества топовых приложений.

Особенности курса

Всё обучение построено исключительно на задачах из практики разработки приложений в production.

Вы создадите сложный UI, используя знания, которые не найти в статьях в интернете. Изучите вопрос смешения декларативной и императивной парадигм и того, что может дать карринг. Выстроите архитектуру под конкретное приложение: MVVM, MVCS или SOA.

- Улучшите навыки использования GCD и научитесь решать проблемы многозадачности
- Приручите SequenceTypе и научитесь быстро решать задачи с помощью структур данных и Generic Type
- Освоите Associated Types и техники Type Erasure
- Научитесь различным способам хранения данных: Core Data, Realm, Keychain, Cache.
- Сможете применять Dependency injection (DI) и модуляризации приложений для более комфортной командной разработки и покрытия тестами 

По окончании курса вы будете:

– уметь проектировать сложные UI-компоненты и оптимизировать их производительность;
– делать эффективную многозадачность в iOS-приложении;
– понимать, как не раздувать проект лишними библиотеками и максимально «выжимать» iOS SDK;
– уметь проектировать клиент-серверное приложение и оффлайн-режим работы;
– проектировать тестируемый unit-тестами код и, конечно, успевать писать тесты;
– на практике прочувствует плюсы и минусы известных методологий, подходов и парадигм, таких как Protocol Oriented Programming (POP), ООП, Reactive Programming (Rx). 

Программа курса:

Эффективный UIKit и CoreGraphics

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

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

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

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

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

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

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

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

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

Целесообразный Rx

Узнаем где нужно, а где не нужно использовать реактивный подход. Научимся программировать на нем, и поймем почему c Rx можно разрабатывать в разы быстрее. 

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

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

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

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