Библиотека программиста.

Василий Усов «Swift.Основы разработки приложений под iOS и macOS» Питер, 2018 год, 448 стр., 4-е издание, ISBN: 978-5-4461-0776-6; (9,40 мб.pdf+0,3 мб.epub+7,23 мб.djvu)

Swift — это быстрый, современный, безопасный и удобный язык программирования.С его помощью процесс создания программ становится очень гибким и продуктивным, так как Swift вобрал в себя лучшее из таких языков, как C, Objective-C и Java.Swift на редкость удобен для изучения, восприятия и чтения кода.Язык Swift молод, он растет, развивается и изменяется.Но основные подходы к программированию и разработке уже сформировались, и в новом, четвертом издании книги особое внимание уделяется решению конкретных задач.

Текст полностью переработан так, чтобы любой, интересующийся языком Swift, мог найти здесь и основы, и необходимую информацию по разработке приложений.Все коды, использованные в книге соответствуют Swift версии не ниже 4.1, iOS версии не ниже 11 и Xcode версии не ниже 9.Теперь вы не только изучите язык Swift, но и получите начальные сведения о принципах разработки полноценных приложений.Мир Swift постоянно меняется, людей со значительным багажом знаний и опыта за плечами еще просто не существует в силу возраста языка, поэтому вы можете стать одним из первых специалистов.

Оглавление книги

Содержание.

Часть 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

СкачатьPDF

Похожая литература