5.14. Первая программа на Swift
Первая программа на Swift
Платформенные ограничения и возможности
Swift изначально разрабатывался как часть экосистемы Apple, поэтому его нативная поддержка реализована в операционной системе macOS. Для полноценной разработки под iOS, iPadOS и другие платформы Apple требуется именно macOS, поскольку симуляторы устройств, отладчики и компиляторы тесно интегрированы в систему.
Однако благодаря открытому исходному коду Swift доступен и на других платформах:
- Linux: официально поддерживается. Существуют сборки Swift для Ubuntu, CentOS и других дистрибутивов. На Linux можно компилировать и запускать консольные приложения, серверные сервисы, но нельзя собирать приложения под iOS или macOS.
- Windows: поддержка экспериментальная. Компания Apple совместно с сообществом предоставляет инструменты для сборки Swift-приложений на Windows, но функциональность ограничена. Разработка мобильных приложений под Apple через Windows невозможна.
Для новичка, желающего изучить Swift как язык, а не как инструмент для создания iOS-приложений, возможна работа на Linux. Но если цель — создавать приложения для iPhone, iPad или Mac, потребуется компьютер с macOS.
Необходимое программное обеспечение
На macOS
Основной инструмент разработки — Xcode. Это бесплатная интегрированная среда разработки (IDE), доступная в Mac App Store. Xcode включает:
- Компилятор Swift (swiftc)
- Отладчик LLDB
- Симуляторы устройств Apple
- Интерфейсный редактор SwiftUI и Interface Builder
- Инструменты управления проектами и зависимостями
Установка:
- Откройте App Store на Mac.
- Найдите Xcode.
- Нажмите «Получить» и дождитесь завершения загрузки и установки.
- После установки запустите Xcode один раз, чтобы принять лицензионное соглашение и завершить настройку компонентов.
Xcode автоматически устанавливает командную строку разработчика, включая swift, swiftc и другие утилиты.
На Linux
Swift можно установить через официальные репозитуары. Пример для Ubuntu 22.04:
wget -qO- https://swift.org/keys/all-keys.asc | gpg --import -
sudo apt-get install -y clang libicu-dev
wget https://download.swift.org/swift-5.9-release/ubuntu2204/swift-5.9-RELEASE/swift-5.9-RELEASE-ubuntu22.04.tar.gz
tar xzf swift-5.9-RELEASE-ubuntu22.04.tar.gz
sudo mv swift-5.9-RELEASE-ubuntu22.04 /usr/share/swift
echo 'export PATH=/usr/share/swift/usr/bin:"$PATH"' >> ~/.bashrc
source ~/.bashrc
После этого команда swift --version покажет установленную версию.
На Linux нет графической IDE, аналогичной Xcode, но можно использовать Visual Studio Code с расширением Swift for Visual Studio Code или SourceKit-LSP для подсветки синтаксиса, автодополнения и навигации по коду.
На Windows
Поддержка Swift на Windows находится в стадии активной разработки. Официальный установщик доступен на GitHub-репозитории Swift. Установка требует наличия Visual Studio 2022 и компонентов C++. Однако эта конфигурация подходит только для экспериментов и обучения основам языка. Разработка приложений под Apple через Windows невозможна.
Выбор среды разработки
- Xcode — рекомендуемый выбор для всех, кто работает на macOS и планирует создавать приложения под Apple. Это полный набор инструментов, оптимизированный под экосистему.
- Visual Studio Code — легковесная альтернатива для Linux и Windows. Требует ручной настройки, но достаточна для изучения синтаксиса и написания консольных программ.
- Swift REPL — интерактивная оболочка, доступная через терминал (
swift). Позволяет выполнять код построчно, но не подходит для создания полноценных программ.
Создание первой программы
Вариант 1: Через Xcode (macOS)
- Запустите Xcode.
- На стартовом экране выберите Create a new Xcode project.
- В разделе macOS выберите шаблон App и нажмите Next.
- Укажите:
- Product Name:
HelloWorld - Interface:
SwiftUIилиStoryboard(для простоты можно выбрать SwiftUI) - Language:
Swift - Снимите галочки с Core Data, Tests и других дополнительных опций.
- Product Name:
- Нажмите Next, выберите папку для сохранения проекта и нажмите Create.
Xcode создаст шаблон проекта. Чтобы вывести «Hello, World!» в консоль:
- Откройте файл
ContentView.swift(если используется SwiftUI). - Найдите структуру
ContentView. - Добавьте в метод
bodyследующую строку:
Text("Hello, World!")
Это выведет текст в окне приложения.
Если же цель — просто напечатать сообщение в терминал (без графического интерфейса):
- При создании проекта выберите macOS → Command Line Tool.
- Укажите имя и язык Swift.
- Xcode создаст файл
main.swift. - Замените содержимое на:
print("Hello, World!")
- Нажмите кнопку Run (треугольник в верхнем левом углу).
- Внизу откроется панель Console, где появится надпись
Hello, World!.
Вариант 2: Через терминал (macOS, Linux, Windows)
- Создайте папку для проекта:
mkdir hello-swift
cd hello-swift
- Создайте файл
main.swift:
touch main.swift
- Откройте его в любом текстовом редакторе и введите:
print("Hello, World!")
-
Сохраните файл.
-
Выполните программу:
swift main.swift
Компилятор Swift автоматически обработает файл и выведет результат в терминал.
Альтернативно, можно скомпилировать программу в исполняемый файл:
swiftc main.swift -o hello
./hello
Это создаст бинарный файл hello, который можно запускать без вызова интерпретатора.
Структура программы
Простейшая программа на Swift состоит из одной строки:
print("Hello, World!")
Функция print выводит переданный текст в стандартный поток вывода (обычно терминал или консоль отладчика). Swift не требует объявления точки входа вроде main() в явном виде, если файл называется main.swift. В этом случае система автоматически запускает код с первой строки.
Если файл имеет другое имя или используется в составе проекта, точка входа может быть определена явно:
@main
struct HelloWorldApp {
static func main() {
print("Hello, World!")
}
}
Такой подход применяется в современных проектах SwiftUI, где аннотация @main указывает компилятору на стартовую структуру.
Запуск и отладка
- В Xcode нажатие Run компилирует проект и запускает его в симуляторе (для iOS) или в отдельном окне (для macOS).
- В терминале команда
swiftзапускает скрипт в режиме интерпретации, что удобно для быстрых тестов. - Компиляция через
swiftcсоздаёт нативный исполняемый файл, который работает быстрее и не зависит от наличия Swift-среды выполнения.
При возникновении ошибок компилятор выводит понятные сообщения с указанием строки и описанием проблемы. Например, пропущенная кавычка или неверный тип данных будут немедленно обнаружены благодаря строгой системе типов Swift.