CocоaPods — мощное средство в руках Objective-C разработчика

в 9:51, , рубрики: cocoapods, dependencies, ios development, opensource, Блог компании Luxoft, разработка под iOS, метки: , , ,

CocoaPods — это мощное и одновременно изящное средство управления зависимостями Cocoa-библиотек, которые разработчики используют в своих iOS и MacOS X проектах. Как обычно для Cocoa-статей мы сфокусируемся именно на iOS разработке.

CocоaPods — мощное средство в руках Objective C разработчика


iOS-разработчики любит использовать наработки других разработчиков (3rd party разработчиков). И как правило, библиотеки поставляются с исходным кодом. И обычно мы добавляем исходный код библиотек в наш проект, однажды взяв его из репозитория разработчиков. У такого подхода есть несколько недостатков:

  • Иногда бывает сложно уследить за версиями библиотек и их связями между собой
  • Нет одного общего места, где можно просмотреть список всех доступных библиотек. Безусловно, github — одно из крупных пристанищ opensource-проектов, но не единственное
  • Необходимо всегда помнить про то, что исходных код таких библиотек нужно обновлять. (отчасти проблему решили бы средства наподобие git submodules)
  • Когда вы скачиваете исходники и добавляете в свой проект часто возникает соблазн изменить код библиотеки локально, что в будущем создать головную боль при обновлении библиотеки.

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

С CocoaPods создать проект, использующий сторонние наработки, намного проще. И так, приступим.

Начинаем

Согласно официальному сайту, CocoaPods — это лучшее средство по управлению зависимостями библиотек в Objective-C проектах.

Вместо скачивания кода из репозитория библиотеки и копирования в папку вашего проекта мы можем предоставить возможность CocoaPods сделать все за нас.

Например, нам необходимо сделать приложение, которые будет общаться с RESTfull API какого-нибудь сервиса, используя JSON.

Наиболее популярная библиотека для работы с HTTP-запросами — это AFNetworking (с тех пор, как ASIHTTPRequest перестала поддерживаться).

Для начала нам необходимо установить CocoaPods. CocoaPods — это Ruby проект, и к нашему счастью интерпретатор Ruby идет в стандартную комплектацию MacOS. Ruby — это единственная зависимость CocoaPods, и сперва нам необходимо обновить список пакетов, в терминале выполнив команду:
CocоaPods — мощное средство в руках Objective C разработчика

Возможно, для корректной работы нам сперва необходимо будет обновить или установить Command Line Tools for XCode. Сделать это можно, зайдя по XCode > Preferences > Downloads > Components.

После того, как список пакетов обновлен, мы можем установить CocoaPods:

sudo gem install cocoapods &&
pod setup

CocоaPods — мощное средство в руках Objective C разработчика
CocoaPods установлен.

Hello World

Создаем новый почти пустой проект File > New > Project… > Single View Applciation, для примера:
CocоaPods — мощное средство в руках Objective C разработчика
CocоaPods — мощное средство в руках Objective C разработчика

Добавляем первую зависимость

Ну вот и он — момент истины. Добавляем нашу первую зависимость в проект.

В терминале переходим в папку проекта и выполняем следующее:
1) Создает Pod-файл
CocоaPods — мощное средство в руках Objective C разработчика
2) Добавляем библиотеку
CocоaPods — мощное средство в руках Objective C разработчика

Как можно увидеть, формат файла завиcимостей довольно простой. Мы добавили строку с AFNetworking и указали, что нас интересует последняя, 0.10.0 версия.
Тут подробно рассказано о формате Pod-файла.

3) Генерируем первоначальное окружение, загружаем необходимые файлы как самого CocoaPods, так и исходники библиотек. И главное — будет всегда поддерживать их в актуальном состоянии:
pod install
CocоaPods — мощное средство в руках Objective C разработчика

После выполнения этих несложных процедур мы получаем новую заготовку проекта. Теперь работать с ним нужно через сгенерированный xcworkspace. То есть забудьте о файле проекта как о самостоятельной сущности, только workspace!

open CocoaPodsExample.xcworkspace

Вот так будет выглядеть структура проекта
CocоaPods — мощное средство в руках Objective C разработчика

Теперь можно смело подключать AFNetworking.h и использовать эту библиотеку будто вы сами только что скачали ее исходники и разместили их в своем проекте.
CocоaPods — мощное средство в руках Objective C разработчика

Собственно, это, пожалуй, основной путь работы с CocoaPods. Основной, минимальный и простой.

Файл с зависимостями можно будет дополнить, разбавив одинокий AFNetworking:

pod 'SSToolkit'
pod 'AFNetworking', '>= 0.5.1'
pod 'CocoaLumberjack'

Суть не меняется, простота работы не пропадает.

Вот список наиболее популярных библиотек, доступных через CocoaPods:

  • AFNetworking
  • ASIHTTPRequest
  • BlocksKit
  • ConciseKit
  • CorePlot
  • EGOTableViewPullRefresh
  • Facebook-iOS-SDK
  • JSONKit
  • MBProgressHUD
  • Nimbus
  • QuickDialog
  • Reachability
  • SFHFKeychainUtils
  • ShareKit

CocoaPods однозначно можно отнести к must have средствам в арсенале Cocoa-разработчика.

Автор: Silf

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js