Делаем жизнь лучше с CocoaPods

Preview:

DESCRIPTION

Доклад на CocoaHeads, 31 мая 2013 г

Citation preview

Делаем жизнь лучшес CocoaPods

Глеб Тарасов31 мая 2013

Предшественники• RubyGems, Ruby (2001 год)

• Maven, Java (2002 год)

• pip, Python (2008 год)

• Nuget, C# (2010 год)

CocoaPods, Objective-C (2011 год)

Варианты подключения библиотек

Скачать, положить в папочку и добавить в

проект– легкая первая установка– легко допиливать библиотеку– сложно обновлять– невозможно слить свои изменения с обновлением

Подключить как git submodule (svn externals)

Ссылка на HEAD

Ссылка на тег версии

Ссылка на свой fork

– неприятно добавлять– гораздо проще с изменениями, обновлением и слиянием– но обновление все еще целая проблема:

– сделать pull– передобавить в проект– проверить не отвалились ли зависимости– …

Использовать CocoaPods

pod 'AFNetworking'pod 'MagicalRecord'pod 'Nimbus'pod 'P34Utils'

Podfile

$ pod install

Workspace

Проект Pods

platform :ios, '5.0'

pod 'P34Utils', :git => 'https://github.com/pilot34/P34Utils.git', :branch => 'minimal'

pod 'P34FilesDownloader', :git => 'https://github.com/pilot34/P34FilesDownloader.git'

pod 'MagicalRecord'

pod 'AFNetworking', '0.5.1'

pod 'vfrReader', :git => 'https://github.com/pilot34/Reader.git'

pod 'NSDate-TimeDifference', :git => 'https://github.com/pilot34/NSDate-

TimeDifference.git'

pod 'DETweetComposeViewController'

Podfile

Демо(подключаем AFNetwokring)

Как работает?https://github.com/CocoaPods/Specs

Исправляем чужие библиотеки

1. делаем fork библиотеки

2. делаем fork CocoaPods Specs repo

2. кладем исправленный Podspec файл в наш fork

3. указываем кастомную git ссылку в Podfile

3. исправляем там Podspec

Пишем свои библиотеки

1. пишем библиотеку

3. делаем fork CocoaPods Specs repo

3. кладем Podspec файл в наш репозиторий

4. указываем кастомную git ссылку в Podfile

4. добавляем Podspec туда

2. пишем для нее Podspec

5. делаем pull request в общий Specs repo

Демо(пишем библиотеку)

Проблемы

• Перевод существующего проекта может затянуться

• Зависимость еще от одного вендора• Неудобно одновременно дописывать и программу и библиотеку

Если осталось время

Crashlyticshttps://www.crashlytics.com

Twitter$100 млн

Всё, спасибо!