Основы Swift / 1.1. Что такое Swift




Как читать эту книгу
  • Блоки, выделенные синим цветом являются основным текстом и обязательны к изучению.
  • Блоки, выделенные голубым цветом, необязательны для изначального изучения, однако могут пригодиться Вам в дальнейшем для лучшего понимания языка и программирования.
  • Блок о терминах так же выделены голубым и описывает разные подходы к использованию англоязычных терминов в русском варианте. Это актуально, так не существует почти никаких соглашений о русскоязычных аналогов терминов.
  • Лёгкий жёлтый цвет есть заметка. Служит для пояснения важного материала, однако такого, который выбивается из общей канвы повествования.
  • Примеры читаются следующим образом - 13.1\1, где число до \ есть номер главы, после - номер примера. Если пример является составным и разбит на несколько частей, то после последнего число также ставится слэш и пишется номер подпримера.
Что такое Swift?
Swift - это фантастический способ писать программное обеспечение независимо от его назначения: телефоны, стационарные устройства, сервера или что-либо ещё, что может выполнить код. Это безопасный, быстрый и интерактивный язык программирования, объединяющий всё лучшее в одном современном языке, мудро продуманном на основе широкой инженерной культуры Apple и различных участников из open-source сообщества. Компилятор оптимизирован для производительности, и язык адаптирован для разработки без компромисса в чём-либо.

Swift дружественен для новых разработчиков. Это индустриальный язык программирования, обладающий выразительностью и экспрессией скриптовых языков программирования. Написание кода на Swift в playground позволяет Вам экспериментировать с кодом и немедленно видеть результат без лишних затрат времени на сборку и запуск приложения.

Swift - это новый язык программирования для разработки приложений под iOS, macOS, watchOS, tvOS, а также Linux. Несмотря на его новизну, многие его части покажутся Вам знакомыми по опыту разработки на C, Objective-C и C++, если Вы уже знакомы с ними. Многое в Swift также отсылает нас к выразительности скриптовых языков программирования наподобие javaScript, PHP и так далее.
Классификация языков программирования и место Swift в ней
В множестве языков программирования Swift можно отнести к следующим группам:
1. Swift является нативным языком программирования: код после приведения к готовому виду исполняется непосредственно самим устройством. Ненативные языки программирования как правило называют виртуальными: между ними и аппаратным обеспечением находится виртуальная машина, которая использует свой язык и преобразует его в язык, понятный оборудованию. Первый подход обладает намного большей производительностью, второй же - большей универсальностью, перенося портирование кода с разработчиков приложения на разработчиков виртуальной машины. На протяжении почти всего программирования Вы будете сталкиваться с балансировкой между универсальностью и производительностью.
2. Swift является компилируемым языком программирования, что означает, что код, который Вы пишите на понятном людям языке, преобразуется в код на языке, понятном машине. Этот процесс называется компиляцией или сборкой кода. Альтернативой являются интерпретируемые языки, которые выполняются непосредственно из своего языка. В первом случае затраты времени идут на сборку приложения единовременно, во втором - при каждом запуске. Однако изменение приложения в первом случае потребует времени на повторную сборку, которое будет зависеть от размера изменённой части. Тем не менее статистически первый подход более продуктивен.
3. Swift можно условно отнести к группе C-подобных языков, самыми известными представителями которых является C, C++, Objective-C и C#. С первыми трема Swift может быть использован одновременно.
Стандартная библиотека, фреймворки, библиотеки и стандарты языка
Данное руководство покрывает собой язык Swift стандарта 4.0, а также большую часть его стандартной библиотеки.

Сам язык включает в себя его грамматическую структуру и поведение.
Стандартная библиотека содержит базовые типы и базовые функции.
В настоящий момент именно связка языка и стандартной библиотеки присутствует в одном и том же виде на всех платформах.
Для чего библиотека описана отдельно от языка? Это сделано для того, чтобы осуществить описание библиотеки силами самого языка, не отделяя базовую часть от той, что может быть создана самими программистами.

Фреймворки и библиотеки - это некий набор готового функционала, который Вы можете использовать в своих программах, не рассматривая детали его реализации. Одним из основных правил качественной разработки является способность использовать то, что уже создано и разработано. Если Вы неопытный программист, то, скорее всего, Вы не сможете самостоятельно создать более качественный (по производительности, архитектуре и другим параметрам) вариант уже готовых решений, которые разрабатывались много лет большими командами опытных специалистов.

Под библиотекой понимается набор каких-то функциональных единиц, которые Вы свободно можете интегрировать в свои проекты, тогда как фреймворк накладывает некие ограничения на архитектуру или же предоставляет её каркас.

Apple уже создала для разработки приложений такие потрясающие наборы фреймворков как Cocoa и Cocoa Touch. В отличие от многих других языков данные библиотеки содержат очень многое для создания приложений: построение интерфейса пользователя (UIKit), работа с базами данных (Core Data), управление вызовами (CallKit), Foundation для базовых утилит и тому подобное. Они так же содержат полезные расширения стандартных объектов.