CocoaPods este un instrument excelent pentru a ajuta la gestionarea dependenței atunci când construiți aplicații iOS sau OS X. Fiind înconjurat și susținut de ani de zile, maturitatea lui CocoaPods este evidentă. Deși este foarte obișnuit să utilizați CocoaPods în proiectele de software pentru iOS sau OS X, este mai puțin obișnuit să creați de fapt un alt utilizator de utilizat. Acest tutorial vă va ajuta să vă creați prima pod și vă va oferi câteva sfaturi despre ceea ce caracterizează un pod grozav.
Evident, pentru a crea un pod, trebuie să instalați CocoaPods. Este disponibil ca o bijuterie Ruby de la RubyGems. Pentru a instala CocoaPods, executați următoarele comenzi din linia de comandă:
gem instala cocoapods
Acest tutorial a fost scris împotriva lui CocoaPods 0.37.2.
De la un nivel ridicat, există cinci etape implicate în crearea primului dvs. par:
pod lib
comandă pentru a crea structura directorului scheletului și fișierele asociate pentru pod.Podstorming-ul nu este de fapt un cuvânt, dar este timpul să ne gândim la funcționalitatea primului nostru pod. Există peste 10.000 de păstăi disponibile public în depozitul oficial Specs. Oamenii au găsit tot felul de lucruri pe care să le pună la dispoziție ca un pod. Iată câteva sugestii pentru a vă ajuta să începeți podstorming, err, mă refer la brainstorming:
UIView
? Codul de utilitate specific ca acesta este un exemplu excelent de ceea ce poate fi transformat într-un pod. De multe ori este deja bine conturat și decuplat de la alte baze de cod existente. Acest tutorial vă va ajuta să creați un pod care vă permite să creați un UILabel
care clipește. O să-l sunăm BlinkingLabel.
E timpul să vă grăbiți. Acum că știți funcționalitatea pe care o va oferi podul dvs., este timpul să îl creați. pod lib
comanda este un instrument important pe care îl vom folosi în două scopuri în timpul procesului de creare.
pod lib lint
va valida că totul este în regulă cu podul și că este gata de utilizare de către CocoaPods.pod lib create
va ajuta de fapt să vă dau un început de salt prin furnizarea unei structuri de director standard cu o grămadă de fișiere de boilerplate necesare pentru o podea de înaltă calitate. pod lib create
nu este singura modalitate de a crea pod, dar este cel mai usor.Deschideți o fereastră Terminal, navigați la un director de lucru și executați următoarea comandă:
pod lib crează BlinkingLabel
Testarea este în afara scopului acestui tutorial, dar nu vă lăsa să vă opriți să investitați acest lucru mai departe după acest tutorial. Raportul dintre teste și linii de cod este un factor considerat de indicele de calitate al CocoaPods.
Când schela pentru pod-ul tău este configurată, Xcode îți va deschide noul proiect nou, gata pentru tine să lucrezi la podul tău.
Există trei piese principale de metadate care trebuie să fie incluse în documentația dvs.:
pod lib create
comandă în mod automat popula populația LICENȚĂ cu licența MIT și asta vom folosi pentru acest tutorial. Pentru a obține .podspec în formă, deschideți-o în Xcode. Veți găsi sub ea BlinkingLabel / Metodă Podspec / BlinkingLabel.podspec. Din fericire, CocoaPods a creat un șablon bine populat pentru noi când l-am executat pod lib create
comanda. Sunteți pe punctul de a iubi acest instrument chiar mai mult. pod lib lint
comanda va valida automat .podspec pentru a se asigura că respectă cele mai bune practici. Sau, dacă ești leneș, poți să-l folosești și să îți dai seama de minimul necesar pentru a crea un bun .podspec fişier.
Din linia de comandă, în rădăcina proiectului BlinkingLabel, executați următoarea comandă:
pod lib lint BlinkingLabel.podspec
Aceasta ar trebui să furnizeze următoarele:
> pod lib lint BlinkingLabel.podspec -> BlinkingLabel (0.1.0) - WARN | Rezumatul nu are sens. - WARN | Descrierea nu are sens. - WARN | A apărut o problemă validând URL-ul https://github.com// BlinkingLabel. [!] BlinkingLabel nu a trecut validarea. Puteți folosi opțiunea '--no-clean' pentru a inspecta orice problemă.
Instrumentul vă spune că există trei lucruri care trebuie rezolvate în .podspec fişier:
Iată câteva valori sugerate pentru aceste câmpuri:
UILabel
care oferă o clipire.UILabel
care poate fi pornit și nu mai clipește.Dar așteptați, dacă urmați instrucțiunile pas cu pas, din punct de vedere tehnic, nu există încă un proiect la acea adresă URL. Este timpul să vă împingeți proiectul într-un depozit public pe GitHub. În timp ce există alte opțiuni pentru găzduirea dvs. de păstăi, GitHub este de departe cel mai comun.
Pentru a vă împinge proiectul la GitHub, navigați la GitHub, conectați-vă sau creați un cont și creați-o Depozit nou denumit BlinkingLabel. Apoi, din linia de comandă, executați următoarele comenzi:
adăugați git. git commit -m "Initial Commit" git adăugați la distanță origine https://github.com//BlinkingLabel.git // înlocuiți cu numele de utilizator github.com git push -u master de origine
În acest moment, dacă ați făcut totul corect și lăsați .podspec din nou, trebuie să treacă validarea.
> pod lib lint BlinkingLabel.podspec -> BlinkingLabel (0.1.0) BlinkingLabel a trecut validarea.
Aveți acum shell-ul de bază al unui pod, dar nu face nimic. Este timpul să adăugați câteva funcționalități. Nifty lucru despre proiectul de probă pe care CocoaPods a creat pentru dvs. este că puteți scrie simultan cod atât pentru proiectul pod, cât și pentru exemplul.
Mai întâi, găsiți fișierul ReplaceMe.swift sub Pods / Dezvoltare Pods / BlinkingLabel / Pod / Clase / și ștergeți-l.
Apoi, creați un nou fișier Swift în același director și denumiți-l BlinkingLabel.swift. Înlocuiți conținutul noului fișier cu următoarele:
clasa publică BlinkingLabel: UILabel public func startBlinking () opțiuni: UIViewAnimationOptions = .Repeat | (0.25, întârziere: 0.0, opțiuni: opțiuni, animații: self.alpha = 0, completare: nil) public func stopBlinking () alpha = 1 layer.removeAllAnimations ()
Tocmai ați adăugat funcționalitate la primul dvs. pod, o subclasă UILabel
. Subclasa oferă o metodă de a face ca eticheta să clipească și o altă metodă pentru ao opri să clipească.
Pentru a vă asigura că este ușor pentru alți dezvoltatori să înțeleagă cum să folosească BlinkingLabel
, adăugați un exemplu de cod la proiectul de exemplu. Deschis Indicator luminos / Exemplu pentru BlinkingLabel /ViewController.swift și face ca acesta să arate astfel:
import UIKit import BlinkingLabel clasa ViewController: UIViewController var esteBlinking = false permite să clipeascăLabel = BlinkingLabel (cadru: CGRectMake (10, 20, 200, 30)) override func vizualizareDidLoad () super.viewDidLoad = "Clipez!" (20) view.addSubview (blinkingLabel) clipeșteLabel.startBlinking () esteBlinking = true // Creați un UIButton pentru a comuta întreruperea intermitentăButton = UIButton (cadru: CGRectMake (10, 60, 125, 30) ) toggleButton.setTitle ("Toggle Blinking", forState: .Normal) toggleButton.setTitleColor (UIColor.redColor (), forState: .Normal) toggleButton.addTarget (auto, acțiune: "toggleBlinking", forControlEvents: .TouchUpInside) view.addSubview (toggleButton) func comutaBlinking () if (isBlinking) intermitentLabel.stopBlinking () altceva blinkingLabel.startBlinking () isBlinking =! isBlinking
În acest moment, veți vedea că Xcode se plânge cu multe erori ViewController.swift. Acest lucru se datorează faptului că pentru pod BlinkingLabel
nu este instalat încă în proiectul de exemplu. Pentru a face acest lucru, comutați la linia de comandă și de la rădăcina BlinkingLabel director executați următoarea comandă:
> cd Exemplu> pod install Analiza dependențelor Previzualizarea podspec pentru 'BlinkingLabel' din '... /' Descărcarea dependențelor Instalarea BlinkingLabel 0.1.0 (a fost 0.1.0) Generarea proiectului Pods Integrarea proiectului client
Apoi, reveniți la Xcode și selectați BlinkingLabel-Exemplu țintă și faceți clic pe Alerga buton.
Ar trebui să vedeți ceva de genul:
Atingeți Comutați Blinking pentru a încerca noul dvs. pod. Ultimul pas în crearea dvs. de pod este de a actualiza README.md. În Xcode, deschideți README.md sub BlinkingLabel / Metodata Podspec / README.md. Veți vedea că CocoaPods a adăugat o anumită documentație implicită pentru dvs. Nu te opri acolo, o poți face mai bine. Adăugați o documentație despre pod și includeți o captură de ecran. Amintiți-vă că un README este adesea primul lucru pe care cineva îl va vedea când vă uită la pod. Este important să fie de înaltă calitate. Uită-te la a mea pentru o inspirație.
Acum că aveți un pod complet funcțional care rulează pe mașina dvs. locală, este timpul să faceți BlinkingLabel disponibile pentru alții pentru includerea în proiectele lor. La un nivel înalt, acest lucru se realizează prin obținerea noului dvs. pod în depozitul public Specs.
Specificații repository este locul public pe GitHub unde toate indexurile publice sunt indexate. De fapt, nu sunteți obligat să utilizați GitHub pentru a găzdui codul sursă al podului. De asemenea, puteți utiliza, de exemplu, BitBucket. Specia dvs. de pe pod va fi stocată în depozitul Specs de pe GitHub.
Este foarte simplu să adăugați pod-ul dvs. în magazia Specs. Există trei etape implicate pentru trimiterea contului dvs.. Nu încercați acești pași deoarece am făcut deja publicul BlinkingLabel. Ele sunt doar aici pentru a servi drept referință.
Ca o condiție prealabilă, asigurați-vă că modificările dvs. locale la BlinkingLabel directorul de proiect sunt adăugate la git și împinse la telecomandă.
Etichetați cel mai recente comitet și împingeți-l la telecomandă.
> git tag 0.1.0> git push origine 0.1.0 Total 0 (delta 0), reutilizat 0 (delta 0) Pentru a https://github.com/obuseme/BlinkingLabel.git * [tag noi] 0.1.0 -> 0.1.0
Acest pas indică faptul că etichetați această comitere ca pe o versiune specifică a contului dumneavoastră. Numele etichetei trebuie să se potrivească s.version în tine .podspec fişier. Următorul pas va valida acest lucru.
Apoi, executați următoarea comandă din linia de comandă pentru a verifica dacă totul este configurat corect între locul în care este stocat codul sursă și dvs. .podspec fişier:
pod spec lint BlinkingLabel.podspec
Aceasta ar trebui să furnizeze următoarele:
> pod spec scuze BlinkingLabel.podspec -> BlinkingLabel (0.1.0) Analizat 1 podspec. BlinkingLabel.podspec a trecut validarea.
În cele din urmă, împingeți spec Specificații repository executând următoarea comandă:
pod trunk push BlinkingLabel.podspec
Aceasta ar trebui să furnizeze următoarele:
> push trunk push BlinkingLabel.podspec Actualizare spec repo 'master' Validarea subspec -> BlinkingLabel (0.1.0) Actualizarea spec repo 'master' - Date URL: https://raw.githubusercontent.com/CocoaPods/Specs/f7fb546c4b0f80cab93513fc228b274be6459ad2/Specs /BlinkingLabel/0.1.0/BlinkingLabel.podspec.json - Mesaje de jurnal: - 29 iunie, 20:40: Apăsați pentru 'BlinkingLabel 0.1.0' inițiat. - 29 iunie, 20:40: Apăsați pentru "BlinkingLabel 0.1.0" a fost împins (1.701885099 s).
Există literalmente mii de păstăi disponibile în Specificații repertoriu. Atunci când navigați pentru un pod, nu este ușor să determinați calitatea unui pod. Când introduceți codul terț în proiectul dvs., doriți să aveți un nivel înalt de încredere în codul pe care îl veți expedia clienților. Din punct de vedere istoric, un dezvoltator a trebuit să interpreteze propria calitate a unui pod aleatoriu pe care l-au găsit.
Începând cu iunie 2015, CocoaPods a oferit un instrument numit Indexul Calității, care oferă o analiză sumară a calității unui anumit document bazat pe anumite valori. Metri detaliate și cele mai actualizate pot fi găsite pe GitHub.
Pe scurt, aici sunt lucruri care pot ajuta la îmbunătățirea Indicele de calitate din podul tău:
Indicele de calitate a unui pod poate fie să meargă în sus, fie în jos, în funcție de cât de bine un anumit proiect este în conformitate cu aceste valori.
Crearea de păstăi pentru alți utilizatori este distractivă și o modalitate bună de a contribui înapoi la comunitate. Acest tutorial v-a arătat ce piese de cod face pentru păstăi bune, cum să creați primul dvs. pod, cum să-l faceți public, și ce tehnici pot face pentru un pod mare.
Acum aveți cunoștințele necesare pentru a crea primul dvs. pod. Mi-ar plăcea să văd ce păstăi aveți în vedere să construiți. Vă rugăm să vă întoarceți și să abandonați un link spre pod dumneavoastră odată ce a fost creat.