Slide 1

Slide 1 text

COCOAPODS PLUGINS NS! 2014 BORIS BÜGLING - @NEONACHO

Slide 2

Slide 2 text

ADVANCED COCOAPODS

Slide 3

Slide 3 text

COCOAPODS PLUGINS ▸ Add subcommands to pod, the tool ▸ post_install hook ▸ Each plugin is a Gem

Slide 4

Slide 4 text

DO WHATEVER YOU WANT, BECAUSE RUBY !

Slide 5

Slide 5 text

USEFUL PLUGINS

Slide 6

Slide 6 text

$ pod plugins list

Slide 7

Slide 7 text

$ pod keys set AccessToken 0xFFFFFFFF

Slide 8

Slide 8 text

$ pod package ContentfulDeliveryAPI.podspec

Slide 9

Slide 9 text

$ pod lib coverage

Slide 10

Slide 10 text

$ pod roulette

Slide 11

Slide 11 text

HOW TO BUILD YOUR OWN PLUGIN

Slide 12

Slide 12 text

$ pod plugins create cocoapods-awesome-plugin

Slide 13

Slide 13 text

$ tree . !"" Gemfile !"" LICENSE.txt !"" README.md !"" Rakefile !"" cocoapods_awesome_plugin.gemspec #"" lib !"" cocoapods_awesome_plugin.rb !"" cocoapods_plugin.rb #"" pod #"" command #"" plugin.rb 3 directories, 8 files

Slide 14

Slide 14 text

module Pod class Command class Plugin < Command self.summary = "Short description." self.arguments = [CLAide::Argument.new('NAME', true)] def initialize(argv) @name = argv.shift_argument super end def validate! super help! "A Pod name is required." unless @name end def run UI.puts "Add your implementation here" end

Slide 15

Slide 15 text

HOOKS

Slide 16

Slide 16 text

Pod::HooksManager.register(:post_install) do |options| require 'installer' UI.puts "This gets executed after installation" end

Slide 17

Slide 17 text

THANK YOU!