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
GetDev.NET
 
PDF
SPb Jenkins Meetup #5. Jenkins in da Cloud. Внутренности
Oleg Nenashev
 
PDF
Jenkins в docker in mesos in ...
Кирилл Толкачёв
 
PDF
Антон Каляев — Быстрое развертывание среды с Vagrant
Daria Oreshkina
 
PDF
Андрей Михайлов. Vagrant. Быстрое развертывание среды
DrupalSib
 
PDF
CD with Jenkins. Lessons Learned
Кирилл Толкачёв
 
PDF
TК°Conf. Микросервисы и Docker. Глеб Паньшин.
TKConf
 
PDF
Docker контейнерная революция
GetDev.NET
 
Менеджер пакетов NuGet
GetDev.NET
 
SPb Jenkins Meetup #5. Jenkins in da Cloud. Внутренности
Oleg Nenashev
 
Jenkins в docker in mesos in ...
Кирилл Толкачёв
 
Антон Каляев — Быстрое развертывание среды с Vagrant
Daria Oreshkina
 
Андрей Михайлов. Vagrant. Быстрое развертывание среды
DrupalSib
 
CD with Jenkins. Lessons Learned
Кирилл Толкачёв
 
TК°Conf. Микросервисы и Docker. Глеб Паньшин.
TKConf
 
Docker контейнерная революция
GetDev.NET
 

What's hot (20)

PPTX
Scino: DVCS на примере Git
SCINO
 
PDF
Docker. Основы
Ivan Miniailenko
 
PDF
Docker - счастье для хомячка или ника?
Ruslan Sharipov
 
PPTX
Что такое Docker
Pavel Klimiankou
 
PDF
Andrii Medvedchuk "Kubernetes and Docker Basics for Running Web Apps"
LogeekNightUkraine
 
PDF
Михаил Боднарчук "Docker для PHP разработчиков"
Fwdays
 
PDF
Почти Github Flow в вёб-разработке или как мы делаем Русторию
SQALab
 
PPT
Docker - быстро, просто, наглядно
FallenKain
 
ODP
Docker : что это, зачем, и как им пользоваться
Сергей Ладыгин
 
ODP
Teach your dockers to use CRanes
Pavel Emelyanov
 
PDF
Кратчайшее введение в docker по-русски
OSLL
 
PDF
Непрерывная интеграция Python-проектов в Яндексе
Andrey Kazarinov
 
PPTX
Git presentation
Alexandr Babenko
 
PDF
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Badoo Development
 
PDF
Jiramania презентации @augspb
Gonchik Tsymzhitov
 
PDF
Docker for JS people
Alex Chistyakov
 
ODP
Введение в Docker
Andrey Markelov
 
PDF
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
MskDotNet Community
 
PPT
Maven как средство сборки проекта
Yova Stoika
 
Scino: DVCS на примере Git
SCINO
 
Docker. Основы
Ivan Miniailenko
 
Docker - счастье для хомячка или ника?
Ruslan Sharipov
 
Что такое Docker
Pavel Klimiankou
 
Andrii Medvedchuk "Kubernetes and Docker Basics for Running Web Apps"
LogeekNightUkraine
 
Михаил Боднарчук "Docker для PHP разработчиков"
Fwdays
 
Почти Github Flow в вёб-разработке или как мы делаем Русторию
SQALab
 
Docker - быстро, просто, наглядно
FallenKain
 
Docker : что это, зачем, и как им пользоваться
Сергей Ладыгин
 
Teach your dockers to use CRanes
Pavel Emelyanov
 
Кратчайшее введение в docker по-русски
OSLL
 
Непрерывная интеграция Python-проектов в Яндексе
Andrey Kazarinov
 
Git presentation
Alexandr Babenko
 
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Badoo Development
 
Jiramania презентации @augspb
Gonchik Tsymzhitov
 
Docker for JS people
Alex Chistyakov
 
Введение в Docker
Andrey Markelov
 
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
MskDotNet Community
 
Maven как средство сборки проекта
Yova Stoika
 
Ad

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

PDF
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Oleg Nenashev
 
PDF
Елизавета Голенок Переходим на mono или как это было
MskDotNet Community
 
PPTX
Jenkins 2.0: Организуем тестирование в составе Continuous Delivery
SQALab
 
PPTX
DevOps Fest 2020. Сергей Погорелов. Локально распределенное окружение разрабо...
DevOps_Fest
 
PPTX
Introduction into NuGet
Ciklum Ukraine
 
PDF
Gradle Introduction
Kirill Rozov
 
PDF
Java осень 2014 занятие 1
Technopark
 
PPTX
Net core and linux in production
Anatoly Popov
 
PPTX
Codeception + Docker + Robo и что из этого вышло
COMAQA.BY
 
PDF
Приемы Сontinuous Integration при разработке приложений на Caché
InterSystems CEE
 
PDF
Caché github continuous intergration
InterSystems
 
PPT
непрерывная интеграция шаг к непрерывному деплою родионов игорь
drupalconf
 
PPT
Netbeans Desktop Applications
scassau
 
PDF
It meetup cd
Victoria Astapenko
 
PPTX
Docker в работе: взгляд на использование в Badoo через год
Badoo Development
 
PPTX
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Ontico
 
PPTX
Docker в работе: взгляд на использование в Badoo через год
Anton Turetsky
 
PDF
А так ли нужен DevOps инженер в проекте?
Mad Devs
 
PPT
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
PVasili
 
PPTX
Мастер-класс: отправка данных с ПЛК в Google Sheet с использованием Node-RED
Пупена Александр
 
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Oleg Nenashev
 
Елизавета Голенок Переходим на mono или как это было
MskDotNet Community
 
Jenkins 2.0: Организуем тестирование в составе Continuous Delivery
SQALab
 
DevOps Fest 2020. Сергей Погорелов. Локально распределенное окружение разрабо...
DevOps_Fest
 
Introduction into NuGet
Ciklum Ukraine
 
Gradle Introduction
Kirill Rozov
 
Java осень 2014 занятие 1
Technopark
 
Net core and linux in production
Anatoly Popov
 
Codeception + Docker + Robo и что из этого вышло
COMAQA.BY
 
Приемы Сontinuous Integration при разработке приложений на Caché
InterSystems CEE
 
Caché github continuous intergration
InterSystems
 
непрерывная интеграция шаг к непрерывному деплою родионов игорь
drupalconf
 
Netbeans Desktop Applications
scassau
 
It meetup cd
Victoria Astapenko
 
Docker в работе: взгляд на использование в Badoo через год
Badoo Development
 
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Ontico
 
Docker в работе: взгляд на использование в Badoo через год
Anton Turetsky
 
А так ли нужен DevOps инженер в проекте?
Mad Devs
 
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
PVasili
 
Мастер-класс: отправка данных с ПЛК в 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