[Перевод] Язык программирования Swift на Raspberry Pi

84d21eb3972821ecd1c3474bd8903c38.png
Raspberry PI 3 Model B+

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

Официальный язык программирования «малинки» — Python. Хотя Python достаточно прост в использовании, ему не хватает типобезопасности, плюс он потребляет много памяти. Swift, напротив, имеет ARC-управление памятью и почти в 8 раз быстрее Python. Ну, а поскольку объем ОЗУ и вычислительные возможности процессора Raspberry Pi ограничены, использование языка вроде Swift позволяет максимально использовать потенциал железа этого мини-ПК.

Установка ОС


Прежде чем устанавливать Swift, нужно выбрать ОС. Для этого можно воспользоваться одним из вариантов, предлагаемых сторонними разработчиками. Наиболее обычный выбор — Raspbian, официальная ОС от Raspberry Pi. Есть несколько возможностей установить Raspbian на SD-карту; в нашем случае мы воспользуемся balenaEtcher. Вот что нужно делать:
89d67560ea6b8661981e2689e5f1c708.png
Шаг второй: форматируем SD-карту в MS-DOS (FAT)

673d24903792011e5978e9ac08f1e266.png
Шаг третий: используем balenaEtcher для заливки Raspbian на карту

Рекомендуем бесплатный интенсив по машинному обучению для начинающих:
Пишем первую модель машинного обучения за три дня — 2–4 сентября. Бесплатный интенсив, который позволяет разобраться в том, что такое Machine Learning и научиться работать с открытыми данными из интернета. Также учимся предсказывать курс доллара при помощи самостоятельно разработанной модели.

Настройка Raspberry Pi


Полпути уже пройдено! Теперь у нас есть SD-карта с ОС, которую мы будем использовать, но операционную систему еще предстоит установить. Для этого есть две возможности:

  • Использовать подключенные к устройству монитор, клавиатуру и мышь.
  • Сделать все с другого ПК по SSH или с использованием кабеля USB Console.


Если это ваш первый опыт работы с Pi, рекомендую опцию №1. После того как SD-карта с Raspbian OS вставлена в Pi, подключите HDMI-кабель, мышь, клавиатуру и кабель питания.

Pi должна загрузиться при включении. Поздравляю! Теперь вы можете потратить немного времени на изучение своего десктопа и его возможностей.

05854b5d159e194004126ee5f3e8dfc9.jpg

Установка Swift


Для того чтобы установить Swift на «малинку», нужно подключить ее к интернету (при помощи Ethernet или WiFi, в зависимости от модели платы). Как только интернет подключен, можно начинать установку Swift.

Ее можно выполнить двумя способами. Первый — самостоятельное создание билда Swift, второй — использовать уже скомпилированные бинарники. Я настойчиво рекомендую второй способ, поскольку первый потребует нескольких дней подготовки. Второй способ появился благодаря группе Swift-ARM. Ей принадлежит репо, с которого можно установить Swift, используя apt (Advanced Package Tool).

Это инструмент командной строки, нечто вроде App Store для приложений и пакетов для устройств с Linux. Работу с apt начинаем, введя в терминале apt-get. Далее нужно указать ряд команд, которые уточнят выполняемую задачу. В нашем случае требуется установить Swift 5.0.2. Соответствующие пакеты можно найти здесь.

Что ж, начнем. Теперь, когда мы знаем, что будем устанавливать Swift при помощи apt, нужно добавить репо в список репозиториев.

Команда добавления/установки репо swift-arm выглядит так:

curl -s | sudo bash

96498318a69f85f8244d3a2f56ec90b7.png

Далее устанавливаем Swift из добавленного репо:

sudo apt-get install swift5=5.0.2-v0.4

428114ea31fff8e0f62d2b15612b13f0.png

Вот и все! Теперь Swift установлен на нашей «малинке».

Создание тестового проекта

На данный момент Swift REPL не работает, но все остальное — да. Для теста давайте создадим Swift-пакет при помощи Swift Package Manager.

Сначала создаем директорию с именем MyFirstProject.

mkdir MyFirstProject

cdeac1c886ee577a8a1cbbc3b60f6602.png

Далее изменяем текущую рабочую директорию на свежесозданную MyFirstProject.

cd MyFirstProject

88f289e3a4d97d985b50d0aa9c20ac26.png

Создаем новый исполняемый пакет Swift.

swift package init --type=executable

61269715e8e5c18359eb82fb07f1ce65.png

Эти три строки создают пустой пакет Swift, который называется MyFirstProject. Для его запуска вбиваем команду swift run.

42b05fed1e8bfe1ba630875e00e426b7.png

Как только компилирование завершено, мы увидим фразу «Hello, world!» в командной строке.

После того как мы создали первую программу на Pi, давайте кое что изменим. В директории MyFirstProject внесем изменения в файл main.swift. В нем содержится код, исполняющийся, когда мы запускаем пакет командой swift run.

Меняем директорию на Sources/MyFirstProject.

cd Sources/MyFirstProject

ca3f8f4d887e5bbc13c9dead7a735c13.png

Редактируем файл main.swift, используя встроенный nano-редактор.

nano main.swift

01ba449171a0ed5250ee6a359b491fa9.png

Как только редактор открыт, вы сможете изменять код своей программы. Давайте заменим содержимое файла main.swift вот этим:

bf15481e811ce56bf975bc705134bca2.png

print («Hello, Marc!»)

Разумеется, вы можете вставить свое имя. Для сохранения изменений нужно выполнить такие действия:

  • CTRL+X для сохранения файла.
  • Подтверждаем изменения нажатием «Y».
  • Подтверждаем внесение изменения в файл main.swift нажатием Enter.


96051d7c92d2d4feb32de7ec24a7d1f2.png

073fc28b2bfab20f858c5c3886bb1ad5.png

Все изменения внесены, теперь самое время перезапустить программу.

swift run

2f5cd30424d9064bbedc8e9bd84a2c1a.png

Поздравляю! Как только код скомпилирован, терминал должен показать измененную строку.

Теперь, когда Swift установлен, вам есть чем заняться. Так, для управления железом, например, светодиодами, сервоприводами, реле, вы можете воспользоваться библиотекой «железных» проектов для плат Linux/ARM, которая называется SwiftyGPIO.

Удачи в экспериментах со Swift на Raspberry Pi!

© Habrahabr.ru