CocoaPods er et flott verktøy for å hjelpe med avhengighetsadministrasjon når du bygger iOS- eller OS X-applikasjoner. Etter å ha vært rundt og godt støttet i årevis, er CocoaPods modenhet tydelig. Selv om det er veldig vanlig å bruke CocoaPods i IOS- eller OS X-programvareprosjektene, er det mindre vanlig å faktisk lage en pod andre å bruke. Denne opplæringen vil gå deg gjennom å lage din første pod, og den vil gi deg noen tips om hva som kjennetegner en flott pod.
Åpenbart, for å lage en pod, må du installere CocoaPods. Den er tilgjengelig som en Ruby perle fra RubyGems. For å installere CocoaPods, utfør følgende kommandoer fra kommandolinjen:
perle installasjon cocoapods
Denne opplæringen ble skrevet mot CocoaPods 0.37.2.
Fra et høyt nivå er det fem trinn involvert for å lage din første pod:
pod lib
kommandoen for å lage skjelett katalog struktur og tilhørende filer for pod.Podstorming er egentlig ikke et ord, men det er på tide å brainstorm funksjonaliteten til den første podden din. Det er over 10 000 offentlig tilgjengelige pods indeksert i det offisielle spesifikasjonsregisteret. Folk har funnet alle slags ting å gjøre tilgjengelig som en pod. Her er noen forslag for å hjelpe deg med å starte podstorming, feil, jeg mener brainstorming:
UIView
? Spesifikk brukskode som dette er et godt eksempel på hva som kan omdannes til en pod. Det er ofte allerede godt fakturert og koblet fra andre eksisterende kodebaser. Denne opplæringen vil gå deg gjennom å lage en pod som lar deg lage en UILabel
det blinker. Vi ringer det BlinkingLabel.
Tid til å grave inn. Nå som du vet hvilken funksjonalitet poden din skal gi, er det på tide å lage den. De pod lib
kommandoen er et viktig verktøy som vi skal bruke til to formål under etableringsprosessen.
pod lib lint
vil validere at alt er bra med poden din og at den er klar til bruk av CocoaPods.pod lib lage
vil faktisk bidra til å gi deg et hopp ved å gi en standard katalogstruktur med en haug med boilerplate-filer som er nødvendige for en høy kvalitet pod. pod lib lage
er ikke den eneste måten å lage pod på, men det er det enkleste.Åpne et terminalvindu, naviger til en arbeidskatalog og utfør følgende kommando:
pod lib lage BlinkingLabel
Testing er utenfor omfanget av denne opplæringen, men ikke la den stoppe deg fra å undersøke dette videre etter denne opplæringen. Forholdet mellom tester og kodelinjer er en faktor som vurderes av CocoaPods kvalitetsindeks.
Når stillaset for din pod er satt opp, vil Xcode åpne ditt splitter nye prosjekt klar for at du skal jobbe på din pod.
Det er tre hoveddeler av metadata som må inkluderes med din pod:
pod lib lage
kommandoen fyller automatisk LISENS-filen med MIT-lisensen, og det er det vi skal bruke til denne opplæringen. Å få tak i .podspec i form, åpne den i Xcode. Du finner det under BlinkingLabel / Podspec Metadata / BlinkingLabel.podspec. Heldigvis har CocoaPods skapt en velbefolket mal for oss da vi kjørte ut pod lib lage
kommando. Du er i ferd med å elske det verktøyet enda mer. De pod lib lint
kommandoen vil automatisk validere .podspec fil for å sikre at den overholder beste praksis. Eller, hvis du er lat, kan du også bruke den til å finne ut det minste minimumet du trenger å gjøre for å skape et riktig .podspec fil.
Fra kommandolinjen, i roten til BlinkingLabel-prosjektet, utfør følgende kommando:
pod lib lint BlinkingLabel.podspec
Dette skal utføre følgende:
> pod lib lint BlinkingLabel.podspec -> BlinkingLabel (0.1.0) - WARN | Sammendraget er ikke meningsfylt. - WARN | Beskrivelsen er ikke meningsfylt. - WARN | Det oppsto et problem med å validere nettadressen https://github.com// BlinkingLabel. [!] BlinkingLabel passerte ikke validering. Du kan bruke '-no-clean'-alternativet for å kontrollere eventuelle problemer.
Verktøyet forteller deg at det er tre ting som må løses i .podspec fil:
Her er noen anbefalte verdier for disse feltene:
UILabel
som gir en blink.UILabel
Det kan bli startet og slutte å blinke.Men vent, hvis du har fulgt instruksjonene trinn for trinn, er det teknisk ikke et prosjekt på denne nettadressen ennå. Det er på tide å presse prosjektet ditt til et offentlig lager på GitHub. Mens det finnes andre alternativer for hosting av podene, er GitHub langt den vanligste.
For å skyve prosjektet ditt til GitHub, bla til GitHub, logg inn eller opprett en konto, og opprett en Ny Repository kalt BlinkingLabel. Deretter utfør kommandolinjene fra kommandolinjen:
git add. git commit -m "Initial Commit" git ekstern legg til opprinnelse https://github.com//BlinkingLabel.git // erstatte med ditt github.com brukernavn git push -u origin master
På dette punktet, hvis du har gjort alt riktig og lint på .podspec filen igjen, bør den bestå validering.
> pod lib lint BlinkingLabel.podspec -> BlinkingLabel (0.1.0) BlinkingLabel bestått validering.
Du har nå det grunnleggende skallet på en pod, men det gjør ingenting. Det er på tide å legge til noe funksjonalitet. Den kjekke tingen om prøveprosjektet som CocoaPods laget for deg, er at du samtidig kan skrive kode for både pod og eksempelprosjektet.
Finn først filen ReplaceMe.swift under Pods / Development Pods / BlinkingLabel / Pod / Classes / og slett den.
Deretter oppretter du en ny Swift-fil i samme katalog og heter den BlinkingLabel.swift. Erstatt innholdet i den nye filen med følgende:
offentlig klasse BlinkingLabel: UILabel public func startBlinking () la alternativene: UIViewAnimationOptions = .Repeat | .Autoreverse UIView.animateWithDuration (0.25, delay: 0.0, alternativer: alternativer, animasjoner: self.alpha = 0, fullføring: null) offentlig func stopBlinking () alpha = 1 layer.removeAllAnimations ()
Du har nettopp lagt til funksjonalitet til din første pod, en underklasse på UILabel
. Underklassen gir en metode for å få etiketten til å blinke og en annen metode for å stoppe den fra å blinke.
For å sikre at det er enkelt for andre utviklere å forstå hvordan de skal brukes BlinkingLabel
, legg til noen prøvekode til eksempelprosjektet. Åpen BlinkendeLabel / Eksempel på BlinkendeLabel /ViewController.swift og få det til å se slik ut:
importere UIKit-import BlinkingLabel klasse ViewController: UIViewController var isBlinking = false let blinkingLabel = BlinkingLabel (ramme: CGRectMake (10, 20, 200, 30)) tilsidesatte func viewDidLoad () super.viewDidLoad () // Oppsett BlinkingLabel blinkingLabel.text = "Jeg blinker!" blinkingLabel.font = UIFont.systemFontOfSize (20) view.addSubview (blinkingLabel) blinkingLabel.startBlinking () isBlinking = true // Opprett en UIButton for å bytte ut 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 () hvis (erBlinking) blinkingLabel.stopBlinking () else blinkingLabel.startBlinking () isBlinking =! isBlinking
På dette punktet vil du se Xcode klage med mange feil i ViewController.swift. Dette er fordi pod for BlinkingLabel
er ikke installert på eksempelprosjektet ennå. For å gjøre det, bytt til kommandolinjen og fra roten til BlinkingLabel katalog utføre følgende kommando:
> cd Eksempel> pod installere Analysere avhengigheter Hente podspec for 'BlinkingLabel' fra '... /' Last ned avhengigheter Installere BlinkingLabel 0.1.0 (var 0.1.0) Generere Pods prosjekt Integrere klient prosjekt
Deretter skifter du tilbake til Xcode og velger BlinkingLabel-Eksempel mål og klikk på Løpe knapp.
Du bør se noe slikt:
Tap Bytt blinkende å prøve ut din nye pod. Det siste skrittet i å lage din pod er å oppdatere README.md. I Xcode, åpne README.md under BlinkingLabel / Podspec Metadata / README.md. Du ser at CocoaPods har lagt til standard dokumentasjon for deg. Ikke hold deg der, du kan gjøre det bedre. Legg til litt dokumentasjon om podden og ta med et skjermbilde. Husk at et README er ofte det første som noen vil se når du ser på podmen din. Det er viktig at det er av høy kvalitet. Ta en titt på meg for litt inspirasjon.
Nå som du har en fullt funksjonell pod som kjører på din lokale maskin, er det på tide å lage BlinkingLabel tilgjengelig for andre for inkludering i sine prosjekter. På høyt nivå er dette oppnådd ved å få din nye pod inn i det offentlige Specs-depotet.
De Specs depot er det offentlige stedet på GitHub hvor alle offentlige pods er indeksert. Du er faktisk ikke tvunget til å bruke GitHub til å være vert for podens kildekode. Du kan også bruke BitBucket for eksempel. Din pods spesifikasjon 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 podgen din. Ikke prøv disse trinnene, siden jeg allerede har gjort BlinkingLabel offentlig. De er bare her for å tjene som referanse.
Som en forutsetning må du sørge for at de lokale endringene dine endres BlinkingLabel prosjektkatalog legges til git og trykkes til fjernkontrollen.
Merk ditt siste forpliktelse og trykk det til fjernkontrollen.
> git tag 0.1.0> git push opprinnelse 0.1.0 Totalt 0 (delta 0), gjenbruk 0 (delta 0) Til https://github.com/obuseme/BlinkingLabel.git * [ny tag] 0.1.0 -> 0.1.0
Dette trinnet indikerer at du merker denne plikten som en bestemt utgave av podmen din. Navnet på taggen skal samsvare s.version i din .podspec fil. Det neste trinnet vil validere dette.
Kjør deretter kommandoen fra kommandolinjen for å bekrefte at alt er konfigurert riktig mellom hvor kildekoden er lagret og din .podspec fil:
pod spec lint BlinkingLabel.podspec
Dette skal utføre følgende:
> pod spec lint BlinkingLabel.podspec -> BlinkingLabel (0.1.0) Analysert 1 podspec. BlinkingLabel.podspec bestått validering.
Til slutt skyver du specen til Specs depot ved å utføre følgende kommando:
pod trunk trykk BlinkingLabel.podspec
Dette skal utføre følgende:
> pod trunk push BlinkingLabel.podspec Oppdatere spec repo 'master' Validerende 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 - Logmeldinger: - 29. juni, 20:40: Trykk for 'BlinkingLabel 0.1.0' initiert. - 29. juni, 20:40: Trykk for 'BlinkingLabel 0.1.0' har blitt presset (1.701885099 s).
Det er bokstavelig talt tusenvis av pods tilgjengelig i Specs oppbevaringssted. Når du surfer på en pod, er det ikke lett å bestemme en pods kvalitet. Når du innfører tredjepartskode i prosjektet ditt, vil du ha høy grad av tillit til koden du vil sende til kunder. Historisk måtte en utvikler lage sin egen tolkning av kvaliteten på en tilfeldig pod som de fant.
Fra juni 2015 har CocoaPods gitt et verktøy kalt kvalitetsindeksen som gir en oppsummert vurdering av kvaliteten på en gitt pod basert på visse beregninger. Den omfattende og mest oppdaterte beregningen finner du på GitHub.
Oppsummert, her er ting som kan bidra til å forbedre Kvalitetsindeks av din pod:
De Kvalitetsindeks av en pod kan enten gå opp eller ned basert på hvor godt et gitt prosjekt samsvarer med disse beregningene.
Å lage pods for andre å bruke er morsomt og en god måte å bidra tilbake til samfunnet. Denne opplæringen har vist deg hvilke stykker kode som gir gode pods, hvordan du lager din første pod, hvordan du gjør den offentlig tilgjengelig, og hvilke teknikker kan gjøre for en flott pod.
Du har nå kunnskapen om å lage din første pod. Jeg vil gjerne høre hvilke pods du har i tankene å bygge. Vennligst kom tilbake og slipp en kobling til poden din når den er opprettet.