ZIP (pdf-epub-djvu) mirror ZIP (pdf-epub-djvu)
Часть I. Подготовка к разработке Swift-приложений 20
Глава 1.Подготовка к разработке в macOS 21
1.1.Вам необходим компьютер Mac 21
1.2.Зарегистрируйтесь как Арр1е-разработчик 21
1.3.Установите Xcode 23
1.4.Введение в Xcode 24
1.5.Интерфейс playground-проекта 28
1.6.Возможности playground-проекта 30
Глава 2.Подготовка к разработке в Linux 34
Глава 3.Подготовка к разработке в Windows 38
Часть II.Базовые возможности Swift 40
Глава 4.Отправная точка 41
4.1.Инициализация и изменение значения 42
4.2.Переменные и константы 44
4 Оглавление
4.3.Правила объявления переменных и констант 47
4.4.Глобальные и локальные объекты 48
4.5.Вывод текстовой информации 50
4.6.Комментарии 52
4.7.Точка с запятой 56
5.Типы данных и операции с ними 57
5.1.Виды определения типа данных 57
5.2.Числовые типы данных 60
5.3.Текстовые типы данных 74
5.4.Логические значения 81
5.5.Псевдонимы типов 84
5.6.Операторы сравнения 86
5.7.Операторы диапазона 87
Часть III.Основные средства Swift 88
Глава 6.Кортежи 89
6.1.Основные сведения о кортежах 89
6.2.Взаимодействие с элементами кортежа 91
Глава 7.Опциональные типы данных 98
7.1.Опционалы 98
7.2.Извлечение опционального значения 100
Глава 8.Операторы условий 103
8.1.Утверждения 103
8.2.Оператор условия if 105
8.3.Оператор раннего выхода guard 117
8.4.Оператор ветвления switch 117
Глава 9.Последовательности и коллекции 128
9.1.Последовательности 128
9.2.Коллекции 129
9.4.Наборы 142
9.5.Словари 150
Глава 10.Циклы 158
10.1.Оператор повторения for 158
10.2.Операторы повторения while и repeat while 163
10.3.Управление циклами 165
Глава 11.Функции 169
11.1.Объявление функций 169
11.2.Аргументы функции и возвращаемое значение 172
11.3.Возможности функций 181
11.4.Безымянные функции 187
Глава 12.Замыкания 189
12.1.Функции как замыкания 189
12.2.Замыкающие выражения 192
12 3 Неявное возвращение значения 193
12.4.Сокращенные имена параметров 194
12.5.Переменные-замыкания 195
12.6.Метод сортировки массивов 197
12.7.Каррирование функций 198
12 8 Захват переменных 200
12.9.Замыкания — это тип-ссылка 202
12.10.Автозамыкания 203
11.12.Выходящие замыкания 206
Глава 13.Вспомогательные функциональные элементы 208
13.1 Метод map(_:) 208
13.2.Метод mapValues(_:) 211
13.3.Метод filter(_:) 211
13.4.Метод reduce(_:_:) 212
13.5.Метод flatMap(_:) 213
13.6.Метод zip(_:_:) 214
Глава 14.Ленивые вычисления 215
14.1.Понятие ленивых вычислений 215
14.2.Замыкания в ленивых вычислениях 216
14.3.Свойство lazy 217
Часть IV.Нетривиальные возможности Swift 218
Глава 15.ООП как фундамент 220
15.1.Экземпляры 220
15.2.Пространства имен 222
15.3.API Design Guidelines 223
Глава 16.Перечисления 225
16.1.Синтаксис перечислений 225
16.2.Ассоциированные параметры 228
16.3.Вложенные перечисления 230
16.4.Оператор switch для перечислений 231
16.5.Связанные значения членов перечисления 232
16.6.Свойства в перечислениях 234
16.7.Методы в перечислениях 236
16.8.Оператор self 236
16.9.Рекурсивные перечисления 237
Глава 17.Структуры 241
17.1.Синтаксис объявления структур 241
17.2.Свойства в структурах 242
17.3.Структура как пространство имен 244
17.4.Собственные инициализаторы 245
17.5.Методы в структурах 247
Глава 18.Классы 249
18.1.Синтаксис классов 250
18.2.Свойства классов 250
18.3.Методы классов 253
18.4.Инициализаторы классов 254
18.5.Вложенные типы 255
Глава 19.Свойства 257
19.1.Типы свойств 257
19.2.Контроль получения и установки значений 260
19.3.Свойства типа 264
Глава 20.Сабскрипты 266
20.1.Назначение сабскриптов 266
20.2.Синтаксис сабскриптов 267
Глава 21.Наследование 272
21.1.Синтаксис наследования 272
21.2.Переопределение наследуемых элементов 274
21.3.Превентивный модификатор final 277
21.4.Подмена экземпляров классов 278
21 5 Приведение типов 278
Глава 22.Псевдонимы Any и AnyObject 281
22.1.Псевдоним Any 281
22.2.Псевдоним AnyObject 283
Глава 23.Инициализаторы и деинициализаторы 284
23.1.Инициализаторы 284
23.2.Деинициализаторы 291
Глава 24.Удаление экземпляров и ARC 293
24.1.Уничтожение экземпляров 293
24.2.Утечки памяти 295
24.3.Автоматический подсчет ссылок 298
Глава 25.Опциональные цепочки 301
25.1.Доступ к свойствам через опциональные цепочки 301
25.2.Установка значений через опциональные цепочки 303
25.3.Доступ к методам через опциональные цепочки 304
Глава 26.Расширения 305
26.1.Вычисляемые свойства в расширениях 306
26.2.Инициализаторы в расширениях 307
26.3.Методы в расширениях 308
26.4.Сабскрипты в расширениях 309
Глава 27.Протоколы 310
27.1.Требуемые свойства 311
27.2.Требуемые методы 312
27.3.Требуемые инициализаторы 313
27.4.Протокол в качестве типа данных 314
27.5.Расширение и протоколы 314
27.6.Наследование протоколов 315
27.7.Классовые протоколы 316
27.8.Композиция протоколов 316
Глава 28.Разработка первого приложения 318
28.1.Важность работы с документацией 318
28.2.Модули 325
28.3.Разграничение доступа 329
28.4.Разработка интерактивного приложения 332
Глава 29.Универсальные шаблоны 346
29.1.Универсальные функции 346
29.2.Универсальные типы 348
29.3.Ограничения типа 350
29.4.Расширения универсального типа 351
29.5.Связанные типы 351
Глава 30.Обработка ошибок 354
30.1.Выбрасывание ошибок 354
30.2.Обработка ошибок 355
30.3.Отложенные действия по очистке 360
Глава 31.Нетривиальное использование операторов 361
31.1.Операторные функции 361
31.2.Пользовательские операторы 364
Часть V.Основы разработки приложений 365
Глава 32.Новое знакомство с Xcode 366
32.1.Создание Xcode-проекта 366
32.2.Интерфейс Xcode-проекта 370
Глава 33.Первое приложение для macOS 374
33.1.Подготовка к разработке приложения 374
33.2.Запуск приложения 378
33.3.Код приложения «Сумма двух чисел» 382
Глава 34.Консольная игра «Отгадай число» 388
Глава 35.Введение в мобильную разработку 395
35.1.Создание проекта MyName 395
35.2.Interface Builder, Storyboard и View Controller 397
35.3.Разработка простейшего UI 404
35.4.Запуск приложения в эмуляторе 406
35.5.View Controller сцены и класс UlViewController 409
35.6.Доступ UI к коду Определитель типа @IBAction 412
35.7.Отображение всплывающего окна.Класс UIAlertController 414
35.8.Изменение атрибутов кнопки 421
35.9.Доступ кода к UI.Определитель типа @IBOutlet 425
Глава 36.Паттерны проектирования при разработке в Xcode 432
36.1.Паттерн MVC.Фреймворк Cocoa Touch 432
36.2.Паттерн Singleton.Класс UIApplication 434
36.3.Паттерн Delegation.Класс UIApplicationDelegate 435
Приложение.Изменения и нововведения Swift 4 438
Ассистент миграции 438
Строки 438
Тип String 438
Тип Substring 439
Адаптация под Unicode 9 439
Наборы и словари 439
Инициализация на основе последовательностей 440
Обработка дубликатов ключей 440
Фильтрация 440
Маппинг словарей 441
Значение по умолчанию для элемента словаря 441
Группировка элементов словаря 441
Протокол Codable 442
Многострочные строковые литералы 443
Keypath — ссылка на свойство 443
Односторонние диапазоны 444
Отличная книга