Erstellen Sie Ihren ersten CocoaPod
() translation by (you can also view the original English article)
Einführung
CocoaPods ist ein großartiges Werkzeug, um beim Erstellen von iOS- oder OS X-Anwendungen mit dem Abhängigkeitsmanagement zu helfen. Die Reife von CocoaPods ist seit Jahren vorhanden und gut unterstützt. Obwohl CocoaPods in Ihren iOS- oder OS X-Softwareprojekten häufig verwendet wird, ist es weniger üblich, einen Pod zu erstellen, den andere Benutzer verwenden können. Dieses Tutorial führt Sie durch die Erstellung Ihres ersten Pods und gibt Ihnen einige Tipps, was einen großen Pod ausmacht.
1. Installieren Sie CocoaPods
Um einen Pod zu erstellen, müssen Sie natürlich CocoaPods installieren. Es ist als Ruby Juwel von RubyGems erhältlich. Um CocoaPods zu installieren, führen Sie die folgenden Befehle über die Befehlszeile aus:
1 |
gem install cocoapods
|
Dieses Tutorial wurde gegen CocoaPods 0.37.2 geschrieben.
2. Schritt für Schritt Überblick
Auf einer hohen Ebene sind fünf Schritte erforderlich, um den ersten Pod zu erstellen:
- Bestimmen Sie die Idee für Ihren ersten Pod.
- Verwenden Sie den Befehl
pod lib
, um die Skelettverzeichnisstruktur und die zugehörigen Dateien für Ihren Pod zu erstellen. - Aktualisieren Sie die Metadaten Ihres Pods, z. B. die Lizenz- und Versionsinformationen.
- Fügen Sie den Code für Ihren Pod hinzu. Dies umfasst sowohl den Code für den Pod selbst als auch den Code, der für ein Beispielprojekt benötigt würde.
- Stellen Sie den Pod öffentlich zur Verfügung.
3. Podstorming
Podstorming ist eigentlich kein Wort, aber es ist Zeit, die Funktionalität für Ihren ersten Pod zu entwickeln. Es gibt über 10.000 öffentlich verfügbare Pods, die im offiziellen Specs-Repository indiziert sind. Die Leute haben alle möglichen Dinge gefunden, die sie als Pod zur Verfügung stellen können. Hier sind einige Vorschläge, die dir helfen sollen, Podstorming zu starten, ähm, ich meine Brainstorming:
- Utility Code: Haben Sie eine einzigartige Erfahrung damit, bestimmte String-Manipulationen durchzuführen? Haben Sie eine Lieblingsunterklasse, die Sie für die Durchführung einer glatten Animation auf einer
UIView
geschrieben haben? Ein spezieller Utility-Code wie dieser ist ein großartiges Beispiel dafür, was zu einem Pod werden kann. Es ist oft bereits gut durchdacht und von anderen existierenden Codebasen abgekoppelt. - Third Party Packages: Haben Sie einen Wrapper für eine andere API von Drittanbietern erstellt? Verfügen Sie über eine App, für die Sie Hooks für andere Apps bereitstellen möchten, z. B. für die Authentifizierung? Bietet Ihr Unternehmen eine Web-API für webbasierte Ressourcen an, die für andere iOS-Apps, in die sie leicht integriert werden können, nützlich wäre? Wenn dies der Fall ist, ist ein Pod sinnvoll, da andere iOS-Anwendungen problemlos in diese Pakete integriert werden können.
- UI-Komponenten: Haben Sie ein butterweiches UI-Widget erstellt, das andere Anwendungen verwenden könnten? Dies sind meine Lieblingsschoten. Es ist großartig, einer Anwendung eine komplizierte und reizvolle UI-Komponente hinzufügen zu können, indem Sie einfach eine Pod-Abhängigkeit einfügen.
- Alles, was andere gerne nutzen könnten. Hast du etwas erschaffen, von dem du denkst, dass es andere nützlich finden würden? Wenn dies der Fall ist, verwandeln Sie es in einen Pod, damit andere es problemlos verwenden können.
Dieses Tutorial führt Sie durch die Erstellung eines Pods, mit dem Sie ein blinkendes UILabel
erstellen können. Wir werden es BlinkingLabel nennen.
4. Erstellen Sie das Projekt
Zeit zu graben. Jetzt wissen Sie, welche Funktionalität Ihr Pod bietet, und es ist an der Zeit, sie zu erstellen. Der Befehl pod lib
ist ein wichtiges Werkzeug, das wir während des Erstellungsprozesses für zwei Zwecke verwenden.
-
pod lib lint
wird bestätigen, dass alles in Ordnung mit Ihrem Pod ist und dass es bereit ist, von CocoaPods verwendet zu werden. -
pod lib create
wird Ihnen dabei helfen, einen Start zu starten, indem Sie eine Standardverzeichnisstruktur mit einer Reihe von Vorlagendateien bereitstellen, die für einen hochwertigen Pod erforderlich sind.pod lib create
ist nicht die einzige Möglichkeit, deinen Pod zu erstellen, aber es ist am einfachsten.
Öffnen Sie ein Terminalfenster, navigieren Sie zu einem Arbeitsverzeichnis und führen Sie den folgenden Befehl aus:
1 |
pod lib create BlinkingLabel |
- Wenn Sie gefragt werden, welche Sprache Sie verwenden möchten, antworten Sie auf Swift.
- Wenn Sie gefragt werden, ob Sie eine Demo-Anwendung hinzufügen möchten, antworten Sie mit Ja.
- Bei der Entscheidung, ob ein Beispielprojekt erstellt werden soll, schlägt das CocoaPods-Team vor, sich selbst zu fragen: "Sollte dieser Pod einen Screenshot enthalten?" Wenn ja, dann ist es eine gute Idee, ein Beispielprojekt einzuschließen.
- Wenn Sie gefragt werden, welches Test-Framework verwendet werden soll, antworten Sie auf Keine.
- Beantworten Sie die Eingabeaufforderung zum viewbasierten Testen.
Testen liegt außerhalb des Rahmens dieses Tutorials, aber lassen Sie sich nicht davon abhalten, dies nach diesem Tutorial weiter zu untersuchen. Das Verhältnis von Tests zu Codezeilen ist ein Faktor, der vom CocoaPods Quality Index berücksichtigt wird.
Wenn das Gerüst für Ihren Pod eingerichtet ist, öffnet Xcode Ihr brandneues Projekt, damit Sie mit Ihrem Pod arbeiten können.
5. Aktualisieren Sie die Metadaten Ihres Pods
Es gibt drei Hauptbestandteile von Metadaten, die in deinen Pod aufgenommen werden müssen:
- .podspec: Diese Datei beschreibt Informationen zu dieser spezifischen Version Ihres Pods. Ihre Pods, Versionsnummer, Homepage und Autorennamen sind einige Beispiele für das, was enthalten ist. Weitere Informationen finden Sie auf der offiziellen Referenzseite.
- README: Wenn Sie bereits GitHub benutzt haben, wissen Sie, wie wichtig eine README ist. Die README eines Projekts, geschrieben in Markdown, wird auf der Homepage eines Projekts auf GitHub angezeigt. Eine richtige README kann der Unterschied zwischen jemandem sein, der dein Projekt benutzt oder nicht. Darüber hinaus trägt es zu einem hohen CocoaPods Quality Index bei.
- LIZENZ: Damit Ihr Pod im Spec-Repository akzeptiert wird, muss Ihr Pod eine Lizenz enthalten. Der
pod lib create
-Befehl füllt die LICENSE-Datei automatisch mit der MIT-Lizenz, und das werden wir für dieses Tutorial verwenden.
Um die .podspec in Form zu bringen, öffnen Sie sie in Xcode. Sie finden es unter BlinkingLabel/Podspec Metadata/BlinkingLabel.podspec. Glücklicherweise hat CocoaPods eine gut bestückte Vorlage für uns erstellt, als wir den Befehl pod lib create
ausgeführt haben. Du wirst dieses Tool noch mehr lieben. Der Befehl pod lib lint
überprüft automatisch die Datei .podspec, um sicherzustellen, dass sie den Best Practices entspricht. Oder, wenn Sie faul sind, können Sie es auch verwenden, um herauszufinden, das Minimum, das Sie tun müssen, um eine richtige .podspec-Datei zu erstellen.
Führen Sie in der Befehlszeile im Stammverzeichnis des BlinkingLabel-Projekts den folgenden Befehl aus:
1 |
pod lib lint BlinkingLabel.podspec |
Dies sollte folgendes ausgeben:
1 |
> pod lib lint BlinkingLabel.podspec
|
2 |
|
3 |
-> BlinkingLabel (0.1.0) |
4 |
- WARN | The summary is not meaningful. |
5 |
- WARN | The description is not meaningful. |
6 |
- WARN | There was a problem validating the URL https://github.com/<GITHUB_USERNAME>/BlinkingLabel. |
7 |
|
8 |
[!] BlinkingLabel did not pass validation.
|
9 |
You can use the `--no-clean` option to inspect any issue. |
Das Tool teilt Ihnen mit, dass drei Dinge in der .podspec-Datei behoben werden müssen:
- Fügen Sie weitere Informationen zur Zusammenfassung hinzu
- fügen Sie eine korrekte Beschreibung hinzu
- Geben Sie eine URL für die Startseite des Pods an
Hier sind einige empfohlene Werte für diese Felder:
- s.summary: Eine Unterklasse auf
UILabel
, die ein Blinzeln liefert. - s.description: Dieser CocoaPod bietet die Möglichkeit, ein
UILabel
zu verwenden, das gestartet und gestoppt werden kann. - s.homepage: https://github.com/obuseme/BlinkingLabel (Ersetzen Sie Obuseme durch Ihren GitHub Benutzernamen)
Aber warten Sie, wenn Sie die Anweisungen Schritt für Schritt befolgt haben, gibt es technisch gesehen noch kein Projekt unter dieser URL. Es ist Zeit, Ihr Projekt zu einem öffentlichen Repository auf GitHub zu bringen. Während es andere Möglichkeiten gibt, Ihre Pods zu hosten, ist GitHub bei weitem am häufigsten.
Um Ihr Projekt auf GitHub zu verschieben, navigieren Sie zu GitHub, melden Sie sich an oder erstellen Sie ein Konto und erstellen Sie ein neues Repository namens BlinkingLabel. Führen Sie dann über die Befehlszeile die folgenden Befehle aus:
1 |
git add .
|
2 |
git commit -m “Initial Commit" |
3 |
git remote add origin https://github.com/<GITHUB_USERNAME>/BlinkingLabel.git // replace <GITHUB_USERNAME> with your github.com username
|
4 |
git push -u origin master
|
An diesem Punkt, wenn Sie alles richtig gemacht und die .podspec-Datei erneut gefunden haben, sollte es die Validierung bestehen.
1 |
> pod lib lint BlinkingLabel.podspec
|
2 |
|
3 |
-> BlinkingLabel (0.1.0) |
4 |
|
5 |
BlinkingLabel passed validation. |
6. Code hinzufügen
Sie haben jetzt die grundlegende Shell eines Pods, aber es tut nichts. Es ist Zeit, einige Funktionen hinzuzufügen. Die nette Sache an dem Beispielprojekt, das CocoaPods für Sie erstellt hat, ist, dass Sie gleichzeitig Code für den Pod und das Beispielprojekt schreiben können.
Suchen Sie zuerst die Datei ReplaceMe.swift unter Pods / Development Pods / BlinkingLabel / Pod / Classes / und löschen Sie sie.



Erstellen Sie als Nächstes eine neue Swift-Datei im selben Verzeichnis, und nennen Sie sie BlinkingLabel.swift. Ersetzen Sie den Inhalt der neuen Datei durch Folgendes:
1 |
public class BlinkingLabel : UILabel { |
2 |
public func startBlinking() { |
3 |
let options : UIViewAnimationOptions = .Repeat | .Autoreverse |
4 |
UIView.animateWithDuration(0.25, delay:0.0, options:options, animations: { |
5 |
self.alpha = 0 |
6 |
}, completion: nil) |
7 |
}
|
8 |
|
9 |
public func stopBlinking() { |
10 |
alpha = 1 |
11 |
layer.removeAllAnimations() |
12 |
}
|
13 |
}
|
Sie haben Ihrem ersten Pod gerade eine Funktionalität hinzugefügt, eine Unterklasse auf UILabel
. Die Unterklasse bietet eine Methode, um das Etikett blinken zu lassen, und eine andere Methode, um zu verhindern, dass es blinkt.
Um sicherzustellen, dass andere Entwickler die Verwendung von BlinkingLabel
verstehen, fügen Sie dem Beispielprojekt Beispielcode hinzu. Öffne BlinkingLabel / Beispiel für BlinkingLabel / ViewController.swift und lass es so aussehen:
1 |
import UIKit |
2 |
import BlinkingLabel |
3 |
|
4 |
class ViewController: UIViewController { |
5 |
|
6 |
var isBlinking = false |
7 |
let blinkingLabel = BlinkingLabel(frame: CGRectMake(10, 20, 200, 30)) |
8 |
|
9 |
override func viewDidLoad() { |
10 |
super.viewDidLoad() |
11 |
|
12 |
// Setup the BlinkingLabel
|
13 |
blinkingLabel.text = "I blink!" |
14 |
blinkingLabel.font = UIFont.systemFontOfSize(20) |
15 |
view.addSubview(blinkingLabel) |
16 |
blinkingLabel.startBlinking() |
17 |
isBlinking = true |
18 |
|
19 |
// Create a UIButton to toggle the blinking
|
20 |
let toggleButton = UIButton(frame: CGRectMake(10, 60, 125, 30)) |
21 |
toggleButton.setTitle("Toggle Blinking", forState: .Normal) |
22 |
toggleButton.setTitleColor(UIColor.redColor(), forState: .Normal) |
23 |
toggleButton.addTarget(self, action: "toggleBlinking", forControlEvents: .TouchUpInside) |
24 |
view.addSubview(toggleButton) |
25 |
}
|
26 |
|
27 |
func toggleBlinking() { |
28 |
if (isBlinking) { |
29 |
blinkingLabel.stopBlinking() |
30 |
} else { |
31 |
blinkingLabel.startBlinking() |
32 |
}
|
33 |
isBlinking = !isBlinking |
34 |
}
|
35 |
|
36 |
}
|
An dieser Stelle wird Xcode mit vielen Fehlern in ViewController.swift klagt. Dies liegt daran, dass der Pod für BlinkingLabel
noch nicht im Beispielprojekt installiert ist. Wechseln Sie dazu in die Befehlszeile und führen Sie im Stammverzeichnis des BlinkingLabel-Verzeichnisses den folgenden Befehl aus:
1 |
> cd Example |
2 |
> pod install |
3 |
Analyzing dependencies |
4 |
Fetching podspec for `BlinkingLabel` from `../` |
5 |
Downloading dependencies |
6 |
Installing BlinkingLabel 0.1.0 (was 0.1.0) |
7 |
Generating Pods project |
8 |
Integrating client project |
Als nächstes wechseln Sie zurück zu Xcode und wählen Sie das BlinkingLabel-Beispiel-Ziel und klicken Sie auf Ausführen.
Sie sollten so etwas sehen:



Tippe auf Blinken Blinken, um deinen neuen Pod auszuprobieren. Der letzte Schritt beim Erstellen Ihres Pods ist das Aktualisieren der README.md. Öffnen Sie in Xcode README.md unter BlinkingLabel / Podspec Metadata / README.md. Sie werden sehen, dass CocoaPods einige Standarddokumentationen für Sie hinzugefügt hat. Hör nicht auf, du kannst es besser machen. Fügen Sie eine Dokumentation über den Pod hinzu und fügen Sie einen Screenshot hinzu. Denken Sie daran, dass eine README oft das erste ist, was jemand sieht, wenn er auf Ihren Pod schaut. Es ist wichtig, dass es von hoher Qualität ist. Schau dir meine Inspiration an.
7. Machen Sie Ihren Pod verfügbar
Nachdem Sie nun einen voll funktionsfähigen Pod auf Ihrem lokalen Rechner installiert haben, ist es an der Zeit, BlinkingLabel für andere Benutzer verfügbar zu machen. Auf einer hohen Ebene wird dies erreicht, indem Sie Ihren neuen Pod in das öffentliche Specs-Repository übernehmen.
Das Specs-Repository ist der öffentliche Ort auf GitHub, wo alle öffentlichen Pods indexiert sind. Sie sind nicht gezwungen, GitHub als Host für den Quellcode Ihres Pods zu verwenden. Sie können zum Beispiel auch BitBucket verwenden. Die Spezifikationen Ihres Pods werden jedoch im Specs-Repository auf GitHub gespeichert.
Es ist sehr einfach, Ihren Pod dem Specs-Repository hinzuzufügen. Es gibt drei Schritte zum Senden Ihres Pods. Versuche diese Schritte nicht, da ich BlinkingLabel bereits öffentlich gemacht habe. Sie dienen nur als Referenz.
Stellen Sie als Voraussetzung sicher, dass Ihre lokalen Änderungen im BlinkingLabel-Projektverzeichnis zu git hinzugefügt und an die entfernte Datenbank übertragen werden.
Schritt 1: Markieren
Kennzeichnen Sie Ihr aktuellstes Commit und schieben Sie es auf die Fernbedienung.
1 |
> git tag 0.1.0
|
2 |
> git push origin 0.1.0
|
3 |
Total 0 (delta 0), reused 0 (delta 0) |
4 |
To https://github.com/obuseme/BlinkingLabel.git |
5 |
* [new tag] 0.1.0 -> 0.1.0 |
Dieser Schritt zeigt an, dass Sie dieses Commit als eine bestimmte Version Ihres Pods markieren. Der Name des Tags sollte mit der s.version in Ihrer .podspec-Datei übereinstimmen. Der nächste Schritt wird dies bestätigen.
Schritt 2: Validierung
Führen Sie als Nächstes den folgenden Befehl über die Befehlszeile aus, um zu überprüfen, ob zwischen dem Quellcode und der Datei .podspec alles korrekt konfiguriert ist:
1 |
pod spec lint BlinkingLabel.podspec |
Dies sollte folgendes ausgeben:
1 |
> pod spec lint BlinkingLabel.podspec
|
2 |
-> BlinkingLabel (0.1.0) |
3 |
Analyzed 1 podspec. |
4 |
BlinkingLabel.podspec passed validation. |
Schritt 3: Pushing to Specs Repository
Übertragen Sie die Spezifikation schließlich an das Specs-Repository, indem Sie den folgenden Befehl ausführen:
1 |
pod trunk push BlinkingLabel.podspec |
Dies sollte folgendes ausgeben:
1 |
> pod trunk push BlinkingLabel.podspec
|
2 |
Updating spec repo `master` |
3 |
|
4 |
Validating podspec |
5 |
-> BlinkingLabel (0.1.0) |
6 |
|
7 |
Updating spec repo `master` |
8 |
|
9 |
- Data URL: https://raw.githubusercontent.com/CocoaPods/Specs/f7fb546c4b0f80cab93513fc228b274be6459ad2/Specs/BlinkingLabel/0.1.0/BlinkingLabel.podspec.json |
10 |
- Log messages: |
11 |
- June 29th, 20:40: Push for `BlinkingLabel 0.1.0' initiated. |
12 |
- June 29th, 20:40: Push for `BlinkingLabel 0.1.0' has been pushed (1.701885099 s). |
8. Was macht einen großartigen Pod?
Im Datenrepository sind buchstäblich Tausende von Pods verfügbar. Beim Durchsuchen eines Pods ist es nicht einfach, die Qualität eines Pods zu bestimmen. Wenn Sie Code von Drittanbietern in Ihr Projekt einbringen, möchten Sie ein hohes Maß an Vertrauen in den Code haben, den Sie an Kunden versenden. Historisch gesehen musste ein Entwickler seine eigene Interpretation der Qualität einer zufälligen Pods machen, die sie gefunden hatten.
Im Juni 2015 hat CocoaPods ein Tool namens "Quality Index" zur Verfügung gestellt, das eine Zusammenfassung der Qualität eines bestimmten Pods basierend auf bestimmten Metriken liefert. Die umfassenden und aktuellsten Metriken finden Sie auf GitHub.
Zusammenfassend können Sie hier den Qualitätsindex Ihres Pods verbessern:
- Popularität des Projekts gemessen an Sternen, Gabeln, Abonnenten und Mitwirkenden
- Codedokumentation
- hochwertige README
- in Swift geschrieben
- Nutzung der GPL-Lizenz
- nicht viele offene Fragen
- Code-Qualität durch automatisierte Tests gewährleistet
- Lean Installation Größe durch Minimierung der enthaltenen Vermögenswerte
- kleinere, gut komponierte Klassen
Der Qualitätsindex eines Pods kann entweder steigen oder sinken, je nachdem, wie gut ein bestimmtes Projekt diesen Metriken entspricht.
Fazit
Die Erstellung von Pods für andere Benutzer macht Spaß und ist ein guter Weg, um einen Beitrag zur Community zu leisten. Dieses Tutorial hat Ihnen gezeigt, welche Codeabschnitte für gute Pods erforderlich sind, wie Sie Ihren ersten Pod erstellen, wie Sie ihn öffentlich verfügbar machen und welche Techniken für einen großartigen Pod verwendet werden können.
Sie haben jetzt das Wissen, Ihren ersten Pod zu erstellen. Ich würde gerne hören, welche Hülsen Sie bauen möchten. Bitte komm zurück und lege nach der Erstellung einen Link zu deinem Pod ab.