Swift на Linux / 1.1. Установка и использование Swift


Видео



Мои предки улыбаются, глядя на меня, имперцы. А ваши — улыбаются вам?

Солдат Братьев Бури

В этом уроке


Установка

На Apple платформах существует Xcode. Но что же делать при желании использовать Swift-программы на Linux/Unix-системах?

Swift существует и под эти платформы! В данном примере мы загрузим Swift для Ubuntu 16.04 версии 4.0.3, но установка не будет сильно отличаться для других платформ.

Начнём с обновления системных компонент:

sudo apt-get update;
sudo apt-get upgrade;

Это обновит компоненты системы до последних, что слегка снизит шанс ошибок.

Теперь добавим пароль суперпользователю, чтобы упростить наши команды (не самое безопасное действие в финальной среде):

sudo passwd root; #Вводим пароль для суперпользователя
sudo passwd -u root;
su; #Вводим придуманный пароль

Теперь нам нужно установить набор компиляторов clang и библиотеку curl для сетевого взаимодействия:

apt-get install clang curl libicu-dev;

Перейдём в папку /opt:

cd /opt;

Создадим папку для всех будущих версий Swift:

mkdir swift;

Перейдём в эту папку и с помощью библиотеки curl загрузим релиз Swift:

cd swift;
curl https://swift.org/builds/swift-4.0.3-release/ubuntu1604/swift-4.0.3-RELEASE/swift-4.0.3-RELEASE-ubuntu16.04.tar.gz --output swift.tar.gz;

Подождите некоторое время, пока выполняется загрузка.

Последний релиз Вы всегда можете найти здесь

Распакуйте архив со скачанным Swift:

tar xzf swift.tar.gz

Теперь экспортируем путь до утилит Swift, чтобы их можно было использовать через командную строку:

export PATH=/opt/swift/swift-4.0.3-RELEASE-ubuntu16.04/usr/bin:"${PATH}"

Пример сборки

Давайте создадим папку projects, а в ней папку hello_world. А внутри последней файл main.swift

mkdir projects;
mkdir projects/hello_world;
touch projects/hello_world/main.swift;

Перейдём в конечную папку и отредактируем немного код нашего файла:

cd projects/hello_world/;
vim main.swift;

Возможно Вам придётся установить Vim, если это ещё не было сделано командой apt-get install vim.

import Foundation

let greeting = "Hello, world!"

print(greeting)

Для сборки файла нужно воспользоваться командой swiftc:

swiftc main.swift;

И выполним программу:

./main;

В командную строку будет выведено сообщение Hello, world!, как и ожидалось


REPL

На всех платформах Swift содержит REPL, который позволяет в реальном времени управлять кодом:

swift;

Это откроет инерактивную среду. Попробуйте набрать строка за строкой следующий простой код:

var x = 10
x += 5
print(x)
x

Указание простого объекта без функций выведет его содержимое на экран. Для выхода можно воспользоваться командой :quit:

:quit

Можно также исполнить код без сборки отдельного файла командой swift:

swift main.swift;

Простой пример на менеджер пакетов

Xcode включает в себя готовую систему сборки, в которой вся рутинная работа берётся на него. На не-Apple системах для этого используется Package Manager или же менеджер пакетов.

Создадим новый проект для проверки этого менеджера:

cd ..;
mkdir PMExample;
cd PMExample;
swift package init;

Последняя команда инициализирует менеджер пакетов в директории создаст множество файлов.

Создайте в папке Sources файл Human.swift со следующим содержимым:

class Human {

    let name: String

    init(name: String) {
        self.name = name
    }
}
touch Sources/PMExample/Human.swift;
vim Sources/PMExample/Human.swift;

Теперь создайте файл main.swift в папке с кодом и сделайте так, чтобы там создавался объект класса-человек, а затем выводилось его имя

touch Sources/PMExample/main.swift;
vim Sources/PMExample/main.swift;
let human = Human(name: "Slava")
print(human.name)

И последним штрихом измените в файле Package.swift .library на .executable, чтобы вместо библиотеки генерировался исполняемый файл.

vim Package.swift;

Для сборки проекта внутри папки с ним выполните:

swift build;

Теперь можно выполнить команду для запуска программы:

./.build/x86-64-unknown-linux/debug/PMExample;

Для импорта стандартных C-библиотек в рантайм Swift можно использовать Glibc.


Редакторы кода

Много через командную строку не напишешь. Не существует IDE под не-Apple платформы для Swift, но существует несколько более менее хороших редакторов кода.

Один из них Visual Studio Code.

Скачайте deb-архив с программой и скопируйте его в opt.

exit;
cd Downloads;
cp {VisualCodeFileName} /opt;
cd opt;

С помощью таких архивов в Debian-системах можно устанавливать программы с учётом всех зависимостей:

sudo dpkg -i {файл}.deb;
sudo apt-get install -f;

После установки достаточно запустить платформу командой code:

code;

В запустившейся программе нажмите по Extensions:

  1. Там введите Swift
  2. Выберите вариант с наибольшим числом установок (автор Martin Kase)
  3. Щелкните по install
  4. Дождитесь окончания процесс и Вы сможете добавить проект, созданный через терминал и начать его редактировать

Учтите, что это во многом просто редактор кода почти без анализаторов и автодполнения.