Начало работы с CocoaPods для управления зависимостями в Swift и iOS

Автор: | 04.08.2026

При разработке iOS-приложений на Swift часто используются сторонние библиотеки. CocoaPods — отличный инструмент для управления зависимостями библиотек в проектах Xcode.

Давайте создадим приложение, которое будет отображать последнюю фотографию, сделанную на Марсе, используя API NASA с Alamofire для отправки HTTP-запросов и SwiftyJSON для упрощения работы с JSON.

###

Установка зависимостей с помощью CocoaPods

Начнем с создания проекта Xcode типа Single View Application под названием `PicturesFromMars`. Выберите опцию Universal для устройства и заполните остальные поля по своему усмотрению.

Чтобы установить зависимости, сначала нужно установить CocoaPods. Для этого откройте терминал и введите следующую команду:

CocoaPods использует файл `Podfile`, расположенный в той же директории, что и проект Xcode, чтобы определить, какие библиотеки нужно установить. Создать его можно, введя в терминале из директории проекта следующую команду:

`pod init`

Эта команда сгенерирует для нас Podfile, но мы также можем создать его вручную, добавляя нужные зависимости.

Три зависимости, которые мы используем: Alamofire для получения URL изображения с Марса, SwiftyJSON для парсинга ответа и AlamofireImage для загрузки изображения по URL.

Вот пример Podfile для нашего проекта. Скопируйте и вставьте это в ваш Podfile:

Обратите внимание, что можно также ссылаться на конкретные git-репозитории, как мы сделали с SwiftyJSON. Строка `use_frameworks!` важна при написании кода на Swift.

Теперь для установки всего необходимого выполните в терминале следующую команду:

Здесь я впервые запутался при использовании CocoaPods. CocoaPods создает новый Xcode Workspace, чтобы связать все фреймворки за вас. Для продолжения работы с проектом вам нужно использовать `PicturesFromMars.xcworkspace` вместо обычного проекта Xcode.

Теперь, когда у вас открыт новый Xcode Workspace, перейдите к файлу `ViewController.swift` в папке PicturesFromMars -> PicturesFromMars и попробуйте импортировать библиотеки, чтобы проверить, все ли работает:

Вы можете проверить корректность сборки, нажав «Command-B».

Прежде чем мы сможем загружать изображения с Марса, нам понадобится UIImageView. Перейдите в `main.storyboard` и добавьте UIImageView в ваш ViewController, как показано на этом GIF:

Теперь установите ограничения так, чтобы UIImageView занимал весь экран. Нажмите на иконку «pin» и в верхних четырех полях введите 0, затем нажмите на каждое из направляющих полей. Также обновите фреймы, как показано на этом GIF:

У нас есть UIImageView, но нет способа управлять им. Создайте `outlet` для него в `ViewController.swift` под названием `marsPhotoImageView`.

Это можно сделать несколькими способами, но я обычно делаю это, открыв «Assistant Editor» с одним экраном, на котором открыт `Main.storyboard`, а на другом — `ViewController.swift`. Удерживая клавишу «Control», щелкните на UIImageView в `main.storyboard` и перетащите линию в `ViewController.swift`. Вот еще один GIF, демонстрирующий, как это сделать:

Приложение будет получать фотографию с Марса, сделанную в последний «земной день», из API NASA для марсохода Curiosity и загружать это изображение в наш UIImageView.

Изображения обычно становятся доступными не сразу, поэтому давайте возьмем фотографии пятидневной давности для надежности. Нам понадобится функция, которая генерирует строку, совместимую с этим API. В `ViewController.swift` добавьте эту новую функцию:

Теперь, когда это сделано, мы можем отправить запрос к API марсохода, получить URL изображения и загрузить его в `marsPhotoImageView`.

Alamofire и SwiftyJSON установлены и импортированы в наш код. Все, что нам нужно сделать сейчас, — это отправить GET-запрос с помощью Alamofire, чтобы получить URL изображения, который мы будем использовать для загрузки изображения в свойство image нашего UIImageView.

Замените ваш метод `viewDidLoad` следующим кодом:

Существует множество потрясающих API, к которым вы теперь имеете доступ, используя CocoaPods для управления зависимостями. У Twilio тоже есть замечательные API, если вы хотите добавить видеосвязь или чат на основе интернета в ваше iOS-приложение.

Жду с нетерпением, чтобы увидеть, что вы создадите. Не стесняйтесь обращаться и делиться своим опытом или задавать любые вопросы.

— Email: sagnew@twilio.com

— Twitter: @Sagnewshreds

— Github: Sagnew

— Twitch (стримы живого кодинга): Sagnewshreds