Ouvrir le menu principal

MacGeneration

Recherche

Xcode 9 : toutes les nouveautés pour les développeurs

Nicolas Furno

lundi 12 juin 2017 à 20:30 • 24

Logiciels

Outre les premières bêtas des systèmes d’exploitation eux-mêmes, les développeurs peuvent télécharger une toute nouvelle version de Xcode, l’outil de développement fourni par Apple. Xcode 9 est disponible dans une première bêta et elle peut être installée sur macOS High Sierra ou sur macOS Sierra. Comme toutes les bêtas, Apple conseille de conserver la version stable en parallèle jusqu’à sa finalisation, prévue pour septembre ou octobre.

Cliquer pour agrandir

Ce sera la version de base pour exploiter les nouveautés de l’automne, que ce soit sur Mac ou sur les appareils iOS, watchOS et tvOS. Cette mise à jour de Xcode apporte aussi plusieurs changements, parfois majeurs et qui devraient améliorer la stabilité, les performances et le confort des développeurs.

Nouvel éditeur de code

L’éditeur de code, pièce maîtresse de Xcode naturellement, a été totalement revu dans cette neuvième version. Pour commencer, même si cela ne se voit pas, il a été réécrit en Swift et apparemment, il s’inspire assez largement de celui de Swift Playgrounds sur iOS. À noter qu’il y a plusieurs fonctions manquantes dans la première bêta, comme la possibilité de « plier » les blocs de code ou encore l’impression.

L’éditeur de code dans Xcode 9, avec l’une des nouveautés : en maintenant la touche ⌘, on voit la limite des fonctions, des boucles et autres éléments. Cliquer pour agrandir

Ce changement apporte quelques nouveautés qui seront sans aucun doute bienvenues. Par exemple, on peut (enfin) changer la taille du texte temporairement en utilisant les raccourcis par défaut (⌘- et ⌘+). Xcode 9 améliore aussi la lecture du code : en passant le curseur tout en maintenant la touche ⌘ sur le clavier, les limites des fonctions, boucles et autres éléments sont mises en avant visuellement.

Le Markdown étant désormais pris en charge par Apple, notamment pour les fichiers readme, la coloration syntaxique est aussi proposée, avec même un aperçu du résultat. Xcode 9 ne remplacera pas un éditeur de texte dédié et c’est de toute manière un logiciel bien lourd pour écrire du Markdown, mais…

La prise en charge du Markdown dans Xcode 9 est plutôt complète. Cliquer pour agrandir

Xcode 9 permet aussi de « réusiner le code » (refactoring) en Swift, Objective-C, C et C++. Si vous changez le nom d’une classe, la référence sera automatiquement modifiée dans tout le projet. Cela permettra aussi de simplifier les transitions d’Objective-C à Swift. Par ailleurs, la recherche a été revue et elle est beaucoup plus rapide avec cette version.

Il y a de nombreuses autres nouveautés chargées d’accélérer le développement ou d’améliorer le confort des développeurs. Par exemple, Xcode 9 complète automatiquement les switch, une structure qui permet de prendre en compte plusieurs cas de figure différents.

Debug : avec plusieurs simulateurs et sans les fils

Une part importante du travail des développeurs est de tester une app sur l’appareil ciblé. Pour cela, Xcode propose deux méthodes : un simulateur affiché sur le Mac, ou directement sur un terminal. Avec la version 9.0, vous pouvez lancer plusieurs simulateurs pour mener plusieurs tests en parallèle sur la même base, ou tester une même app sur plusieurs appareils différents.

Le simulateur de Xcode 9 avec trois appareils actifs. La présentation change, avec des boutons physiques et actifs autour de la fenêtre… qui ne ressemble plus à une fenêtre macOS, même si elle se comporte comme telle. Cliquer pour agrandir

La présentation change aussi, avec une représentation physique de chaque appareil simulé. Ce n’est pas que du skeuomorphisme gratuit, vous pouvez interagir avec ces appareils en utilisant les boutons. Par exemple, les deux boutons latéraux de l’Apple Watch permettent de contrôler watchOS comme sur une vraie montre. Ajoutons que ces fausses fenêtres peuvent être redimensionnées librement à la souris, comme les vraies fenêtres.

Parmi les autres nouveautés liées aux simulateurs, la possibilité de filmer l’écran (comme sur les terminaux iOS 11 d’ailleurs) ou encore une extension de partage qui permet d’envoyer un contenu depuis macOS à un simulateur. Ou à tous les simulateurs ouverts, si vous le souhaitez. Cela fonctionne depuis Safari, depuis Plans

Le simulateur devient l’une des options de partage sur macOS. Ici, on peut envoyer une même URL depuis Safari à tous les simulateurs actifs, ou à seulement l’un d’entre eux. Cliquer pour agrandir

Si vous avez besoin d’un vrai appareil iOS ou tvOS pour tester votre app, il y a du mieux avec Xcode 9. Jusque-là, le terminal mobile devait être relié physiquement au Mac pour exécuter l’app et obtenir des informations en retour. Désormais, vous pourrez le faire sans fil, à condition naturellement que l’appareil soit sur le même réseau local que le Mac.

Pour commencer, il faudra activer cette option en branchant le terminal au Mac et en passant par le gestionnaire d’appareils dans le menu Window. Cochez la case « Connect via network » et à partir de là, vous le verrez dans cette fenêtre, mais aussi comme cible pour compiler un projet même si l’appareil n’est plus relié en USB. Cette option est réservée à iOS 11 et tvOS 11.

Les appareils iOS 11 peuvent être utilisés à distance et sans fil avec Xcode 9. Cliquer pour agrandir

Apple a beaucoup travaillé la fonction de debug, pour s’assurer qu’un programme tourne correctement. Plusieurs tests peuvent être menés en parallèle avec Xcode 9 et de nouvelles options sont proposées aux développeurs, comme la possibilité de faire des captures d’écran automatiquement. Instruments, l’app spécialisée dans cette tâche, a été enrichie, notamment pour prendre en charge Metal et la réalité virtuelle.

Les développeurs peuvent également surveiller l’activité de la puce graphique et contrôler très précisément une animation ou des graphismes. Il y a plusieurs ajouts dans ce domaine, notamment pour les créateurs de jeux qui pourront modifier un shader pendant la phase de test pour voir immédiatement les différences. Ou encore modifier les paramètres d’un pixel spécifiquement.

Xcode 9 produit des apps Swift en Swift

Apple a développé un tout nouveau build system et il est proposé en option dans Xcode 9. Ce composant essentiel fait le lien avec le compilateur qui converti le code en une app, notamment en fonction de paramètres définis par le développeur. Sa particularité par rapport à l’ancien ? Il a été développé en Swift. Ce qui veut dire que l’on peut désormais construire des apps en Swift grâce à un programme en Swift.

Ce nouveau build system a été créé de zéro et il est nettement plus performant que l’ancien, tout en repérant davantage de problèmes. Néanmoins, c’est une première version et cette brique essentielle du processus nécessite de la stabilité. Il reste probablement des bugs et quelques changements seront nécessaires dans un projet : tous les détails sont donnés par Apple dans les notes de version.

Ici, on active le nouveau build system en Swift pour un projet. Cliquer pour agrandir

Pour éviter tout problème, Apple l’a désactivé par défaut et c’est au développeur d’essayer s’il le souhaite, projet par projet. Vous pourrez le faire via le menu File > Project Settings et vous pourrez aussi à tout moment revenir en arrière, si le changement casse quelque chose. Apple prévient que ce sera bientôt l’option par défaut, mais ce n’est pas encore le cas pour le moment.

Par ailleurs, Xcode 9 simplifie la transition de Swift 3 à Swift 4. Le compilateur peut gérer les deux versions à l’intérieur d’un même projet et vous pourrez ainsi profiter des nouveautés de Swift 4 tout en utilisant le compilateur Swift 3 sur le reste du code.

Intégration à GitHub et meilleure gestion de Git

Les versions précédentes de Xcode utilisaient Git en local pour gérer les différentes versions de vos projets. Avec cette 9.0, Apple adopte une stratégie différente : son IDE est désormais étroitement intégré à GitHub, le plus gros service d’hébergement de code basé sur Git. Pour utiliser cette fonction, vous devrez naturellement disposer d’un compte, à renseigner dans la rubrique dédiée aux comptes des préférences.

Depuis le menu « Source Control », vous pourrez alors cloner un projet depuis le site. La fenêtre affichera tous les dépôts que vous avez créés, mais aussi tous les projets auxquels vous avez participé et encore ceux que vous avez mis en favoris. En haut, un champ de recherche permet de trouver un dépôt et vous pourrez aussi coller l’URL vers un projet pour le cloner en local.

Cette interface permet de cloner un dépôt depuis GitHub. Cliquer pour agrandir

L’intégration va plus loin, puisqu’un bouton a été ajouté directement sur le site de GitHub, pour ouvrir n’importe quel dépôt contenant un projet Xcode dans le logiciel. Pour le moment, cela ne fonctionne qu’avec Safari et on ne sait pas si les autres navigateurs pourront en proposer autant. Quoi qu’il en soit, vous verrez une troisième option « Open in Xcode » en cliquant sur le bouton vert « Clone or download ».

Depuis le site de GitHub, les dépôts qui contiennent un projet Xcode peuvent directement être ouverts dans le logiciel, à condition naturellement d’utiliser un Mac. Cliquer pour agrandir

Que vous passiez par Xcode ou par le site de GitHub, le projet sera cloné dans le dossier de votre choix et ouvert directement dans l’IDE. Ce lien ne sert pas qu’à télécharger un projet naturellement, vous pourrez ensuite suivre ses évolutions et soumettre vous-même des modifications sans quitter l’interface conçue par Apple. Autant de fonctions qui existaient en général avec Xcode 8, mais qui ont été revues et améliorées avec la mise à jour.

Historique d’un dépôt GitHub, c'est-à-dire la liste des commits. Cliquer pour agrandir
Affichage d’un commit avec comparaison des modifications directement dans Xcode. Cliquer pour agrandir

Un mode dédié au suivi du projet a été ajouté à Xcode pour lister l’historique et n’importe quel fichier modifié peut être publié sur le dépôt en retour. En clair, vous pourrez utiliser GitHub presque entièrement sans passer par le site, il ne manque que la gestion des issues (les problèmes et bugs signalés) et des pull requests (suggestions de modification).

Quand vous modifiez un projet, vous pouvez soumettre vos modifications également depuis Xcode. Ici, l’interface qui permet de rédiger le message associé au commit. Cliquer pour agrandir

Apple se contente de GitHub dans Xcode 9, alors que c’est loin d’être le seul sur le segment. Si vous utilisez Gitlab, Bitbucket ou un autre, vous n’aurez pas une intégration aussi complète. Néanmoins, le logiciel gère toujours n’importe quel projet Git, à condition de l’avoir préalablement cloné en local. Vous retrouverez l’historique et vous pourrez soumettre des changements sur le serveur, mais vous ne pourrez pas cloner initialement le projet avec la même interface, et encore moins le faire depuis le site.

Xcode Server intégré dans Xcode

En fonction de la taille d’un projet, la compilation du code source est faite en local, sur le Mac du développeur, ou bien à distance, sur un serveur Xcode. Seul un Mac peut servir, mais jusque-là, il fallait un ordinateur équipé de macOS Server, vendu 22 € sur le Mac App Store. Avec Xcode 9, ce n’est plus nécessaire, puisque le module serveur a été directement intégré à l’IDE.

Dans les réglages de Xcode, un nouveau panneau fait son apparition pour gérer Xcode Server. Ici, il est activé et les autres Mac sur le réseau local peuvent utiliser ce Mac pour compiler leurs projets. Cliquer pour agrandir

Un serveur Xcode fonctionne avec des robots virtuels qui compilent un projet lors d’un commit (envoi de code sur le serveur chargé du suivi) ou à intervalle fixe. On peut programmer plusieurs robots avec des paramètres différents et enchaîner avec des tests pour s’assurer que tout fonctionne correctement et repérer d’éventuels bugs et crash. La mise à jour ajoute aussi quelques fonctions à ces robots, notamment la possibilité de mener des tests avec différents langages et différents paramètres de région.

Côté sécurité, l’authentification en deux facteurs est désormais une option pour se connecter à un serveur Xcode.

Autres nouveautés

La liste de nouveautés est encore longue et elle touche tous les domaines. La documentation a été revue avec un navigateur unique pour accéder à tous les éléments, y compris les lignes de code. Il y a du nouveau dans Interface Builder, notamment pour créer des interfaces en plein écran pour l’Apple Watch. Des outils ont été ajoutés pour tester la réalité virtuelle, les développeurs peuvent définir des macros pour un projet, le gestionnaire de ressources a été mis à jour notamment pour gérer le HEIF, le nouveau format d’images utilisé par Apple.

Xcode 9 est disponible au téléchargement sur le centre dédié aux développeurs. Comme toutes les bêta du logiciel, il fonctionne avec la version actuelle de macOS et avec macOS High Sierra et surtout, il s’installe en parallèle de la version stable de Xcode.

illustration magazine 25 ans

MacGeneration a 25 ans !

Participez à la fête et découvrez l’histoire de votre site favori en précommandant notre magazine exclusif.

Je précommande le magazine