- PVSM.RU - https://www.pvsm.ru -

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

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

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


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

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

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

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

Начинаем

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

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

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

Наиболее популярная библиотека для работы с HTTP-запросами — это AFNetworking [4] (с тех пор, как 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 версия.
Тут [5] подробно рассказано о формате 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


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/ios-development/13193

Ссылки в тексте:

[1] CocoaPods: https://github.com/CocoaPods/CocoaPods/

[2] git submodules: http://habrahabr.ru/post/60860/

[3] сайту: http://cocoapods.org/

[4] AFNetworking: https://github.com/AFNetworking/AFNetworking/

[5] Тут: http://rubydoc.info/gems/cocoapods/Pod/Podfile