Crearea primului tău CocoaPod

Introducere

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.

1. Instalați CocoaPods

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.

2. Prezentare generală pas cu pas

De la un nivel ridicat, există cinci etape implicate în crearea primului dvs. par:

  1. Determinați ideea pentru primul dvs. pod.
  2. Folosește pod lib comandă pentru a crea structura directorului scheletului și fișierele asociate pentru pod.
  3. Actualizați metadatele pentru pod, cum ar fi informațiile despre licență și versiune.
  4. Adăugați codul pentru pod. Aceasta include atât codul pentru sine, cât și orice cod care ar fi necesar pentru un exemplu de proiect.
  5. Faceți publicul disponibil.

3. Podstorming

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:

  • Codul utilitatii: Aveți o abordare unică asupra modului de a efectua anumite manipulări de șir? Aveți o subclasă preferată pe care ați scris-o pentru a efectua o animație slick pe o 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.
  • Pachete terțe părți: Ați creat un pachet în jurul unui alt API terță parte? Aveți o aplicație pentru care doriți să furnizați cârlige pentru alte aplicații care să se integreze, cum ar fi pentru autentificare? Compania dvs. furnizează un API web pentru resurse bazate pe web, care ar fi util pentru alte aplicații iOS cu care să puteți integra cu ușurință? Dacă da, atunci un pod are sens, deoarece este o modalitate ușoară ca alte aplicații iOS să se integreze cu ușurință în aceste pachete.
  • UI Componente: Ați creat un widget UI fără buton pe care doriți ca alte aplicații să poată fi utilizate? Acestea sunt păstăile mele preferate. Este minunat să puteți adăuga o componentă UI complexă și încântătoare la o aplicație prin includerea pur și simplu a unei dependențe.
  • Orice doriți ca ceilalți să poată utiliza. Ați creat ceva care credeți că alții ar fi util? Dacă este așa, transformați-l într-un pod, astfel încât alții să-l poată folosi cu ușurință.

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.

4. Creați proiectul

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.

  1. pod lib lint va valida că totul este în regulă cu podul și că este gata de utilizare de către CocoaPods.
  2. 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
  • Când vi se întreabă ce limbă doriți să utilizați, răspundeți Rapid.
  • La întrebarea dacă doriți să includeți o aplicație demo, răspundeți da.
  • Atunci când se stabilește dacă se creează un proiect eșantion sau nu, echipa CocoaPods sugerează să te întrebi: "Ar trebui acest pod să includă o captură de ecran?" Dacă da, atunci este o idee bună să includeți un exemplu de proiect.
  • Când ați întrebat ce cadru de testare să utilizați, răspundeți Nici unul.
  • Răspuns Nu la solicitarea de testare bazată pe vizualizare.

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.

5. Actualizarea metadatelor pentru Pod

Există trei piese principale de metadate care trebuie să fie incluse în documentația dvs.:

  • .podspec: Acest fișier descrie informații despre această versiune specifică a contului dumneavoastră. Numărul dvs. de pod, numărul versiunii, pagina de pornire și numele autorului sunt câteva exemple despre ceea ce este inclus. Verificați pagina de referință oficială pentru mai multe informații.
  • CITEȘTE-MĂ: Dacă ați folosit GitHub înainte, știți cât de important este README. Proiectul README, scris în Markdown, este afișat pe pagina de pornire a unui proiect pe GitHub. O README corectă poate fi diferența dintre cineva care utilizează proiectul dvs. sau nu. În plus, este un factor care contribuie la un nivel ridicat Indicele de calitate al cocoafei de asemenea.
  • LICENȚĂ: Pentru a-ți accepta pod-ul în repozitoriul Spec, pod-ul tău trebuie să includă o licență. 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 createcomanda. 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:

  • adăugați mai multe informații la rezumat
  • adăugați o descriere corectă
  • specificați o adresă URL pentru pagina de pornire a podului

Iată câteva valori sugerate pentru aceste câmpuri:

  • s.summary: O subclasă pe UILabel care oferă o clipire.
  • s.description: Acest CocoaPod oferă posibilitatea de a utiliza un UILabel care poate fi pornit și nu mai clipește.
  • s.homepage: https://github.com/obuseme/BlinkingLabel (înlocuiți obuseme cu numele dvs. de utilizator GitHub)

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.

6. Adăugarea codului

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.

7. Efectuarea dvs. Pod disponibile

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ă.

Pasul 1: Etichetarea

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.

Pasul 2: Validarea

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.

Pasul 3: Deplasarea la depozitul de specificații

Î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).

8. Ce face un pod mare?

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:

  • popularitatea proiectului măsurată prin stele, furculițe, abonați și contribuitori
  • cod
  • de înaltă calitate README
  • scrise în Swift
  • utilizarea licenței GPL
  • nu multe probleme deschise
  • codul de calitate asigurat prin teste automate
  • măriți dimensiunea instalării prin minimizarea activelor incluse
  • clase mai mici, bine compuse

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.

Concluzie

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.

Cod