1. Введение в программирование на языке Swift.
- Установка и запуск Xcode 7. Знакомство с Playground.
- Программа «Hello, world!».
- Встроенные типы данных: целочисленные (знаковые/беззнаковые), вещественные, логический. Литералы встроенных типов.
- Переменные и константы.
- Операторы. Приоритет операторов. Операции отношения. Логические операции.
- Тернарный оператор.
- Оператор условного перехода.
- Оператор множественного выбора. Опреаторы break и fallthrough.
- Циклы с предусловием и постусловием. Цикл со счетчиком.
2. Строки. Коллекции. Опциональные переменные.
- Строки и символы. Строковые литералы.
- Специальные символы. Юникод.
- Строка как объект. Инициализация пустой строки.
- Работа с отдельными символами. Цикл for-in.
- Операторы для работы со строками. Конкатенация строк.
- Интерполяция строк. Сравнение строк.
- Кортежи. Инициализация кортежа.
- Опциональные переменные.
- Массивы. Литерал массива. Операторы и функции для работы с массивами.
- Создание и инициализация массива.
- Словарь. Литерал словаря. Операторы и функции для работы со словарями.
- Создание и инициализация словаря.
3. Элементы функционального программирования. Функции и замыкания. Параметры функций.
- Определение и вызов функций. Параметры функций и возвращаемые значения.
- Именование аргументов функции. Внешние имена аргументов функции.
- Значения аргументов по умолчанию.
- Функции с переменным числом аргументов.
- Констнтные и переменные аргументы функции. In-Out параметры.
- Функция как тип. Функции в качестве аргумента функции. Функция в качестве возвращаемого значения.
- Вложенные функции.
- Замыкания. Синтаксис создания замыкания. Автоматический вывод типов. Краткая запись лямбда-функции.
4. Объектно ориентированное программирование. Перечисления. Классы и структуры. 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. Работа с указателями.
10. Финальный тест по курсу.