При разработке iOS-приложений с использованием Swift часто возникает необходимость использовать сторонние библиотеки в качестве зависимостей, чтобы избежать повторного написания кода, который уже создан и опубликован другими разработчиками. Swift Package Manager (SwiftPM) — это инструмент командной строки для сборки, тестирования и управления зависимостями Swift-проектов.
Мы создадим очень простую консольную программу на Swift, которая будет парсить JSON с использованием популярного фреймворка SwiftyJSON, чтобы научиться работать со SwiftPM.
Для использования Swift Package Manager на OS X вам понадобится Xcode 8.0 или выше и Swift 3.0 или выше. Swift 3 также доступен в Linux.
Чтобы узнать, какая версия Swift у вас установлена, введите следующую команду в терминале:
Откройте терминал и создайте новый каталог, где будет находиться ваш проект. Затем создайте Swift-пакет в этом каталоге с помощью следующей команды. Эта команда назовет ваш Swift-пакет в честь текущего каталога. Для справки, я назвал свой `SPMTest`:
Самая важная часть создания Swift-пакета — это файл `Package.swift`.
В файле `Package.swift` есть два важных элемента, которые вы можете захотеть отредактировать:
— Элемент `name`. Он указывает название проекта и название исполняемого файла, который будет сгенерирован при сборке проекта.
— Список `dependencies`. Он указывает все подпроекты, от которых зависит ваше приложение. Каждый элемент в этом массиве состоит из `.Package` с URL репозитория и версией.
Откройте `Package.swift` и добавьте SwiftyJSON в качестве зависимости:
Теперь загрузите зависимости с помощью следующей команды:
Все зависимости загружаются в каталог `Packages`, который SPM создаст автоматически.
Теперь, когда SwiftyJSON установлен, мы можем использовать его как фреймворк. Создайте файл с именем `main.swift` в каталоге `Sources`. SwiftPM использует этот файл, чтобы решить, что делать при запуске нашей программы.
Добавьте базовый код для парсинга JSON в `Sources/main.swift`:
Теперь соберите проект, выполнив следующую команду из корневого каталога вашего проекта:
SPM сгенерирует исполняемый файл для этого проекта. Из корневого каталога вашего проекта запустите этот исполняемый файл и надейтесь, что JSON будет распарсен корректно:
Вы также можете использовать SwiftPM для генерации Xcode-проекта, выполнив:
После этого откройте ваш новый сгенерированный Xcode-проект:
Это позволит вам использовать все преимущества редактирования Swift в Xcode, такие как отличная автодополнение.
Несмотря на то, что он новый, радует, что у Swift теперь есть официальный менеджер пакетов.
Если вы беспокоитесь о его готовности для продакшн-приложений, возможно, вам стоит пока использовать CocoaPods или Carthage, пока SwiftPM не получит более широкое распространение. Если вы хотите увидеть, какие замечательные пакеты можно использовать со SwiftPM, посетите веб-сайт Swift Modules.
С нетерпением жду, что вы создадите. Не стесняйтесь делиться своим опытом или задавать вопросы.
— Email: sagnew@twilio.com
— Twitter: @Sagnewshreds
— Github: Sagnew
— Twitch (стриминг живого кода): Sagnewshreds