Pull to refresh
136.05
Rating
Luxoft
think. create. accelerate.

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

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




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, и сперва нам необходимо обновить список пакетов, в терминале выполнив команду:


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

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

sudo gem install cocoapods &&
pod setup


CocoaPods установлен.

Hello World


Создаем новый почти пустой проект File > New > Project… > Single View Applciation, для примера:



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


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

В терминале переходим в папку проекта и выполняем следующее:
1) Создает Pod-файл

2) Добавляем библиотеку


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

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


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

open CocoaPodsExample.xcworkspace

Вот так будет выглядеть структура проекта


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


Собственно, это, пожалуй, основной путь работы с 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-разработчика.
image
Tags: ios developmentcocoapodsdependenciesopensource3rdparty
Hubs: Luxoft corporate blog Development for iOS
Total votes 35: ↑32 and ↓3 +29
Comments 52
Comments Comments 52

Information

Founded
Location
Россия
Website
career.luxoft.com
Employees
over 10,000 employees
Registered
Representative
LuxoftRussia

Habr blog