Мои предки улыбаются, глядя на меня, имперцы. А ваши — улыбаются вам?
На 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!
, как и ожидалось
На всех платформах 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
:
Swift
install
Учтите, что это во многом просто редактор кода почти без анализаторов и автодполнения.