Basic IOS development

Что даст вам этот курс
11
0
Курс для людей с опытом программирования от года на любом высокоуровневом языке.

Каждый выпускник курса получит все знания и умения, чтобы устроиться на позицию junior iOS-разработчика.

Минимальные требования при поступлении:

  • Базовые навыки работы в терминале (навигация, редактирование, исполнение команд);

  • Умение пользоваться GIT (создание репозитория, добавление файлов в индекс, pull, push, ветвления);

  • Опыт работы с REST API;

  • Опыт работы с любой СУБД (sqlite, mysql, postgresql), умение писать простые запросы (select, insert, delete, update) или опыт работы с ORM/ActiveRecord;

  • Опыт работы со сторонними библиотеками.

Программа обучения
Модуль 1
Основы языка swift
Модуль 2
UIKit
Модуль 3
Репозитории данных
Модуль 4
Бизнес логика
Модуль 5
Проектная работа
Основы языка swift
Оценить модуль
2
0
Тема 1: Базовые конструкции языка
Playground. Типы данных. Коллекции. Управление потоком. Функции.

Познакомимся со основными типами данных, операторами, коллекциями и операторами управления потоком и функциями
Научимся правильно их использовать.
Узнаем, когда выбирать тот или иной тип данных, коллекцию или оператор
Решим простую задачу fizzbuzz/
Тема 2: Особенности Swift
Optional. Result. Перечисления. Кортежи. Особенности объявления функций. Расширенные возможности операторов if/switch/for.

Познакомимся с ключевыми особенностями языка. Рассмотрим дополнительные типы данных перечисление и кортеж. А так же линтером.

Научимся писать не в swift стиле, а так же как менять стиль в зависимости от задачи. Правильно работать с опциональными типами.
Узнаем как строить контракт функции.

Разработаем простой консольный калькулятор.
Тема 3: Структуры и классы
Структура. Класс. Метод. Свойство. Наследование. Модификаторы доступа. Инициализация. Деинициализация.
Познакомимся со своими типами данных, структурами и классами. Их особенностями и устройством.
Научимся правильно их использовать.
Узнаем когда выбирать структуру, а когда класс.
Тема 4: Модель управления памятью
Стек. Куча. ARC. GC. Цикл удержания.
Научимся использовать стек и кучу.
Узнаем как swift управляет памятью.
Научимся избегать утечек памяти.
Тема 5: Проколы и расширения
Проткол, Расширение, Диспетчерезация, Миксины.
Узнаем о том, как описывать интерфейс типа без реализации и реализацию без типа.
Научимся правильно строить структуру своих типов и добавлять расширенные возможности в стандартные типы.
Тема 6: Generic
Generic классы, функции и протоколы.
Познакомимся с дженериками.
Узнаем о практиках обобщенного программирования в Swift.
Научимся использовать компилятор для проверки наших утверждений на стадии компиляции.
Тема 7: Функциональное программирование
Функторы, монады, map, flatMap, reduce, filter.
Познакомимся с концепцией функционального программирования
Узнаем о основных инструментах функционального программирования
Научимся правильно использовать функциональные инструменты предоставляемый языком.
UIKit
Оценить модуль
0
0
Тема 1: Знакомство с основными компонентами
Xcode. UIApplication. UIWindow. UIView. UIViewController. MVC.
Познакомимся с основными компонентами построения приложений под iOS, средой разработки и инструментами управления ресурсами
Узнаем что из себя представляет iOS приложение. Как происходит его запуск и отображение на экране устройства
Научимся правильно использовать компоненты и создавать приложения
Напишем простой пример "hello world".
Тема 2: UIView
UIView. UIButtom. UIControl. UIResponder. UIControlEvent.
Познакомимся с основой графического интерфейса, классом UIView и его производными
Узнаем, какие возможности предоставляет нам UIKit для отображения информации
Научимся создавать свой UI компоненты
Напишем простой калькулятор
Тема 3: UIViewController
UIViewController. UITabbarController. UINavigationController. UIContainerController переходы.
Познакомимся с классом предназначенным для управления UIView
Узнаем какие виды контроллеров существуют
Научимся строить навигацию в приложении
Напишем приложение с несколькими вкладками.
Тема 4: View Layout
Auto Layout. UIStackView. NSLayoutConstraint. Size Classes. Intrinsic content size.
Познакомимся со средствами размещения элементов интерфейса
Узнаем какие способы позиционирования выбирать под разные задачи
Научимся делать адаптивную верстку
Напишем приложение с формой ввода логина/пароля
Тема 5: UITableView
UITableView. UITableViewCell. UITableViewDataSource. UITableViewDelegate.
Познакомимся с компонентом для отображения таблиц UITableView
Узнаем как правильно отображать разные типы данных в одном списке
Научимся отображать большие списки данных
Напишем каталог городов с поиском.
Тема 6: UICollectionView
UICollectionView. UICollectionViewCell. UICollectionViewDataSource. UICollectionViewDelegate. UICollectionViewLayout.
Познакомимся с компонентом для отображения массивов данных UICollectionView
Узнаем как создавать свои вариант отображения
Научимся отображать любые коллекции данных
Напишем галерею изображений
Тема 7: UIAnimation
UIAnimation. CAAnimation. UIViewPropertyAnimator.
Познакомимся с анимациями
Узнаем о различных видах анимаций
Научимся создавать динамические интерфейсы
Напишем приложение с карточками
Тема 8: UIApplication(Уведомления, фоновое выполенение)
UIAplication. Жизненный цикл приложения. Фоновое выполнение, UIApplicationDelegate.
Подробнее узнаем о сером кардинале нашего приложения UIAplication
Узнаем о жизненном цикле приложения, работе в фоне и других возможностях
Научимся правильно организовывать код AppDelegate
Напишем приложение с защитой от несанкицонированного доступа
Тема 9: UIStoryboard
UIStoryboard. UISegue. Xib.
Познакомимся с графическим редактором интерфейса
Научимся создавать интерфейс без кода
Узнаем область применения StoryBoard
Напишем приложение с несколькими вкладками с использованием StoryBoard.
Тема 10: Паттерны навигации
Router. Coordinator.
Познакомимся с паттернами навигации
Научимся правильно организовывать навигацию в приложении
Добавим координаторы в приложение с несколькими вкладками
Репозитории данных
Оценить модуль
0
0
Тема 1: URLSession
URLSession. URLSessionTask. URLRequest. URLResponse.
Научимся работать с http запросами
Узнаем как отправлять и получать данные на сервер.
Тема 2: Codable
Decodable. Encodable.
Научимся обрабатывать ответ сервера с данными в формате json
Узнаем как правильно преобразовывать данный формат в объекты.
Тема 3: Типы хранилищ
UserDefaults. Keychain. Files. DB.
Познакомимся с основными средствами хранения информации
Научимся правильно выбирать тип хранилища.
Тема 4: Файловая система
NSFileManager
Подробнее узнаем о файловой системе и работе с файлами
Научимся сохранять данный в файлах.
Тема 5: Введение в CoreData
Core Data Stack. NSManagedObjectModel. NSManagedObjectContext. NSPersistentStoreCoordinator.
Узнаем о стандартном ORM от Apple для работе с sqlite
Научимся проектировать модель хранилища, сохранять и получать объекты.
Тема 6: Offline first with CoreData
NSFetchedResultsController.
Узнаем о подходе offlineFirst
Научимся подстраивать интерфейс по данные в базе.
Тема 7: Продвинутые возможности CoreData
NSManagedObjectContext. Query Generations.
Познакомимся с вариантами настройки стека для работы с большими объемами данных, а так же работать с неизменяемой версией хранилища.
Бизнес логика
Оценить модуль
0
0
Тема 1: Внедрение зависимостей
Storyboard. Swinject. Factory.
Познакомимся с одним из основных способов уменьшения связанности
Научимся гибко собирать классы в приложении
Напишем список книг с возможностью добавить отзыв.
Тема 2: Тестирование
XCTest. URLProtocol. GTW. Expectations.
Познакомимся с фреймворком для написания авто-тестов XCTest
Научимся покрывать бизнес-логику авто-тестами
Протестируем приложение списка книг.
Тема 3: Многопоточность - Thread
Thread. DispatchQoS.
Познакомимся с потоками
Научимся выполнять код параллельно
Тема 4: Многопоточность - GCD
Dispatch Queues. Dispatch Groups. DispatchWorkItem. DispatchWorkItemFlags.
Познакомимся с инструментом абстракции от потоков GCD, научимся делить код на задачи и оптимизировать время их выполенения
Тема 5: Многопоточность - Operation
Operation
Познакомимся с инструментом абстракции от потоков Operation, научимся делить код на задачи и оптимизировать время их выполенения.
Проектная работа
Оценить модуль
0
0
Тема 1: Работа над проектам: постановка задач
Оценить занятие
0
0
Тема 2: Консультация по проекту
Оценить занятие
0
0
Тема 3: Защита проектов
Оценить занятие
0
0
Опрос по программе "Basic IOS development"

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

Вопрос №1 из 6
Ваше имя и фамилия
Вопрос №2 из 6
Выберите один вариант ответа
Владеете ли вы каким-либо языком программирования:
Вопрос №3 из 6
Выберите один вариант ответа
Является ли этот курс интересным лично для вас?
оцените от 1 (совсем не интересно) до 5 (круто, интересно, я бы пошел)
Вопрос №4 из 6
Выберите один вариант ответа
Как вы оцениваете актуальность такой программы?
оцените от 1 (категорически устарела) до 5 (современная или даже на хайпе)
Вопрос №5 из 6
Какие дополнительные темы хотели бы изучать в рамках этого курса?
Вопрос №6 из 6
Комментарии и предложения - мы всегда им рады!

Оставьте хотя бы один ответ для участия в опросе