CocoaPods è un ottimo strumento per aiutare con la gestione delle dipendenze durante la creazione di applicazioni iOS o OS X. Essendo stato in giro e ben supportato per anni, la maturità di CocoaPods è evidente. Mentre è molto comune usare CocoaPods nei progetti software iOS o OS X, è meno comune creare effettivamente un pod da utilizzare. Questo tutorial ti guiderà attraverso la creazione del tuo primo pod e ti darà alcuni suggerimenti su ciò che caratterizza un ottimo pod.
Ovviamente, per creare un pod, è necessario installare CocoaPods. È disponibile come gemma Ruby da RubyGems. Per installare CocoaPods, esegui i seguenti comandi dalla riga di comando:
gemma installa cocoapods
Questo tutorial è stato scritto contro CocoaPods 0.37.2.
Da un livello elevato, ci sono cinque passaggi coinvolti per creare il tuo primo pod:
pod lib
comando per creare la struttura della directory scheletro e i file associati per il tuo pod.Podstorming non è in realtà una parola, ma è il momento di fare brainstorming per la funzionalità del tuo primo pod. Ci sono oltre 10.000 pod pubblicamente disponibili indicizzati nel repository ufficiale delle Spec. Le persone hanno trovato tutti i tipi di cose da rendere disponibili come pod. Ecco alcuni suggerimenti per aiutarti a iniziare il podstorming, err, intendo il brainstorming:
UIView
? Un codice di utilità specifico come questo è un ottimo esempio di ciò che può essere trasformato in un pod. Spesso è già ben fattorizzato e disaccoppiato da altre basi di codice esistenti. Questo tutorial ti guiderà attraverso la creazione di un pod che ti consenta di creare un UILabel
che lampeggia. Lo chiameremo BlinkingLabel.
È ora di approfondire. Ora che conosci la funzionalità che il tuo pod sta per fornire, è ora di crearlo. Il pod lib
comando è uno strumento importante che utilizzeremo per due scopi durante il processo di creazione.
pod lib lint
confermerà che tutto è a posto con il pod e che è pronto per essere utilizzato da CocoaPods.creazione di pod lib
ti aiuterà a dare il via all'inizio fornendo una struttura di directory standard con una serie di file standard necessari per un pod di alta qualità. creazione di pod lib
non è l'unico modo per creare il tuo pod, ma è il più semplice.Aprire una finestra di Terminale, navigare in una directory di lavoro ed eseguire il seguente comando:
pod lib crea BlinkingLabel
I test non rientrano nell'ambito di questo tutorial, ma non lasciare che ti impedisca di indagare ulteriormente dopo questo tutorial. Il rapporto tra test e linee di codice è un fattore considerato dall'Indice Qualità CocoaPods.
Quando viene installata l'impalcatura per il tuo pod, Xcode aprirà il tuo nuovo progetto pronto per il tuo lavoro sul tuo pod.
Ci sono tre parti principali dei metadati che devono essere inclusi nel tuo pod:
creazione di pod lib
comando popola automaticamente il file LICENSE con la licenza MIT e questo è ciò che useremo per questo tutorial. Prendere il .podspec in forma, aprilo in Xcode. Lo troverai sotto BlinkingLabel / Podspec Metadata / BlinkingLabel.podspec. Fortunatamente, CocoaPods ha creato un modello ben popolato per noi quando abbiamo eseguito il creazione di pod lib
comando. Stai per amare ancora di più questo strumento. Il pod lib lint
comando convaliderà automaticamente il .podspec file per assicurarsi che sia conforme alle migliori pratiche. Oppure, se sei pigro, puoi anche usarlo per capire il minimo che devi fare per creare un file corretto .podspec file.
Dalla riga di comando, nella radice del progetto BlinkingLabel, eseguire il seguente comando:
pod lib lint BlinkingLabel.podspec
Questo dovrebbe produrre quanto segue:
> pod lib lint BlinkingLabel.podspec -> BlinkingLabel (0.1.0) - WARN | Il riassunto non è significativo. - WARN | La descrizione non è significativa. - WARN | Si è verificato un problema durante la convalida dell'URL https://github.com// BlinkingLabel. [!] BlinkingLabel non ha superato la convalida. Puoi usare l'opzione '--no-clean' per ispezionare qualsiasi problema.
Lo strumento ti dice che ci sono tre cose che devono essere risolti nel .podspec file:
Ecco alcuni valori suggeriti per questi campi:
UILabel
che fornisce un lampeggio.UILabel
che può essere avviato e smesso di lampeggiare.Ma aspetta, se hai seguito le istruzioni passo dopo passo, tecnicamente non c'è ancora un progetto a quell'URL. È ora di inviare il tuo progetto a un repository pubblico su GitHub. Mentre ci sono altre opzioni per ospitare i tuoi pod, GitHub è di gran lunga il più comune.
Per inviare il tuo progetto a GitHub, accedi a GitHub, accedi o crea un account e crea un Nuovo repository chiamato BlinkingLabel. Quindi, dalla riga di comando, eseguire i seguenti comandi:
aggiungi git. git commit -m "Initial Commit" git remote aggiungi origine https://github.com//BlinkingLabel.git // replace con il tuo nome utente github.com git push -u origine master
A questo punto, se hai fatto tutto correttamente e lanci il .podspec file di nuovo, dovrebbe passare la convalida.
> pod lib lint BlinkingLabel.podspec -> BlinkingLabel (0.1.0) BlinkingLabel ha superato la convalida.
Ora hai la shell di base di un pod, ma non fa nulla. È ora di aggiungere alcune funzionalità. La cosa bella del progetto di esempio che CocoaPods ha creato per te è che puoi scrivere contemporaneamente il codice sia per il pod che per il progetto di esempio.
Innanzitutto, trova il file ReplaceMe.swift sotto Baccelli / Cialde / BlinkingLabel / Pod / Classes / ed eliminalo.
Quindi, crea un nuovo file Swift nella stessa directory e chiamalo BlinkingLabel.swift. Sostituisci il contenuto del nuovo file con il seguente:
public class BlinkingLabel: UILabel public func startBlinking () let options: UIViewAnimationOptions = .Repeat | .Autoreverse UIView.animateWithDuration (0.25, delay: 0.0, opzioni: opzioni, animazioni: self.alpha = 0, completamento: nil) public func stopBlinking () alpha = 1 layer.removeAllAnimations ()
Hai appena aggiunto funzionalità al tuo primo pod, una sottoclasse attiva UILabel
. La sottoclasse fornisce un metodo per far lampeggiare l'etichetta e un altro metodo per impedirne il lampeggiamento.
Per garantire che sia facile per gli altri sviluppatori capire come utilizzare BlinkingLabel
, aggiungi del codice di esempio al progetto di esempio. Aperto BlinkingLabel / Esempio per BlinkingLabel /ViewController.swift e fai in modo che assomigli a questo:
import UIKit import Classe BlinkingLabel ViewController: UIViewController var isBlinking = false let blinkingLabel = BlinkingLabel (frame: CGRectMake (10, 20, 200, 30)) override func viewDidLoad () super.viewDidLoad () // Imposta BlinkingLabel blinkingLabel.text = "Lampeggio!" blinkingLabel.font = UIFont.systemFontOfSize (20) view.addSubview (blinkingLabel) blinkingLabel.startBlinking () isBlinking = true // Crea un UIButton per alternare il blinking lascia toggleButton = UIButton (frame: CGRectMake (10, 60, 125, 30) ) toggleButton.setTitle ("Toggle Blinking", forState: .Normal) toggleButton.setTitleColor (UIColor.redColor (), forState: .Normal) toggleButton.addTarget (self, action: "toggleBlinking", forControlEvents: .TouchUpInside) view.addSubview (toggleButton) func toggleBlinking () if (isBlinking) blinkingLabel.stopBlinking () else blinkingLabel.startBlinking () isBlinking =! isBlinking
A questo punto, vedrai Xcode lamentarsi di un sacco di errori in ViewController.swift. Questo perché il pod per BlinkingLabel
non è ancora installato sul progetto di esempio. Per farlo, passa alla riga di comando e dalla radice di BlinkingLabel directory esegue il seguente comando:
> cd Esempio> pod install Analisi delle dipendenze Recupero di podspec per 'BlinkingLabel' da '... /' Download delle dipendenze Installazione di BlinkingLabel 0.1.0 (era 0.1.0) Progetto di generazione di pod Integrazione del progetto client
Quindi, tornare a Xcode e selezionare il BlinkingLabel-Example bersaglio e clicca il Correre pulsante.
Dovresti vedere qualcosa di simile a questo:
Rubinetto Commuta lampeggiante per provare il tuo nuovo pod. Il passaggio finale nella creazione del pod è l'aggiornamento di README.md. In Xcode, aperto README.md sotto Metadati di BlinkingLabel / Podspec / README.md. Vedrai che CocoaPods ha aggiunto della documentazione predefinita per te. Non fermarti qui, puoi renderlo migliore. Aggiungi della documentazione sul pod e includi uno screenshot. Ricorda che un README è spesso la prima cosa che qualcuno vedrà guardando il tuo pod. È importante che sia di alta qualità. Dai un'occhiata al mio per avere qualche ispirazione.
Ora che hai un pod pienamente funzionante in esecuzione sul tuo computer locale, è il momento di farlo BlinkingLabel disponibile per gli altri per l'inclusione nei loro progetti. Ad un livello elevato, ciò si ottiene portando il nuovo pod nel repository pubblico delle Spec.
Il Specifiche repository è il luogo pubblico su GitHub in cui tutti i pod pubblici sono indicizzati. In realtà non sei obbligato a usare GitHub per ospitare il codice sorgente del tuo pod. Ad esempio, puoi anche usare BitBucket. Tuttavia, le specifiche del tuo pod verranno archiviate nel repository Specifiche su GitHub.
È molto semplice aggiungere il pod al repository delle specifiche. Sono previsti tre passaggi per l'invio del pod. Non provare questi passaggi perché ho già reso pubblico BlinkingLabel. Sono qui solo per servire come riferimento.
Come prerequisito, assicurati che le tue modifiche locali a BlinkingLabel la directory del progetto viene aggiunta a git e inviata al telecomando.
Contrassegna il tuo commit più recente e spingilo al telecomando.
> git tag 0.1.0> git push origine 0.1.0 Totale 0 (delta 0), riutilizzato 0 (delta 0) a https://github.com/obuseme/BlinkingLabel.git * [nuovo tag] 0.1.0 -> 0.1.0
Questo passaggio indica che stai contrassegnando questo commit come una versione specifica del tuo pod. Il nome del tag deve corrispondere s.version nel tuo .podspec file. Il prossimo passo lo convaliderà.
Successivamente, esegui il seguente comando dalla riga di comando per verificare che tutto sia configurato correttamente tra il punto in cui è memorizzato il tuo codice sorgente e il tuo .podspec file:
pod spec lint BlinkingLabel.podspec
Questo dovrebbe produrre quanto segue:
> pod spec lint BlinkingLabel.podspec -> BlinkingLabel (0.1.0) Analizzato 1 podspec. BlinkingLabel.podspec ha superato la convalida.
Infine, spingere le specifiche al Specifiche repository eseguendo il seguente comando:
pod trunk push BlinkingLabel.podspec
Questo dovrebbe produrre quanto segue:
> pod trunk push BlinkingLabel.podspec Aggiornamento spec repo master 'Convalida podspec -> BlinkingLabel (0.1.0) Aggiornamento spec repo' master '- URL dati: https://raw.githubusercontent.com/CocoaPods/Specs/f7fb546c4b0f80cab93513fc228b274be6459ad2/Specs /BlinkingLabel/0.1.0/BlinkingLabel.podspec.json - Registra messaggi: - 29 giugno, 20:40: Viene avviata la selezione di "BlinkingLabel 0.1.0". - 29 giugno, 20:40: è stato premuto Push per "BlinkingLabel 0.1.0" (1.701885099 s).
Ci sono letteralmente migliaia di pod disponibili nel Specifiche repository. Quando si cerca un pod, non è facile determinare la qualità di un pod. Quando inserisci il codice di terze parti nel tuo progetto, vuoi avere un alto livello di fiducia nel codice che spedirai ai clienti. Storicamente, uno sviluppatore ha dovuto fare la propria interpretazione della qualità di un pod casuale che hanno trovato.
A partire da giugno 2015, CocoaPods ha fornito uno strumento chiamato Indice della qualità che fornisce un giudizio sintetico sulla qualità di un dato pod in base a determinate metriche. Le metriche complete e aggiornate possono essere trovate su GitHub.
In sintesi, qui ci sono cose che possono aiutare a migliorare il Indice di qualità del tuo pod:
Il Indice di qualità di un pod può aumentare o diminuire in base al grado di conformità di un determinato progetto a questi parametri.
Creare pod per gli altri è divertente e un buon modo per contribuire alla comunità. Questo tutorial ti ha mostrato quali parti di codice sono utili per i buoni pod, come creare il tuo primo pod, come renderlo pubblicamente disponibile e quali tecniche possono fare per un ottimo pod.
Ora hai le conoscenze per creare il tuo primo pod. Mi piacerebbe sapere quali baccelli hai in mente per costruire. Torna indietro e rilascia un link al tuo pod una volta creato.