Курс Программирование на Swift

Существует очень немного ресурсов онлайн по новому языку программирования, и мы с гордостью заявляем, что это САМЫЙ ПЕРВЫЙ курс по программированию на Swift. Во время уроков, вы узнаете как настроить Swift локально, основы языка и как он сопоставим с другими распространенными языками (включая Objective-C), и вы сможете начать несколько новых проектов.
Подписываясь на данный курс, вы будете на месяцы впереди других разработчиков, которые пытаются использовать новый язык программирования Swift, и которым придется искать информацию в пятисотстраничном руководстве от Apple.

Возможная должность: помощник разработчика, младший разработчик (junior)

Ориентировочная зарплата: 12 000 – 16 000 грн.

5

недель

40

академ часов

3800

гривен

Преимущества языка программирования Swift:

  • Владеть твердыми знаниями базового языка JavaScript
  • язык Swift устраняет проблемы, скопившиеся за 20 лет в языке Objective-C. Он призван, в первую очередь, упростить ситуацию тех разработчиков приложений, которым крайне неудобно работать с громоздкими, сложными конструкциями Objective-C.
  • Язык Swift откроет новую эру для начинающих разработчиков, которые теперь помимо разработки маленьких игр на JavaScript, так же смогут выбирать и этот язык.
  • Язык являет собой неплохой симбиоз C/C++/Objective C/Java. Swift — чистый и современный. В нем используется LLVM для компиляции нативного кода плюс все Cocoa API адаптированы;
  • Swift более легкий и удобочитаемый, чем Objective-C;
  • Swift дает большие возможности по упрощению кода. То, что разработчик ранее писал с помощью verbose (слишком многословных) конструкций, сейчас можно заменить несколькими символами. Этот язык создавался в строжайшем секрете с 2010 года.

 

Требования:
Наличие у слушателей собственных компьютеров MacBook с установленным XCode 6 и iOS 7, а так же активный аккаунт iOS Developer Program.

 

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

1. Введение в программирование на языке Swift.

  • Установка и запуск Xcode 6. Знакомство с Playground.
  • Программа «Hello, world!».
  • Встроенные типы данных: целочисленные (знаковые/беззнаковые), вещественные, логический. Литералы встроенных типов.
  • Переменные и константы.
  • Операторы. Приоритет операторов. Операции отношения. Логические операции.
  • Тернарный оператор.
  • Оператор условного перехода.
  • Оператор множественного выбора. Опреаторы break и fallthrough.
  • Циклы с предусловием и постусловием. Цикл со счетчиком.
2. Строки. Коллекции. Опциональные переменные.
  • Строки и символы. Строковые литералы.
  • Специальные символы. Юникод.
  • Строка как объект. Инициализация пустой строки.
  • Работа с отдельными символами. Цикл for-in.
  • Операторы для работы со строками. Конкатенация строк.
  • Интерполяция строк. Сравнение строк.
  • Кортежи. Инициализация кортежа.
  • Опциональные переменные.
  • Массивы. Литерал массива. Операторы и функции для работы с массивами.
  • Создание и инициализация массива.
  • Словарь. Литерал словаря. Операторы и функции для работы со словарями.
  • Создание и инициализация словаря.
3. Элементы функционального программирования. Функции и замыкания. Параметры функций.
  • Определение и вызов функций. Параметры функций и возвращаемые значения.
  • Именование аргументов функции. Внешние имена аргументов функции.
  • Значения аргументов по умолчанию.
  • Функции с переменным числом аргументов.
  • Констнтные и переменные аргументы функции. In-Out параметры.
  • Функция как тип. Функции в качестве аргумента функции. Функция в качестве возвращаемого значения.
  • Вложенные функции.
  • Замыкания. Синтаксис создания замыкания. Автоматический вывод типов. Краткая запись лямбда-функции.
3.Объектно ориентированное программирование. Перечисления. Классы и структуры. Value Types и Reference Types.
  • Перечисления. Объявление перечисления. Использование перечислений в операторе множественного выбора.
  • Связные значения. Исходные значения перечисления.
  • Классы и структуры. Сходства и различия.
  • Объявления классов и структур. Создание объектов. Автоматические конструкторы.
  • Доступ к элементам структуры.
  • Различия Value Types и Reference Types. Классы как Reference Types. Структуры как Value Types.
  • Особенности типов Array и Dictionary.
5.Свойства и методы. Индексы.
  • Виды свойств. Хранимые и вычисляемые свойства классов.
  • Аксессоры и мутаторы для свойства классов. Наблюдатели.
  • Глобальные и локальные переменные. Свойства типов.
  • Методы. Локальные и внешние имена параметров метода. Модифицирующие методы.
  • Индексы. Параметры индекса.
6.Наследование. Перегрузка методов. Конструкторы и деструкторы. Процесс инициализация объекта.
  • Базовые классы и наследование.
  • Перегрузка методов, свойств и индексов.
  • Конструкторы и инициализаторы. Значения свойств по умолчанию.
  • Делегирование инициализации.
  • Номинальные и дополнительные инициализаторы.
  • Процесс инициализации объекта. Две фазы инициализации.
  • Перегрузка инциализаторов.
  • Деструкторы и деинициализаторы.
7.Работа с ARC. Приведение типов.
  • Что такое ARC и как оно работает.
  • Типы ссылок: strong, weak.
  • Strong Reference Cycles. Ленивая инициализация.
  • Работа с памятью в замыканиях.
  • Приведение типов. Проверка типов.
  • Специальные типы Any и AnyObject.
  • Вложенные типы.
8. Расширения. Протоколы. Обобщенные классы.
  • Расширения. Инициализаторы, методы и индексы в расширениях.
  • Протокол. Декларация методов.
  • Протоколы в качестве типов.
  • Паттерн Делегат.
  • Наследование протоколов. Композиция.
  • Опциональные методы протокола.
  • Обобщенные классы. Обощенные функции.
9.Структура проекта на Swift. Совместное использование Swift и Objective-C.
  • Структура простого проекта на Swift в Xcode.
  • Модули и импорт.
  • Переход от Objective-C к Swift. Общие типы. Селекторы.
  • Наследование от Objective-C класса.
  • Работа с Outlets и Actions.
  • Работа с библиотекой Cocoa. NSNumber, NSArray, NSDictionary.
  • Паттерны проектирования Cocoa: Delegate, Target-Action, Key-Value Observing.
  • Совместное использование Swift и C. Работа с указателями.