Créer votre premier CocoaPod

introduction

CocoaPods est un excellent outil d'aide à la gestion des dépendances lors de la création d'applications iOS ou OS X. CocoaPods a une maturité évidente après avoir été entouré et bien soutenu pendant des années. Bien qu'il soit très courant d'utiliser CocoaPod dans vos projets de logiciels iOS ou OS X, il est moins courant de créer un pod à utiliser. Ce tutoriel vous guidera dans la création de votre premier pod et vous donnera quelques conseils sur ce qui caractérise un excellent pod..

1. Installez CocoaPods

Bien entendu, pour créer un pod, vous devez installer CocoaPods. Il est disponible en tant que bijou Ruby de RubyGems. Pour installer CocoaPods, exécutez les commandes suivantes à partir de la ligne de commande:

gem installer des cocoapods

Ce tutoriel a été écrit contre CocoaPods 0.37.2.

2. Vue d'ensemble étape par étape

À partir d'un niveau élevé, cinq étapes sont nécessaires pour créer votre premier module:

  1. Déterminez l'idée de votre premier pod.
  2. Utilisez le pod lib commande pour créer la structure de répertoire squelette et les fichiers associés pour votre pod.
  3. Mettez à jour les métadonnées de votre pod, telles que ses informations de licence et de version..
  4. Ajoutez le code pour votre pod. Cela inclut à la fois le code du pod lui-même et tout autre code nécessaire à un exemple de projet..
  5. Rendre le pod accessible au public.

3. Podstorming

Podstorming n'est pas un mot, mais il est temps de réfléchir aux fonctionnalités de votre premier pod. Il y a plus de 10 000 pods disponibles au public indexés dans le référentiel officiel de Specs. Les gens ont trouvé toutes sortes de choses à rendre disponibles sous forme de pod. Voici quelques suggestions pour vous aider à démarrer le podstorming, euh, je veux dire un brainstorming:

  • Code utilitaire: Avez-vous une idée unique sur la manière d'effectuer certaines manipulations de corde? Avez-vous une sous-classe préférée que vous avez écrite pour réaliser une animation fluide sur un UIView? Un code utilitaire spécifique comme celui-ci est un excellent exemple de ce qui peut être transformé en pod. Il est souvent déjà bien factorisé et découplé des autres bases de code existantes.
  • Forfaits tiers: Avez-vous créé un wrapper autour d'une autre API tierce? Avez-vous une application pour laquelle vous souhaitez fournir des points d'ancrage pour l'intégration d'autres applications, par exemple pour l'authentification? Votre entreprise fournit-elle une API Web pour les ressources Web qui serait utile pour l'intégration d'autres applications iOS? Si tel est le cas, un pod est logique, car il permet à d'autres applications iOS de s'intégrer facilement à ces packages..
  • Composants de l'interface utilisateur: Avez-vous créé un widget d'interface utilisateur fluide que vous souhaiteriez que les autres applications puissent utiliser? Ce sont mes pods préférés. Il est bon de pouvoir ajouter un composant d'interface utilisateur compliqué et agréable à une application en incluant simplement une dépendance de pod..
  • Tout ce que vous voudriez que les autres puissent utiliser. Avez-vous créé quelque chose que d'autres pensent trouver utile? Si c'est le cas, transformez-le en pod afin que les autres puissent l'utiliser facilement.

Ce didacticiel vous guidera dans la création d’un module vous permettant de créer un UILabel ça clignote. Nous l'appellerons BlinkingLabel.

4. Créer le projet

Il est temps de creuser. Maintenant que vous connaissez les fonctionnalités que votre pod va fournir, il est temps de les créer. le pod lib la commande est un outil important que nous utiliserons à deux fins au cours du processus de création.

  1. peluches va valider que tout va bien avec votre pod et qu'il est prêt à être utilisé par CocoaPods.
  2. pod lib crée vous aidera réellement à vous donner un bon départ en fournissant une structure de répertoires standard avec un tas de fichiers standard nécessaires à un pod de haute qualité. pod lib crée n'est pas le seul moyen de créer votre pod, mais c'est le plus simple.

Ouvrez une fenêtre de terminal, accédez à un répertoire de travail et exécutez la commande suivante:

pod lib crée BlinkingLabel
  • Quand on vous demande quelle langue vous voulez utiliser, répondez Rapide.
  • Lorsqu'on vous demande si vous souhaitez inclure une application de démonstration, répondez Oui.
  • Pour déterminer si un exemple de projet doit être créé ou non, l'équipe de CocoaPods suggère de se poser la question suivante: "Ce pod doit-il inclure une capture d'écran?" Si c'est le cas, c'est une bonne idée d'inclure un exemple de projet..
  • Quand on vous demande quel framework de test utiliser, répondez Aucun.
  • Réponse Non à l'invite concernant les tests basés sur l'affichage.

Les tests n'entrent pas dans le cadre de ce didacticiel, mais ne le laissez pas vous empêcher d'enquêter davantage après ce didacticiel. Le rapport entre les tests et les lignes de code est un facteur pris en compte par le CocoaPods Quality Index..

Lorsque l’échafaudage de votre pod est configuré, Xcode ouvre votre tout nouveau projet et vous permet de travailler sur votre pod..

5. Mise à jour des métadonnées de votre pod

Trois métadonnées principales doivent être incluses dans votre pod:

  • .podspec: Ce fichier contient des informations sur cette version spécifique de votre pod. Vos pods, numéro de version, page d'accueil et noms d'auteur sont quelques exemples de ce qui est inclus. Consultez la page de référence officielle pour plus d'informations.
  • LISEZMOI: Si vous avez déjà utilisé GitHub, vous savez à quel point un fichier README est important. Le fichier README d'un projet, écrit dans Markdown, est affiché sur la page d'accueil d'un projet sur GitHub. Un fichier README approprié peut faire la différence entre une personne utilisant votre projet ou non. De plus, c’est un facteur contribuant à une forte Indice de qualité CocoaPods ainsi que.
  • LICENCE: Pour que votre pod soit accepté dans le référentiel Spec, il doit inclure une licence. le pod lib crée La commande remplit automatiquement le fichier LICENSE avec la licence MIT et c'est ce que nous allons utiliser pour ce tutoriel..

Pour obtenir le .podspec en forme, ouvrez-le dans Xcode. Vous le trouverez sous BlinkingLabel / Podspec Metadata / BlinkingLabel.podspec. Heureusement, CocoaPods a créé un modèle bien rempli pour nous lorsque nous avons exécuté le pod lib créecommander. Vous êtes sur le point d'aimer encore plus cet outil. le peluches commande validera automatiquement le .podspec fichier pour s’assurer qu’il est conforme aux meilleures pratiques. Ou, si vous êtes paresseux, vous pouvez également l'utiliser pour déterminer le minimum que vous devez faire pour créer .podspec fichier.

A partir de la ligne de commande, à la racine du projet BlinkingLabel, exécutez la commande suivante:

pod lib lint BlinkingLabel.podspec

Cela devrait produire les éléments suivants:

> pod lib lint BlinkingLabel.podspec -> BlinkingLabel (0.1.0) - WARN | Le résumé n'est pas significatif. - WARN | La description n'est pas significative. - WARN | Un problème est survenu lors de la validation de l'URL https://github.com/./ BlinkingLabel. [!] BlinkingLabel n'a pas passé la validation. Vous pouvez utiliser l'option '--no-clean' pour inspecter tout problème.

L'outil vous indique qu'il y a trois choses qui doivent être corrigées dans le .podspec fichier:

  • ajouter plus d'informations au résumé
  • ajouter une description appropriée
  • spécifier une URL pour la page d'accueil du pod

Voici quelques valeurs suggérées pour ces champs:

  • résumé: Une sous-classe sur UILabel qui fait un clin d'oeil.
  • s.description: Ce CocoaPod offre la possibilité d’utiliser un UILabel qui peut être démarré et arrêté de clignoter.
  • à la page d'accueil: https://github.com/obuseme/BlinkingLabel (remplacez obuseme avec votre nom d'utilisateur GitHub)

Mais attendez, si vous avez suivi les instructions pas à pas, techniquement, il n’ya pas encore de projet à cette URL. Il est temps de placer votre projet dans un référentiel public sur GitHub. Bien qu'il existe d'autres options pour l'hébergement de vos pods, GitHub est de loin le plus répandu.

Pour pousser votre projet sur GitHub, accédez à GitHub, connectez-vous ou créez un compte, puis créez un Nouveau référentiel appelé BlinkingLabel. Ensuite, à partir de la ligne de commande, exécutez les commandes suivantes:

git add. git commit -m "Commit initial" git remote add origine https://github.com//BlinkingLabel.git // replace  avec votre nom d'utilisateur github.com git push -u origin master

À ce stade, si vous avez tout fait correctement et peluche le .podspec déposer à nouveau, il devrait passer la validation.

> pod lib lint BlinkingLabel.podspec -> BlinkingLabel (0.1.0) BlinkingLabel a passé la validation.

6. Ajout de code

Vous avez maintenant le shell de base d'un pod, mais il ne fait rien. Il est temps d'ajouter des fonctionnalités. La particularité de l’exemple de projet créé par CocoaPods est que vous pouvez écrire simultanément du code pour le pod et l’exemple de projet..

D'abord, trouvez le fichier ReplaceMe.swift sous Pods / Pods de développement / BlinkingLabel / Pod / Classes / et le supprimer.

Ensuite, créez un nouveau fichier Swift dans le même répertoire et nommez-le. BlinkingLabel.swift. Remplacez le contenu du nouveau fichier par ce qui suit:

Classe publique BlinkingLabel: UILabel fonction publique startBlinking () options de let: UIViewAnimationOptions = .Repeat | .Autoreverse UIView.animateWithDuration (0.25, délai: 0.0, options: options, animations: self.alpha = 0, complétion: nil) public func stopBlinking () alpha = 1 layer.removeAllAnimations ()

Vous venez d’ajouter des fonctionnalités à votre premier pod, une sous-classe sur UILabel. La sous-classe fournit une méthode pour faire clignoter l'étiquette et une autre méthode pour l'empêcher de clignoter.

Pour que les autres développeurs comprennent facilement comment utiliser BlinkingLabel, ajoutez un exemple de code au projet d'exemple. Ouvrir BlinkingLabel / Exemple pour BlinkingLabel /ViewController.swift et le faire ressembler à ceci:

import UIKit import Classe BlinkingLabel ViewController: UIViewController var isBlinking = false let blinkingLabel = BlinkingLabel (frame: CGRectMake (10, 20, 200, 30)) remplace la fonction viewDidLoad () (super). = "Je cligne des yeux!" blinkingLabel.font = UIFont.systemFontOfSize (20) view.addSubview (blinkingLabel) blinkingLabel.startBlinking () isBlinking = true // Crée un bouton UIB pour basculer le let clignotant. ) toggleButton.setTitle ("Toggle Blinking", pour State: .Normal) toggleButton.setTitleColor (UIColor.redColor (), pour State: .Normal) toggleButton.addTarget (toggleButton) func toggleBlinking () if (isBlinking) blinkingLabel.stopBlinking () else blinkingLabel.startBlinking () isBlinking =! isBlinking

À ce stade, vous verrez Xcode se plaindre de nombreuses erreurs dans ViewController.swift. C'est parce que le pod pour BlinkingLabel n'est pas encore installé sur le projet d'exemple. Pour ce faire, passez en ligne de commande et à partir de la racine du BlinkingLabel répertoire exécutez la commande suivante:

> Exemple de cd> installation de pod Analyse des dépendances Récupération de podspec pour 'BlinkingLabel' à partir de '… /' Téléchargement de dépendances Installation de BlinkingLabel 0.1.0 (version 0.1.0) Génération du projet de pods Intégration du projet client

Ensuite, revenez à Xcode et sélectionnez le BlinkingLabel-Example cible et cliquez sur le Courir bouton.


Vous devriez voir quelque chose comme ça:

Robinet Basculer Clignotant pour essayer votre nouveau pod. La dernière étape de la création de votre pod consiste à mettre à jour le fichier README.md. Dans Xcode, ouvrez LISEZMOI.md sous BlinkingLabel / Podspec Metadata / README.md. Vous verrez que CocoaPods a ajouté une documentation par défaut pour vous. Ne vous arrêtez pas là, vous pouvez le rendre meilleur. Ajoutez de la documentation sur le pod et incluez une capture d'écran. N'oubliez pas qu'un fichier README est souvent la première chose que quelqu'un verra en regardant votre pod. Il est important que ce soit de haute qualité. Jetez un coup d'œil au mien pour vous inspirer.

7. Rendre votre pod disponible

Maintenant que vous avez un pod entièrement fonctionnel sur votre ordinateur local, il est temps de faire BlinkingLabel à la disposition des autres pour les inclure dans leurs projets. A un niveau élevé, ceci est accompli en introduisant votre nouveau pod dans le référentiel public de spécifications..

le Spécifications référentiel est la place publique sur GitHub où tous les pods publics sont indexés. En réalité, vous n'êtes pas obligé d'utiliser GitHub pour héberger le code source de votre pod. Vous pouvez également utiliser BitBucket par exemple. Les spécifications de votre pod seront stockées dans le référentiel Specs sur GitHub si.

Il est très simple d’ajouter votre pod au référentiel Specs. Il existe trois étapes pour soumettre votre pod.. N'essayez pas ces étapes car j'ai déjà rendu public BlinkingLabel. Ils ne sont là que pour servir de référence.

Avant de commencer, assurez-vous que les modifications locales apportées à la BlinkingLabel les répertoires du projet sont ajoutés à git et poussés vers la télécommande.

Étape 1: Marquage

Marquez votre commit le plus récent et poussez-le vers la télécommande.

> balise git 0.1.0> origine git push 0.1.0 total 0 (delta 0), réutilisé 0 (delta 0) à https://github.com/obuseme/BlinkingLabel.git * [nouvelle balise] 0.1.0 -> 0.1.0

Cette étape indique que vous marquez ce commit comme une version spécifique de votre pod. Le nom de la balise doit correspondre à la version dans ton .podspec fichier. La prochaine étape validera cette.

Étape 2: Validation

Ensuite, exécutez la commande suivante à partir de la ligne de commande pour vérifier que tout est configuré correctement entre l'emplacement de stockage de votre code source et votre .podspec fichier:

 peluche spéc. pod BlinkingLabel.podspec

Cela devrait produire les éléments suivants:

> Spécification de cosse BlinkingLabel.podspec -> BlinkingLabel (0.1.0) Analyse 1 podspec. BlinkingLabel.podspec a passé la validation.

Étape 3: Chargement dans le référentiel de spécifications

Enfin, poussez la spécification à la Spécifications référentiel en exécutant la commande suivante:

pod trunk push BlinkingLabel.podspec

Cela devrait produire les éléments suivants:

> pod trunk push BlinkingLabel.podspec Mise à jour du référentiel de spécification 'master' Validation de podspec -> BlinkingLabel (0.1.0) Mise à jour du référentiel de spécification 'master' - URL de données: https://raw.githubusercontent.com/CocoaPods/Specs/f7fb546c4b0b4c09cdcdcdcdcd /BlinkingLabel/0.1.0/BlinkingLabel.podspec.json - Messages du journal: - 29 juin, 20h40: Appuyez pour "BlinkingLabel 0.1.0" lancé. - 29 juin, 20h40: La poussée pour 'BlinkingLabel 0.1.0' a été poussée (1.701885099 s).

8. Ce qui fait un grand pod?

Il y a littéralement des milliers de pods disponibles dans le Spécifications dépôt. Lors de la recherche d'un pod, il n'est pas facile de déterminer la qualité d'un pod. Lorsque vous introduisez du code tiers dans votre projet, vous souhaitez avoir un niveau de confiance élevé en ce qui concerne le code que vous enverrez aux clients. Historiquement, un développeur devait faire sa propre interprétation de la qualité d’un pod aléatoire qu’il trouvait.

Depuis juin 2015, CocoaPods a fourni un outil appelé Indice de qualité qui fournit un jugement résumé sur la qualité d'un pod donné en fonction de certains paramètres. Les métriques les plus complètes et les plus récentes sont disponibles sur GitHub..

En résumé, voici des choses qui peuvent aider à améliorer la Indice de qualité de votre pod:

  • la popularité du projet mesurée par les étoiles, les fourchettes, les abonnés et les contributeurs
  • documentation du code
  • README de haute qualité
  • écrit en swift
  • utilisation de la licence GPL
  • pas beaucoup de questions ouvertes
  • qualité du code assurée par des tests automatisés
  • réduire la taille des installations en minimisant les actifs inclus
  • classes plus petites, bien composées

le Indice de qualité d’un pod peut monter ou descendre en fonction de la conformité d’un projet donné à ces métriques.

Conclusion

Créer des modules que les autres utilisateurs peuvent utiliser est amusant et constitue un bon moyen de contribuer à la communauté. Ce tutoriel vous a montré quels éléments de code permettent de créer de bons pods, comment créer votre premier pod, comment le rendre public, et quelles techniques peuvent vous aider à créer un excellent pod..

Vous avez maintenant les connaissances nécessaires pour créer votre premier pod. J'aimerais entendre ce que vous avez à l'esprit pour construire. S'il vous plaît revenir et déposer un lien vers votre pod une fois qu'il est créé.