Урок 1.2 Введение в Swift и Песочница

Урок 1.2 Введение в Swift и Песочница

На этом уроке вы узнаете о происхождении Swift и некоторых его основных синтаксических элементах.


Чему Ты Научишься

  • Почему Swift - отличный язык для изучения
  • Как использовать Xcode playgrounds для запуска Swift-кода

Словарь


Связанные Ресурсы

Руководство по языку программирования Swift: О Swift на русском языке

Немного истории

На Всемирной конференции разработчиков Apple 2014 Apple представила Swift как современный язык для написания приложений для iOS и macOS. Теперь у Apple есть новые платформы, включая watchOS и tvOS, которые также используют Swift в качестве основного языка программирования.
С 1990-х годов большинство разработчиков писали приложения для платформ Apple на Objective-C, языке, построенном поверх языка программирования C. Objective-C более 30 лет, а C - более 40 лет. Оба языка хорошо послужили сообществу разработчиков программного обеспечения. Они не исчезнут в обозримом будущем.
Однако Objective-C может быть сложным в освоении. Поскольку в последние годы технологии развивались так быстро, Apple увидела возможность создать более современный язык, который было бы легче выучить и легче читать, писать и поддерживать.
По мере изучения Swift вы можете увидеть влияние на него наследия C и Objective-C.

Современный язык

Что такое современный язык? Это тот, который безопасен, быстр и выразителен. Когда Apple разрабатывала Swift, эти три основные цели лежали в основе каждого решения. Изучая концепции программирования в Swift, вы поймете, как каждое решение указывает на безопасность, скорость и ясность.

Некоторые из особенностей, которые делают Swift современным языком, включают:

  • Чистый синтаксис, который делает код читаемым и более удобным для работы.
  • Опционалы, новый способ выражения, когда значение может отсутствовать.
  • Вывод типов, который ускоряет разработку и позволяет компилятору помогать выявлять общие проблемы.
  • Безопасность типов, которая обеспечивает код, менее подверженный аварийным сбоям программы.
  • Автоматический подсчет ссылок (ARC) для управления памятью, который автоматически решает некоторые из более сложных технических задач нативного программирования.
  • Кортежи и множественные возвращаемые значения, которые позволяют небольшим блокам кода выполнять больше задач.
  • Дженерики, которые помогают разработчикам писать код, применимый в различных сценариях.
  • Быстрая и лаконичная итерация по коллекциям, делающая Swift быстрым языком.
  • Структуры, поддерживающие методы, расширения и протоколы, которые позволяют Swift оптимизировать использование памяти и скорость, обеспечивая при этом гибкость для разработчиков.
  • Функции map, filter, reduce и другие функциональные программные паттерны, которые упрощают код и оптимизируют выполнение общих действий, ранее требовавших нескольких строк кода.
  • Мощная обработка ошибок, которая помогает разработчику писать меньше ошибок и лучше обрабатывать сценарии, которые могли бы вызвать сбои приложений или непредсказуемую работу.

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

Безопасный язык

Ряд уже упомянутых особенностей делает Swift безопасным языком, помогая вам писать код, который с меньшей вероятностью приведет к сбою вашего приложения. Компьютерные программы очень буквальны, и поэтому код, написанный для одного, может не справляться с другим. Безопасность типов заставляет вас явно указывать «тип» каждого объекта, который вы создаете, манипулируете и назначаете, и позволяет писать только тот код, который данный объект может обработать. Это предотвращает написание кода, который может привести к сбою, если он не предназначен для работы с «типами» объектов, на которые вы ссылаетесь. Вывод типов аналогичным образом позволяет компилятору выводить тип объекта, экономя ваше время и снова обеспечивая, что компилятор может применять правильные правила относительно того, какие операции и функции могут быть выполнены с каждым типом.

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

Открытый исходный код

В декабре 2015 года Apple выпустила язык Swift и вспомогательные ресурсы на GitHub в качестве проекта с открытым исходным кодом. Открытый исходный код может означать многое. Самый важный момент, который нужно понять, - это то, что язык с открытым исходным кодом разрабатывается открыто, при участии и поддержке сообщества. Каждый желающий может внести свой вклад или просто следовать за нами.

Открытая разработка означает, что Swift развивается и совершенствуется. Со временем синтаксис может измениться, и будет добавлена поддержка для большего количества платформ, в том числе для обеспечения более быстрой технологии в Linux. Теперь, когда вы изучаете Swift, вы можете быть уверены, что ваши знания будут становиться все более и более ценными по мере дальнейшего совершенствования языка и расширения его использования на платформах Apple и за ее пределами.

Для получения дополнительной информации о том, как следовать или участвовать в создании языка Swift, посетите домашнюю страницу проекта по адресу Swift.org.

Привет, Мир

Когда вы начинаете с нового языка программирования, это освященная веками традиция - создавать приложение "Hello, world!", одну из самых простых программ, которые вы можете написать на любом языке. Все, что делает эта программа, - это выводит на экран "Hello, world!".

Код Swift записывается в виде обычных текстовых файлов с расширением .swift. Каждая строка в файле представляет собой инструкцию, а программа состоит из одной или нескольких инструкций. Это инструкции, которые вы хотите, чтобы ваше приложение запускалось. Как правило, код выполняется, начиная с верхней части файла, и продвигается к нижней части файла.

Как вы узнаете, вы можете контролировать, выполняются ли определенные разделы кода с помощью инструкций потока управления (if, else), сколько раз они выполняются с использованием циклов (for-in, while) и как использовать данные, которые могут быть переданы в разные инструкции.

Некоторые программы состоят из миллионов инструкций, разбросанных по тысячам и тысячам файлов. Компилятор делает код исполняемым, объединяя все файлы в программу.

Но пока давайте не будем усложнять.

В Swift файл по умолчанию называется main.swift. Любой Swift-код, включенный в main.swift, будет выполняться сверху вниз.

Итак, как бы вы написали приложение “Hello, world!” на Swift?

 

print(”Hello, world!”)

 

Как вы могли догадаться из приведенного выше кода, print() - это функция (меньшая единица кода, выполняющая определенную задачу), которая принимает немного текста, называемый строкой (String), и выводит его на консоль.

Консоль - это средство ввода текста и отображения для системного администрирования. Десятилетия назад все компьютерные взаимодействия осуществлялись через консоли или интерфейсы командной строки. Сегодня у нас есть графические пользовательские интерфейсы для большинства задач, но разработчики по-прежнему используют консоль для выполнения многих задач программирования или администрирования. Фактически, почти в каждой используемой вами системе есть скрытая консоль, доступ к которой вы можете получить даже при использовании графического интерфейса.

Терминал

Как вы получаете доступ к консоли? macOS поставляется с консольным приложением Terminal, а Swift поставляется с инструментом REPL, который расшифровывается как Read, Eval, Print Loop. REPL позволяет вводить простые команды, оценивать их и выводить результат.

Используйте Swift REPL в консоли, чтобы написать свою первую программу “Hello, world!”.

  1. Откройте приложение терминала на вашем компьютере Mac. Вы можете выполнить поиск “Терминал” в Spotlight или найти приложение в папке system Applications/Utilities.
  2. Войдите в Swift REPL, набрав swift и нажав Return.
  3. Введите команду print(”Hello, world!”) и нажмите Return, чтобы выполнить ее.

Обратите внимание, что “Hello, world!” было напечатано на экране прямо под вашей командой print. Если вы совершенно новичок в программировании, возможно, это первый раз, когда вы когда-либо предоставляли компьютеру письменные инструкции для его выполнения. Поздравляю!

Теперь вы можете выйти из Swift REPL и терминала, выполнив следующие действия:

  1. Введите :quit и нажмите Return, чтобы выйти из Swift REPL.
  2. Выйдите из терминала.

Песочница (Playground)

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

Работа в песочницах предпочтительнее работы в REPL по многим причинам. Для начала, они делают написание кода Swift веселым и простым. Используя более привычный интерфейс, вы можете ввести строку кода, и результаты сразу появятся в боковой панели. Если ваш код выполняется в течение некоторого времени, вы можете наблюдать за его прогрессом на временной шкале.

Песочницы также могут быть чрезвычайно полезными для разработчиков Swift. Они позволяют легко управлять большим количеством кода в одном месте и видеть несколько результатов в боковой панели результатов. Разработчики часто используют песочницы для прототипирования своего кода Swift, а затем перемещают его в проект Xcode после тестирования. На техническом уровне песочница представляет собой файл-оболочку вокруг основного файла main.swift. Каждый раз, когда вы редактируете код, песочница запускает результаты. Вы можете включать дополнительные файлы и ресурсы, что вы и сделаете в будущей деятельности.


Чтобы просмотреть результаты, напечатанные вашим кодом на Swift, вы можете открыть область отладки консоли в песочнице.   1  
Помните, что каждый раз, когда вы редактируете код Swift, код выполняется сверху вниз. Для каждого выражения результаты отображаются в правой части.   


Чтобы просмотреть результаты, которые “богаче”, чем обычный текст, который вы видите на боковой панели или в области отладки, вы можете использовать инструмент быстрого просмотра Quick Look.


Чтобы просмотреть более подробную информацию в строке,   1   вы можете использовать кнопку "Показать результаты"   


Теперь приступим к созданию вашего первого "Hello, world!" с использованием песочницы Xcode.

  1. Откройте Xcode.
  2. Создайте новый файл playground, выбрав в строке меню File > New > Playground.
  3. Выберите платформу iOS и шаблон Blank.
  4. Назовите свою песочницу “Hello, world!” и сохраните её в папку с ресурсами курса.

Вы заметили, что playground по умолчанию поставляется с инструкцией import и переменной var greeting = “Hello, playground”? Откройте боковую панель результатов (если она еще не отображается) и обратите внимание, что строковое значение печатается на боковой панели.

Инструкция import UIKit позволяет вам использовать что-либо из фреймворка UIKit. Это станет более важным по мере того, как вы будете проходить лабораторные работы в этом курсе. Обычно вы должны оставлять инструкцию import во всех своих playground.

5. Ранее, используя Swift REPL, вы написали print("Hello, world!"), чтобы вывести "Hello, world!" на консоль. Попробуйте сделать это в песочнице. Начните новую строку и введите print("Hello, world!"). Теперь вы должны увидеть "Hello, world!" в боковой панели результатов и в отладочной консоли.

Что происходит в этой песочнице? Код var greeting = "Hello, playground" в шаблоне файла песочницы создал переменную с именем greeting и присвоил ей строку текста, содержащую "Hello, playground". Поскольку значение greeting является строкой (String), вы можете передать это значение в функцию print, так же как вы сделали с "Hello, world!".

6. Обновите ваш код, чтобы вывести переменную greeting вместо текста "Hello, world!", заменив "Hello, world!" на greeting.

Пауза на мгновение и подумайте, почему это работает. Функция print принимает параметр типа String и выводит его на консоль. Оба этих примера работают, потому что "Hello, world!" является строкой, и greeting — это переменная, которая содержит строку.

В следующем уроке вы узнаете больше о строках и переменных.

 

 

 


Отрывок из книги
Develop in Swift Fundamentals
Apple Education
https://books.apple.com/ru/book/develop-in-swift-fundamentals/id1581182804

Information

Apple, the Apple logo, Apple Books, Apple TV, Apple Watch, Cocoa, Cocoa Touch, Finder, Handoff, HealthKit, iPad, iPad Pro, iPhone, iPod touch, Keynote, Mac, macOS, Numbers, Objective-C, Pages, Photo Booth, Safari, Siri, Spotlight, Swift, tvOS, watchOS, and Xcode are trademarks of Apple Inc., registered in the U.S. and other countries. App Store and iBooks Store are service marks of Apple Inc., registered in the U.S. and other countries. ​
The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by Apple is under license. ​
IOS is a trademark or registered trademark of Cisco in the U.S. and other countries and is used under license. ​
Other product and company names mentioned herein may be trademarks of their respective companies.