SlideShare a Scribd company logo
Делаем жизнь лучше
с 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
Демо
(пишем библиотеку)
Проблемы
• Перевод существующего проекта может
затянуться
• Зависимость еще от одного вендора
• Неудобно одновременно дописывать и
программу и библиотеку
Что почитать:
• http://www.raywenderlich.com/ru/25225/
Введение-в-cocoapods
• http://cocoapods.org
Если осталось время
Crashlytics
https://www.crashlytics.com
Twitter
$100 млн
Делаем жизнь лучше с CocoaPods
Делаем жизнь лучше с CocoaPods
Делаем жизнь лучше с CocoaPods
Делаем жизнь лучше с CocoaPods
Всё, спасибо!

More Related Content

PPTX
Менеджер пакетов NuGet
PDF
SPb Jenkins Meetup #5. Jenkins in da Cloud. Внутренности
PDF
Jenkins в docker in mesos in ...
PDF
Антон Каляев — Быстрое развертывание среды с Vagrant
PDF
Андрей Михайлов. Vagrant. Быстрое развертывание среды
PDF
CD with Jenkins. Lessons Learned
PDF
TК°Conf. Микросервисы и Docker. Глеб Паньшин.
PDF
Docker контейнерная революция
Менеджер пакетов NuGet
SPb Jenkins Meetup #5. Jenkins in da Cloud. Внутренности
Jenkins в docker in mesos in ...
Антон Каляев — Быстрое развертывание среды с Vagrant
Андрей Михайлов. Vagrant. Быстрое развертывание среды
CD with Jenkins. Lessons Learned
TК°Conf. Микросервисы и Docker. Глеб Паньшин.
Docker контейнерная революция

What's hot (20)

PPTX
Scino: DVCS на примере Git
PDF
Docker. Основы
PDF
Docker - счастье для хомячка или ника?
PPTX
Что такое Docker
PDF
Andrii Medvedchuk "Kubernetes and Docker Basics for Running Web Apps"
PDF
Михаил Боднарчук "Docker для PHP разработчиков"
PDF
Почти Github Flow в вёб-разработке или как мы делаем Русторию
PPT
Docker - быстро, просто, наглядно
ODP
Docker : что это, зачем, и как им пользоваться
ODP
Teach your dockers to use CRanes
PDF
Кратчайшее введение в docker по-русски
PDF
Непрерывная интеграция Python-проектов в Яндексе
PPTX
Git presentation
PDF
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
PDF
Jiramania презентации @augspb
PDF
Docker for JS people
ODP
Введение в Docker
PDF
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
PPT
Maven как средство сборки проекта
Scino: DVCS на примере Git
Docker. Основы
Docker - счастье для хомячка или ника?
Что такое Docker
Andrii Medvedchuk "Kubernetes and Docker Basics for Running Web Apps"
Михаил Боднарчук "Docker для PHP разработчиков"
Почти Github Flow в вёб-разработке или как мы делаем Русторию
Docker - быстро, просто, наглядно
Docker : что это, зачем, и как им пользоваться
Teach your dockers to use CRanes
Кратчайшее введение в docker по-русски
Непрерывная интеграция Python-проектов в Яндексе
Git presentation
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Jiramania презентации @augspb
Docker for JS people
Введение в Docker
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
Maven как средство сборки проекта
Ad

Similar to Делаем жизнь лучше с CocoaPods (20)

PDF
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
PDF
Елизавета Голенок Переходим на mono или как это было
PPTX
Jenkins 2.0: Организуем тестирование в составе Continuous Delivery
PPTX
DevOps Fest 2020. Сергей Погорелов. Локально распределенное окружение разрабо...
PPTX
Introduction into NuGet
PDF
Gradle Introduction
PDF
Java осень 2014 занятие 1
PPTX
Net core and linux in production
PPTX
Codeception + Docker + Robo и что из этого вышло
PDF
Приемы Сontinuous Integration при разработке приложений на Caché
PDF
Caché github continuous intergration
PPT
непрерывная интеграция шаг к непрерывному деплою родионов игорь
PPT
Netbeans Desktop Applications
PDF
It meetup cd
PPTX
Docker в работе: взгляд на использование в Badoo через год
PPTX
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
PPTX
Docker в работе: взгляд на использование в Badoo через год
PDF
А так ли нужен DevOps инженер в проекте?
PPT
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
PPTX
Мастер-класс: отправка данных с ПЛК в Google Sheet с использованием Node-RED
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Елизавета Голенок Переходим на mono или как это было
Jenkins 2.0: Организуем тестирование в составе Continuous Delivery
DevOps Fest 2020. Сергей Погорелов. Локально распределенное окружение разрабо...
Introduction into NuGet
Gradle Introduction
Java осень 2014 занятие 1
Net core and linux in production
Codeception + Docker + Robo и что из этого вышло
Приемы Сontinuous Integration при разработке приложений на Caché
Caché github continuous intergration
непрерывная интеграция шаг к непрерывному деплою родионов игорь
Netbeans Desktop Applications
It meetup cd
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на использование в Badoo через год
А так ли нужен DevOps инженер в проекте?
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Мастер-класс: отправка данных с ПЛК в Google Sheet с использованием Node-RED
Ad

More from Глеб Тарасов (20)

PDF
Gleb Tarasov. Portfolio
PDF
Интуит. Разработка приложений для iOS. Лекция 12. Тестирование, публикация и др.
PDF
Интуит. Разработка приложений для iOS. Лекция 11. Расширенные возможности уст...
PDF
Интуит. Разработка приложений для iOS. Лекция 10. Поддержка iPad
PDF
Интуит. Разработка приложений для iOS. Лекция 9. Нестандартный интерфейс
PDF
Интуит. Разработка приложений для iOS. Лекция 8. Работа с данными
PDF
Интуит. Разработка приложений для iOS. Лекция 7. Работа с сетью
PDF
Интуит. Разработка приложений для iOS. Лекция 5. Сложные Views
PDF
Интуит. Разработка приложений для iOS. Лекция 4. Controllers
PDF
Интуит. Разработка приложений для iOS. Лекция 3. Views
PDF
Интуит. Разработка приложений для iOS. Лекция 2. Objective-C
PDF
Интуит. Разработка приложений для iOS. Лекция 1. Знакомство.
PPT
Презентация проекта Ulect
PDF
Презентация для Foundation Institute
PDF
msumobi2. Лекция 2
PDF
msumobi2. Лекция 1
PDF
Школа-Студия разработки приложений для iOS. 5 лекция. Разное
PDF
Школа-студия разработки для iOS. Лекция 4. Работа с данными
PDF
Школа-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжение
PDF
Школа-студия разработки приложений для iOS. 2 лекция. MVC, View, Controllers
Gleb Tarasov. Portfolio
Интуит. Разработка приложений для iOS. Лекция 12. Тестирование, публикация и др.
Интуит. Разработка приложений для iOS. Лекция 11. Расширенные возможности уст...
Интуит. Разработка приложений для iOS. Лекция 10. Поддержка iPad
Интуит. Разработка приложений для iOS. Лекция 9. Нестандартный интерфейс
Интуит. Разработка приложений для iOS. Лекция 8. Работа с данными
Интуит. Разработка приложений для iOS. Лекция 7. Работа с сетью
Интуит. Разработка приложений для iOS. Лекция 5. Сложные Views
Интуит. Разработка приложений для iOS. Лекция 4. Controllers
Интуит. Разработка приложений для iOS. Лекция 3. Views
Интуит. Разработка приложений для iOS. Лекция 2. Objective-C
Интуит. Разработка приложений для iOS. Лекция 1. Знакомство.
Презентация проекта Ulect
Презентация для Foundation Institute
msumobi2. Лекция 2
msumobi2. Лекция 1
Школа-Студия разработки приложений для iOS. 5 лекция. Разное
Школа-студия разработки для iOS. Лекция 4. Работа с данными
Школа-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжение
Школа-студия разработки приложений для iOS. 2 лекция. MVC, View, Controllers

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