Oppretting av First CocoaPod

Creating Dine Først CocoaPod
19
Del
to
Del

Dette Cyber ​​mandag Envato Tuts + kurs vil bli redusert å bare $ 3. Ikke gå glipp av.

Innledning

CocoaPods er et flott verktøy for å hjelpe til med avhengighet ledelse når de bygger iOS eller OS X-programmer. Etter å ha vært rundt og godt støttet i mange år, er CocoaPods løpetid tydelig. Selv om det er veldig vanlig å bruke CocoaPods i dine iOS eller OS X programvare-prosjekter, er det mindre vanlig å faktisk lage en pod andre å bruke. Denne opplæringen vil lede deg gjennom å skape din første pod og det vil gi deg noen tips på hva som kjennetegner en stor pod.

1. Installere CocoaPods

Selvfølgelig, for å skape en pod, må du installere CocoaPods. Den er tilgjengelig som en Ruby perle fra RubyGems. For å installere CocoaPods, utføre følgende kommandoer fra kommandolinjen:
perle installere cocoapods

Denne opplæringen ble skrevet mot CocoaPods 0.37.2

2.. Step by Step Oversikt

Fra et høyt nivå, det er fem trinn involvert for å lage din første pod.


    Bestem idé for første pod
    < li> Bruk pod lib kommando for å opprette skjelettet katalogstruktur og tilhørende filer for din pod.

    Oppdater metadata av pod, slik som sin lisens og versjonsinformasjon.

    Legg inn koden for din pod. Dette inkluderer både kode for pod selv samt noen kode som ville være nødvendig for et eksempel prosjekt.
  1. Gjør pod offentlig tilgjengelig.

    3. Podstorming

    Podstorming er egentlig ikke et ord, men det er på tide å idemyldre funksjonaliteten for din første pod. Det er over 10 000 offentlig tilgjengelige pods indeksert i den offisielle spesifikasjoner depotet. Folk har funnet alle slags ting å gjøre tilgjengelig som en pod. Her er noen forslag til hvordan du starter podstorming, err, jeg mener brainstorming:

    Utility Kode: Har du en unik ta på hvordan du utfører visse streng manipulasjoner? Har du en favoritt underklasse som du skrev for å utføre en glatt animasjon på en UIView? Spesifikke verktøy kode som dette er et godt eksempel på hva som kan gjøres om til en pod. Det er ofte allerede godt priset og frakoblet fra andre eksisterende kodebaser

    Tredjeparts Pakker:. Har du opprettet en wrapper rundt en annen tredjepart API? Har du en app som du ønsker å gi kroker for andre apps for å integrere med, for eksempel for godkjenning? Har bedriften gi en web-API for nettbaserte ressurser som vil være nyttig for andre iOS-apps for enkelt å integrere med? Hvis ja, så en pod er fornuftig, siden det er en enkel måte for andre iOS-applikasjoner for enkelt å integrere med disse pakkene

    UI komponenter. Har du oppretter en smørglatt UI widget som du vil andre programmer til være i stand til å bruke? Dette er mine favoritt pods. Det er flott å være i stand til å legge til en komplisert og herlig UI komponent til en applikasjon ved bare å ta med en pod avhengighet.

  2. Alt som du vil at andre skal kunne bruke. Visste du lage noe som du tror andre vil finne nyttig? I så fall slå den inn i en pod slik at andre lett kan bruke den.

    Denne opplæringen vil lede deg gjennom å skape en pod som lar deg lage en UILabel som blinker. Vi kaller det BlinkingLabel.

    4. Lag prosjekt

    På tide å grave i. Nå som du vet funksjonaliteten at pod kommer til å gi, er det på tide å lage den. Pod lib kommando er et viktig verktøy som vi skal bruke til to formål i løpet av prosessen.


      pod lib lint vil validere at alt er i orden med din pod, og at den er klar til bruk etter CocoaPods .

      pod lib skape faktisk vil bidra til å gi deg en hoppe starte ved å gi en standard katalogstruktur med en haug av standardfilene som trengs for en høy kvalitet pod. pod lib skape er ikke den eneste måten å lage din pod, men det er den enkleste

      Åpne et terminal vindu, navigere til en arbeidskatalog, og kjør følgende kommando:.
      pod lib skape BlinkingLabel

      Når du blir spurt om hvilket språk du vil bruke, svar Swift
      .

      Når du blir spurt om du ønsker å inkludere en demo program, svaret Ja
      .

      Når det skal avgjøres om det skal opprettes en prøve prosjekt eller ikke, foreslår CocoaPods teamet spørre deg selv "Skulle dette Pod inkluderer en skjermdump?" Hvis ja, så er det en god idé å inkludere et prøve prosjekt.

    1. Når spurt om hvilke testing rammeverk for å bruke, svar Ingen
      .
    2. Svar Nei
      på spørsmålet om visning basert testing.

      Testing er utenfor omfanget av denne opplæringen, men ikke la det stoppe deg fra å undersøke dette videre etter denne opplæringen. Forholdet mellom testene til kodelinjer er en faktor som er vurdert av CocoaPods Quality Index.

      Når stillas for din pod er satt opp, vil Xcode åpne den splitter nye prosjekt klar for deg å arbeide på pod.

      5. Oppdatere Pod metadata

      Det er tre viktigste delene av metadata som må være inkludert i pod:

      .podspec: Denne filen beskriver informasjon om denne spesifikke versjonen av din pod. Dine pod-er, versjonsnummer, hjemmeside og forfatternavn er noen eksempler på hva som er inkludert. Sjekk den offisielle referansesiden for mer informasjon

      README. Hvis du har brukt GitHub før, vet du hvor viktig en README er. Et prosjekt er README skrevet i Markdown, vises på hjemmesiden til et prosjekt på GitHub. En skikkelig README kan være forskjellen mellom noen bruker ditt prosjekt eller ikke. I tillegg er det en faktor som bidrar til en høy CocoaPods Quality Index samt

      LISENS:. Å ha din pod akseptert i Spec depotet, trenger din pod å inkludere en lisens. Pod lib skape kommando automatisk fyller lisensfilen med MIT License og det er det vi kommer til å bruke for denne opplæringen.

      For å få .podspec i form, åpne det i Xcode. Du finner den under BlinkingLabel /Podspec Metadata /BlinkingLabel.podspec. Heldigvis har CocoaPods skapt et godt befolket mal for oss når vi gjennomførte pod lib skape kommandoen
      . Du er i ferd med å elske dette verktøyet enda mer. Pod lib lo kommandoen vil automatisk validere .podspec filen for å sikre at det er i samsvar med beste praksis. Eller, hvis du er lat, du kan også bruke den finne ut av minimum du trenger å gjøre for å skape en skikkelig .podspec fil.

      Fra kommandolinjen, i roten av BlinkingLabel prosjekt, utføre følgende kommando:
      pod lib lo BlinkingLabel.podspec

      Dette bør utgang følgende:
      > pod lib lo BlinkingLabel.podspec - > BlinkingLabel (0.1.0) - WARN | Sammendraget er ikke meningsfylt. - WARN | Beskrivelsen er ikke meningsfylt. - WARN | Det var et problem å validere URL https://github.com/<GITHUB_USERNAME>/BlinkingLabel. [!] BlinkingLabel ikke bestod validation.You kan bruke `--no-clean` muligheten til å inspisere eventuelle problem.

      Verktøyet forteller deg at det er tre ting som må fikses i .podspec filen:

      legge til mer informasjon til sammendraget

      legge en skikkelig beskrivelse
      < li> angi en nettadresse for pod sin hjemmeside

      Her er noen forslag til verdier for disse feltene:

      s.summary:
      A underklasse på UILabel som gir et blink

      s.description:..
      Dette CocoaPod gir muligheten til å bruke en UILabel som kan startes og stoppes blinkende

      s.homepage:
      https://github.com/obuseme/BlinkingLabel (erstatte obuseme med GitHub brukernavn)

      Men vent, hvis du har fulgt instruksjonene trinn for trinn, teknisk er det ikke et prosjekt ved at URL ennå. Det er på tide å presse prosjektet til et offentlig register på GitHub. Mens det finnes andre alternativer for hosting dine pods, er GitHub langt den vanligste.

      Å presse prosjektet til GitHub, bla til GitHub, logg inn eller opprette en konto, og lage en New Repository
      kalt BlinkingLabel
      . Deretter, fra kommandolinjen, utføre følgende kommandoer:
      git legge .git commit -m "Initial Commit" git fjern legge opprinnelse https://github.com/<GITHUB_USERNAME>/BlinkingLabel.git //erstatte < GITHUB_USERNAME > med github.com usernamegit presse -u opprinnelse mester

      På dette punktet, hvis du har gjort alt riktig og lo den .podspec filen på nytt, bør det passere validering
      >. pod lib lo BlinkingLabel .podspec - > BlinkingLabel (0.1.0) BlinkingLabel passert validering
      6 Legge Kode

      Du har nå den grunnleggende skallet av en pod, men det gjør ikke noe det er på tide å legge til... noen funksjonalitet. The kjekk liten ting om prøveprosjektet som CocoaPods skapt for deg at du samtidig kan skrive kode for både pod og eksempelet prosjektet.

      Først må du finne filen ReplaceMe. swift
      under Pods /Utvikling Pods /BlinkingLabel /Pod /Kurs /Hotell og slette den.

      Deretter oppretter du en ny Swift fil i samme katalog og gi den navnet BlinkingLabel .swift
      . Erstatte innholdet i den nye filen med følgende:
      public class BlinkingLabel: UILabel {public func startBlinking () {la alternativer: UIViewAnimationOptions = Gjenta pkt | .Autoreverse UIView.animateWithDuration (0,25, delay: 0.0, alternativer: alternativer, animasjoner: {self.alpha = 0}, ferdigstillelse: null)} public func stopBlinking () {alfa = 1 layer.removeAllAnimations ()}}

      Du bare ekstra funksjonalitet til ditt første pod, en underklasse på UILabel. Underklassen gir en metode for å lage etiketten blink og en annen metode for å stoppe den fra å blinke.

      For å sikre at det er lett for andre utviklere å forstå hvordan du bruker BlinkingLabel, legge til noen eksempelkoden til eksempelet prosjektet. Åpne BlinkingLabel /Eksempel på BlinkingLabel / ViewController.swift Anmeldelser og at det ser slik ut:
      import UIKitimport BlinkingLabelclass ViewController: UIViewController {var isBlinking = false la blinkingLabel = BlinkingLabel (ramme: CGRectMake (10 , 20, 200, 30)) overstyring func viewDidLoad () {super.viewDidLoad () //Setup den BlinkingLabel blinkingLabel.text = "I blink!" blinkingLabel.font = UIFont.systemFontOfSize (20) view.addSubview (blinkingLabel) blinkingLabel.startBlinking () isBlinking = true //Opprett en UIButton å veksle den blinkende la toggleButton = UIButton (ramme: CGRectMake (10, 60, 125, 30) ) toggleButton.setTitle ("Toggle Blinking", forState: .Normal) toggleButton.setTitleColor (UIColor.redColor (), forState: .Normal) toggleButton.addTarget (selv, handling: "toggleBlinking", forControlEvents: .TouchUpInside) view.addSubview (toggleButton)} func toggleBlinking () {if (isBlinking) {blinkingLabel.stopBlinking ()} else {blinkingLabel.startBlinking ()} isBlinking =! isBlinking}}

      På dette punktet, vil du se Xcode klag med mye av feil i ViewController.swift. Dette er fordi pod for BlinkingLabel ikke er installert på eksempelet prosjektet ennå. For å gjøre det, bytte til kommandolinjen og fra roten av BlinkingLabel katalogen utføre følgende kommando:
      > cd Eksempel > pod installAnalyzing dependenciesFetching podspec for `BlinkingLabel` fra` ../`Downloading dependenciesInstalling BlinkingLabel 0.1.0 (var 0.1.0) Generering Pods projectIntegrating klient prosjekt

      Deretter bytte tilbake til Xcode og velg BlinkingLabel-Eksempel målet og klikk på Kjør
      knappen


      Du bør se omtrent slik ut:.

      Velg Toggle Blinker
      å prøve ut ny pod. Det siste trinnet i å lage din pod er å oppdatere README.md. I Xcode, åpen README.md
      under BlinkingLabel /Podspec Metadata /README.md
      . Du vil se at CocoaPods lagt noen standard dokumentasjon for deg. Stopper ikke der, kan du gjøre det bedre. Legg noen dokumentasjon om pod og inkluderer en skjermdump. Husk at en README er ofte det første at noen vil se når man ser på din pod. Det er viktig at det er av høy kvalitet. Ta en titt på mine for litt inspirasjon.

      7. Making Your Pod Tilgjengelig

      Nå som du har en fullt funksjonell pod kjører på din lokale maskin, er det på tide å gjøre BlinkingLabel tilgjengelig for andre for inkludering i sine prosjekter. På et høyt nivå, er dette oppnås ved å få din nye pod inn i den offentlige Specs depotet.

      Specs repository er offentlig sted på GitHub der alle offentlige pods er indeksert. Du faktisk ikke er tvunget til å bruke GitHub å være vert for din pod kildekode. Du kan også bruke BitBucket for eksempel. Din pod sin spec vil bli lagret i Specs depotet på GitHub skjønt.

      Det er veldig enkelt å ha din pod lagt til Specs depotet. Det er tre trinn involvert for å sende inn din pod. Ikke prøv disse trinnene som jeg allerede har gjort BlinkingLabel offentlig. De er bare her for å tjene som en referanse.

      Som en forutsetning, sørg for at lokale endringer i BlinkingLabel prosjektet katalogen er lagt til git og presset til fjernkontrollen.

      Trinn 1:. Tagging

      Tag din siste forplikte og skyv den til den eksterne
      > git tag 0.1.0 > git push-opprinnelse 0.1.0Total 0 (delta 0), gjenbrukt 0 (delta 0) Til https://github.com/obuseme/BlinkingLabel.git * [ny kode] 0.1.0 - > 0.1.0

      Dette trinnet viser at du markerer denne begå som en spesifikk utgivelse av pod. Navnet på taggen skal matche s.version
      i .podspec fil. Det neste trinnet vil validere denne

      Trinn 2:. Validering

      Deretter kjører du følgende kommando fra kommandolinjen for å kontrollere at alt er riktig konfigurert mellom hvor kildekoden er lagret og din. podspec file:
      pod spec lo BlinkingLabel.podspec

      Dette bør utgang følgende:
      > pod spec lo BlinkingLabel.podspec - > BlinkingLabel (0.1.0) analyserte en podspec.BlinkingLabel.podspec passert validering
      Trinn 3:. Pushing å Specs Repository

      Til slutt presse spec til Specs depotet ved å kjøre følgende kommando:
      pod trunk presse BlinkingLabel.podspec

      Dette bør utgang følgende:
      > pod trunk presse BlinkingLabel.podspec Oppdatering spec repo `master`Validating podspec - > BlinkingLabel (0.1.0) Oppdatering spec repo `master` - data URL: https://raw.githubusercontent.com/CocoaPods/Specs/f7fb546c4b0f80cab93513fc228b274be6459ad2/Specs/BlinkingLabel/0.1.0/BlinkingLabel.podspec.json - Logg meldinger: - June 29th, 20:40: Push for `BlinkingLabel 0.1.0 'igangsatt. - 29. juni 20:40: Push for `BlinkingLabel 0.1.0" har blitt skjøvet (1.701885099 s)
      8.. Hva skaper en god Pod?

      Det er bokstavelig talt tusenvis av pods tilgjengelig i Specs depotet. Når du blar i en pod, er det ikke lett å finne en pod kvalitet. Når kapre tredjeparts kode inn i prosjektet, vil du ha en høy grad av tillit i koden som du vil bli levert til kundene. Historisk sett hadde en utvikler å lage sin egen tolkning av kvaliteten på en tilfeldig pod at de fant.

      Per juni 2015 har CocoaPods gitt et verktøy kalt Quality Index som gir en oppsummert dom på kvaliteten av en gitt pod basert på visse beregninger. Den omfattende og mest oppdaterte beregninger kan bli funnet på GitHub

      I sammendraget, her er ting som kan bidra til å bedre kvaliteten indeksen på pod.

    3. prosjekt popularitet målt ved stjerner, gafler, abonnenter og bidragsytere

      code dokumentasjon

      høy kvalitet README

      skrevet i Swift

      bruk av GPL-lisens

      ikke mange åpne spørsmål

      kodekvalitet sikres gjennom automatiserte tester

      lene installere størrelse ved å minimere inkludert eiendeler

      mindre, godt komponert, klasser

      Quality Index of en pod kan enten gå opp eller ned basert på hvor godt et gitt prosjekt er i samsvar med disse beregningene.

      Konklusjon

      Opprette pods for andre å bruke er moro og en god måte å bidra tilbake til samfunnet. Denne opplæringen har vist deg hva deler av koden gjør for gode pods, hvordan du lager din første pod, hvordan gjøre det offentlig tilgjengelig, og hvilke teknikker kan gjøre for en stor pod.

      Du har nå kunnskap til opprette din første pod. Jeg vil gjerne høre hva pods du har i tankene å bygge. Kom tilbake og slippe en link til din pod når den er opprettet.