Quoi de neuf avec le support Git dans Xcode 9

Ce que vous allez créer

La dernière version d'IDE d'Apple, Xcode 9, sortira avec iOS 11 en septembre. Et c'est une mise à jour énorme! Les fans de Git pour la gestion du contrôle de source (SCM) sont les grands gagnants de cette version à venir.

Les versions précédentes de Xcode prenaient en charge la gestion de la chaîne logistique, mais celle-ci n'avait jamais été considérée comme un citoyen de première classe. Le support Git de Xcode était bogué et terne, comparé à des outils spécialisés tels que SourceTree, ce qui signifiait que les développeurs devaient basculer d'un outil à l'autre pour pouvoir effectuer des tâches avancées de gestion du référentiel Git.. 

Tout cela a changé dans Xcode 9. Apple ne voit plus le SCM comme secondaire, mais a plutôt opté pour une intégration étroite avec GitHub et a collaboré étroitement avec GitHub pour Xcode 9.. 

Le résultat net est que vous pouvez maintenant vous connecter à votre compte GitHub directement à partir de Xcode, afin de parcourir, naviguer et cloner votre repo GitHub. Vous pouvez également rechercher d'autres référentiels sans avoir à basculer vers une fenêtre de navigateur. Inversement, si vous avez un référentiel GitHub ouvert dans votre navigateur, vous pouvez cliquer sur le bouton cloner et faire en sorte que Xcode clone automatiquement et ouvre le projet.. 

Comme Apple le dit, «le support pour Git est maintenant au centre de nos préoccupations» et Apple a introduit un nouveau navigateur de contrôle de code source, de sorte que vous n'avez pas à ouvrir une nouvelle fenêtre visuellement indépendante du reste de Xcode. Les développeurs peuvent désormais afficher les branches, les balises et les télécommandes via un plan de montage clair et intuitif, ils peuvent inspecter les validations de manière plus détaillée et voir une comparaison plus élégante et plus attractive des modifications.. 

Objectifs de ce tutoriel

Dans ce didacticiel, je vais vous présenter la liste des nouvelles fonctionnalités SCM introduites avec Xcode 9. Nous examinerons trois domaines principaux:

  • commet
  • branches
  • Mots clés

Connaissance supposée

Pour suivre ce didacticiel, vous devez avoir une expérience préalable de Xcode et des connaissances pratiques de la gestion du contrôle de la source via Git.. 

Commencer avec Xcode 9 SCM

Configuration de votre environnement

Pour utiliser les nouvelles fonctions de gestion de la chaîne logistique de Xcode, vous devez: 

  • Télécharger le Xcode 9.
  • Avoir un compte GitHub gratuit ou payant.

Une fois que vous avez téléchargé et installé la dernière version de Xcode et que vous disposez d'un compte GitHub actuel, vous êtes prêt à connecter votre compte GitHub à Xcode 9. Lancez Xcode et accédez à Préférences > Comptes. Ensuite, sélectionnez le + bouton en bas à gauche pour ajouter un nouveau compte. 

Sélectionner GitHub depuis la fenêtre modale et entrez vos informations d'identification GitHub. Si vous utilisez une authentification à deux facteurs, Xcode vous demandera de saisir votre code.. 

Parcourir et rechercher des référentiels GitHub

Voyons comment vous pouvez naviguer de manière transparente dans les référentiels GitHub publics existants, directement depuis Xcode. Ouvrez l'écran de bienvenue de Xcode s'il ne s'affiche pas déjà en allant à La fenêtre > Bienvenue sur Xcode

Puis sélectionnez Cloner un projet existant, qui affichera la liste des référentiels sur GitHub que vous possédez, sur lesquels vous avez travaillé ou sur lesquels vous avez déjà joué. 

Outre la liste présentée, vous pouvez également rechercher un référentiel public (ou un référentiel privé auquel vous avez accès) par son nom ou en entrant son URL GitHub. Pour notre tutoriel, tapez RealmDo et cliquez Cloner, puis sélectionnez un répertoire local pour cloner le projet dans. 

Il vous demandera ensuite un répertoire pour vérifier le projet dans:

Plutôt que d'extraire le référentiel de projet de Xcode, une autre fonctionnalité vraiment astucieuse est que vous pouvez ouvrir un référentiel GitHub dans votre navigateur et sélectionner Cloner ou télécharger et vous verrez un nouveau bouton étiqueté Ouvrir dans Xcode

C'est vrai: si vous cliquez dessus, le projet sera automatiquement ouvert dans Xcode, pour être cloné et téléchargé.. 

Retour à notre projet. Puisque nous utilisons CocoaPods pour gérer les dépendances, nous devrons revenir dans le terminal de commande et exécuter installation de pod:

19:06 $ pod install Analyse des dépendances Téléchargement des dépendances Utilisation de Realm (2.7.0) Utilisation de RealmSwift (2.7.0) Génération du projet Pods Intégration du projet client Envoi des statistiques L'installation des pods est terminée! Il y a 1 dépendance par rapport au podfich et 2 pods installés.

Notre projet doit maintenant être mis en place localement, et votre .xcworkspace devrait être ouvert dans Xcode avec tous les fichiers de votre projet. 

Préférences Xcode SCM

En naviguant dans les préférences de Xcode, puis en sélectionnant Contrôle de source, vous pouvez modifier divers aspects de son comportement directement à partir du volet des préférences, y compris le nom et l'adresse électronique de l'auteur Git, et, chose intéressante, même mettre à jour votre .gitignore paramètres ainsi. 

Associer un nouveau projet à GitHub

D'autre part, si vous avez créé un nouveau projet Xcode et que vous ne l'avez pas encore créé sur GitHub, vous pouvez créer un nouveau projet GitHub directement à partir de Xcode. Clic droit sur Télécommandes puis sélectionnez Créer une télécommande "RealmDo" sur GitHub

Xcode vous demandera ensuite de donner un nom au référentiel et de sélectionner un compte auquel il sera associé..

Exploration de la nouvelle interface SCM

Explorons chacune des sections de la nouvelle interface. 


  1. Le volet de gauche contient votre liste habituelle d’icônes permettant d’accéder aux propriétés du projet. Le deuxième onglet est flambant neuf: c’est le navigateur de contrôle de code source.
  2. le Histoire engagée Le volet est la partie la plus importante du navigateur, il présente une liste historique des commits pour le projet et la branche..
  3. Le volet de droite présente des informations contextuelles supplémentaires sur la branche et les commits sélectionnés..
  4. Outre la branche contextuelle et les informations de validation, cette sous-section à droite vous indique quels fichiers ont fait partie de la validation sélectionnée..
  5. Le volet de gauche vous donne une vue hiérarchique de votre projet depuis une perspective SCM, vous montrant la branche actuelle, toutes les autres branches, qu'elles soient locales ou distantes, et les balises. Il indique également s'il y a de nouveaux commits à pousser ou à tirer, comme vous le verrez plus tard..

Le navigateur de contrôle de source

Une des premières choses que nous allons explorer dans Xcode 9 est le navigateur de contrôle de code source, qui venait d’être nouvellement créé avec Xcode 9. Ce n’est plus la vue source qui est un citoyen de deuxième classe, elle est maintenant entièrement intégrée à Xcode. Sélectionnez la deuxième icône dans le volet de gauche, comme indiqué par (1) dans la capture d'écran ci-dessus pour ouvrir le navigateur de contrôle de code source.. 

Histoire engagée

Jetons un coup d'œil à la perspective Historique de validation, qui affiche la liste des validations du projet, y compris le nom de l'auteur, la date, la description, ainsi que l'avatar de l'auteur dans GitHub, constituant l'historique du projet.. 

C'est une perspective très claire et magnifiquement organisée. Bien que cet exemple de projet soit plutôt rare en ce qui concerne l'histoire (bien que nous le changions sous peu), ce volet est d'une puissance trompeuse.. 

En plus de pouvoir faire facilement défiler et obtenir des informations historiques utiles, vous pouvez également filtrer et rechercher intuitivement par révision, message ou auteur. En fait, vous pouvez chaîner ou joindre plusieurs filtres pour rechercher non seulement par l'auteur mais également par révision. Vous pouvez également effectuer une recherche à l'aide de la barre d'étendue, par périodes spécifiques, telles que le Dernières 24 heuresLes 7 derniers jours, ou Les 30 derniers jours.

La sélection d'un commit spécifique apporte des informations supplémentaires dans le volet de droite. En plus des informations sur la branche, vous obtenez les informations de validation, le SHA complet, l'auteur, le message et la date. Vous voyez également la liste des fichiers créés lors de cette validation, ce qui est extrêmement utile pour vous aider à identifier la validation qui a causé un problème lors du débogage.. 

Double-cliquez sur un commit pour afficher la liste des fichiers qui ont été modifiés dans ce commit dans le volet de gauche. Une comparaison de versions s'affichera alors au centre. C’est la perspective habituelle des diff, mais elle s’est beaucoup améliorée cette fois-ci. 

La sélection de l'Assistant d'édition dans le coin supérieur droit permet d'accéder à une très bonne vue des différences, ce qui vous permet non seulement d'afficher une diff du fichier, mais également de parcourir facilement les validations précédentes, et d'afficher les informations de validation ainsi que les modifications réelles. changements de fichiers. 

En cliquant avec le bouton droit de la souris sur une validation, vous pouvez également voir un menu vous permettant de contacter l'auteur, de copier les informations de validation, de créer une branche à partir de cette validation, ou même d'ouvrir la validation sur GitHub dans le navigateur.. 

Vous pouvez également créer une balise, ce que nous allons faire. Sélectionnez le Étiquette bouton sur le premier commit, et nommez-le libération / 0.1

Nommer vos tags dans ce format, en définissant un groupe parent (release, beta, etc.), sert un objectif intéressant, que nous découvrirons bientôt. Pour l'instant, puisque nous avons marqué un commit, nous allons passer à notre prochain sujet: branching. 

Ramification

Nous développons actuellement sur la branche principale, mais lors du processus de développement normal, nous travaillons généralement sur une branche distincte. Nous créerions une branche pour développer et tester une fonctionnalité, puis nous la fusionnerions de nouveau avec la branche principale lorsqu'elle fonctionnerait correctement. Créons une nouvelle branche en faisant un clic droit maîtriser et en sélectionnant Branche de maître. Appeler la nouvelle succursale readme_changes

Je veux montrer comment la fusion fonctionne. Dans la nouvelle branche, validons nos modifications en sélectionnant Contrôle de source > Commettre. Cela nous ramène au point de vue de la comparaison, nous donnant l’occasion de confirmer tous les changements que nous avons apportés à ce commit, avec la possibilité de comparer nos changements ligne par ligne.

Lorsque vous avez vérifié les modifications, entrez un message de validation semblable au suivant. Et assurez-vous de vérifier le Push to remote boîte.

Lorsque notre branche de fonctionnalité est terminée, nous souhaitons la fusionner avec la branche principale. Cliquez avec le bouton droit sur la branche principale et sélectionnez la deuxième option de fusion: Fusionner de "readme_changes" dans "master"

Xcode fusionnera ensuite et vous basculera automatiquement vers la branche principale. En revenant à la branche principale, vous remarquerez une petite flèche avec le chiffre 1 à droite de la branche actuelle. 

Cela nous permet de savoir que nous avons un commit qui doit être placé dans le référentiel distant. Si le compte était 2, nous serions deux commets devant le maître distant. 

Inversement, si le maître contient de nouvelles mises à jour que vous n'avez pas encore extraites, Xcode vous le fera savoir. Xcode ira chercher à partir de la télécommande et vous avertira avec une flèche vers le bas et comptera que vous êtes derrière le maître distant. 

Marquage

Plus tôt, nous avons créé une balise sur l'un des commits précédents. En observant le volet principal, vous pouvez voir un autre commit qui a été marqué. Le volet de gauche facilite l'affichage d'une liste concise de toutes les balises, sous les branches. 

Rappelez-vous la convention de nommage que nous avons utilisée pour notre tag, libération / 0.1. Nous l'avons fait pour une raison. La création de balises avec un parent hiérarchique permet à Xcode de regrouper des balises. 

Dans notre cas, nous avons deux balises qui appartiennent à la Libération balise parent. Nous pouvons créer plusieurs groupes logiques pour nos balises pour différentes raisons, et Xcode facilite l’organisation de nos balises.. 

En sélectionnant une balise spécifique, notre historique de validations ne montrera que les validations liées à cette balise, ce qui signifie que nous avons un manifeste de codage complet de toutes les modifications introduites lors d'une publication. Cela nous aidera à circonscrire tout code problématique spécifique à cette version..

Conclusion

Xcode 9 est une version énorme, et l’une des nouvelles fonctionnalités les plus importantes est que Apple a finalement intégré SCM en tant que citoyen de premier plan de l’EDI. Cela résout un problème de longue date que de nombreux développeurs ont exprimé sur la façon dont Xcode gère le développement collaboratif et la gestion des versions.. 

Dans Xcode 9, GitHub est non seulement intégré de manière transparente à la plate-forme, mais les développeurs reçoivent désormais une magnifique interface de gestion de code dans un nouvel onglet SCM. Les développeurs obtiennent une vue définitive de l'historique du code, des validations, des fusions, des marquages ​​et des branches, ainsi que des perspectives avancées pour le débogage et l'identification des validations ayant introduit des bogues. Les amateurs de Git et les passionnés de SCM apprécieront vraiment l’initiative d’Apple visant à consolider un outil de gestion Git vraiment puissant, le tout au sein de l’IDE..

Pendant que vous êtes ici, consultez certains de nos autres articles sur le développement d'applications Xcode, Swift et iOS.!