Fermer le menu
 

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

Nicolas Furno | | 20:30 |  23

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.


Les derniers dossiers

Ailleurs sur le Web


23 Commentaires

avatar bbtom007 12/06/2017 - 20:38 via iGeneration pour iOS

Manque plus qu'une version iPad ?

avatar occam 12/06/2017 - 20:55 via iGeneration pour iOS

À propos de tous les points évoqués, j'ai envie de dire : Enfin. Enfin, enfin, et enfin.

L'engagement d'Apple auprès des développeurs y gagne en crédibilité.

avatar françois bayrou 12/06/2017 - 22:40

Xcode n'est peut-être pas parfait, et malgré ses défauts, il a toujours été au dersus des autres, et de très loin.
Le pire a ete, pour moi, a une époque, la gestion des certificats développeurs.



avatar Jean-Jacques Cortes 12/06/2017 - 22:45

Ce serait super cool si Apple ou une âme charitable pouvait écrire un tutoriel au sujet des certificats, en français. D'avance, mille fois merci.

avatar Rez2a 13/06/2017 - 00:06 via iGeneration pour iOS

@Jean-Jacques Cortes

Ça arriverait un peu trop tard, les certificats ne se gèrent plus à la main depuis Xcode 8 (depuis Xcode 7 en fait, mais ça marchait une fois sur dix)

avatar jean_claude_duss 13/06/2017 - 06:52 via iGeneration pour iOS

@Jean-Jacques Cortes

Y'a plus rien à gérer ! C'est le paradis par rapport à la galère du début !

avatar ErGo_404 13/06/2017 - 07:49 (edité)

Quand je vois la liste des améliorations, je trouve qu'ils sont un peu en avance sur certains points, mais il y a aussi certaines améliorations qui ne sont qu'un rattrapage de ce qui se fait sur la plateforme concurrente.
Par exemple, le debug sans fil est quelque chose qui est là sur Android depuis des années.

Donc ils sont peut-être un peu en avance, mais de là à dire "de très loin", j'en doute.

avatar PiRMeZuR 13/06/2017 - 08:33 via iGeneration pour iOS

@ErGo_404

Oui et non, j'utilise un ordi sans Wi-Fi et le debug sur Android ne marche pas sans Wi-Fi. Or, il semble qu'Xcode ne requiert que d'être sur le même réseau local. Bon, je ne pense pas qu'il existe de Mac sans Wi-Fi de toutes façon.

avatar byte_order 13/06/2017 - 11:09

@PiRMeZuR
> j'utilise un ordi sans Wi-Fi et le debug sur Android ne marche pas sans Wi-Fi

Euh, soit j'ai mal compris le pb soit vous oubliez le debug Android via USB...

avatar fte 13/06/2017 - 08:48 via iGeneration pour iOS

@françois bayrou

Tu n'as pas beaucoup utilisé d'IDEs.

avatar Rez2a 12/06/2017 - 20:59 via iGeneration pour iOS

Ça a l'air d'être une bonne cuvée ce Xcode.
Une pensée pour les UIColor qu'on peut intégrer directement dans le assets catalog également 😅

avatar dscreve 12/06/2017 - 21:00 via iGeneration pour iOS

C'est pas le compilateur qui est écrit en Swift, mais le système de build....le compilateur Swift est toujours écrit en C++

avatar BeePotato 13/06/2017 - 00:12

@ dscreve : « C'est pas le compilateur qui est écrit en Swift, mais le système de build »

En effet. C’est la remarque que j’allais faire aussi.

avatar iGeek07 13/06/2017 - 12:47 via iGeneration pour iOS

@dscreve

Même remarque, c'est une erreur assez importante pour qu'elle ne reste pas dans l'article...

avatar Nicolas Furno macG 13/06/2017 - 15:58 (edité)

@ dscreve, BeePotato et iGeek07 :

Vous avez tout à fait raison, je me suis emporté (c'est ça d’écrire sur les sujet plus techniques qu’on maîtrise mal…).

Désolé pour le temps que ça a pris, mais c'est corrigé. Merci pour votre attention.

avatar PiRMeZuR 12/06/2017 - 21:36 via iGeneration pour iOS

Que du bon ! Même si ce sont effectivement des choses qui existent sur IntelliJ et c'est toujours frustrant de passer de l'un à l'autre et de constater la différence de puissance en matière de fonctions avancées et de raccourcis.

En revanche, pour le débutant que j'étais il y a quelques années, Xcode était et reste le plus ergonomique pour quelqu'un qui apprend. Plus de glisser-déposer, construire une UI est beaucoup plus facile que dans Android Studio ou avec Swing (même si le premier a fait des progrès considérables).

avatar ovea 13/06/2017 - 07:24 via iGeneration pour iOS

Oui, enfin il serait temps de récupérer le développement directement sur iOS … ça montre le manque d'efforts d'Apple pour créer un nouveau modèle d'intégration

avatar Rictusi 13/06/2017 - 07:39

Pour moi porter Xcode sur iOS, c'est la bonne blague.

Mais peut-être qu'ils sont entrain de le développer, ou peut-être qu'ils se disent que ça n'en vaut pas la peine et que ce n'est pas fait pour.

Ou alors vous avez raison et clairement quel manque d'effort de la part de ces fainéants.

avatar smog 13/06/2017 - 10:56

Coder depuis un iPad ou un iPhone ? C'est vraiment une demande ?

avatar byte_order 13/06/2017 - 11:10

Ben pour convaincre qu'un iPad peut remplacer un ordinateur, va falloir, oui.

avatar smog 13/06/2017 - 13:46

Oui, mais objectivement, C est possible ? ;-)
Sérieusement : je n'ai pas d'iPad mais j'ai déjà manipulé, peut-on vraiment coder sérieusement avec ça ? taper du code je veux bien, mais les ressources du projet, etc etc... ? C'est gérable ?

avatar inumerix 13/06/2017 - 07:27 via iGeneration pour iOS

Ils parlent d'une version stable de Xcode. Ah ça existe ? J'en ai jamais vu...

avatar ovea 14/06/2017 - 20:43 via iGeneration pour iOS

Sérieux !?

Ne pas utiliser l'iPhone ou l'iPad
pour faire du dév. est une immense idiotie,

au minimum pour les décisions importantes
liés à l'ergonomie de l'application,

de surcroît pour tout le développement purement graphique qui se passe clairement de codage,

et finalement pour la gestion du projet qui n'a pas besoin d'organisation spécifique supplémentaire.

Concrètement, le Mac est un coût imposé par Apple supplémentaire qui n'a rien à voir avec le développement qui se satisferait d'une interactions entre un playground pro et des parties de codes (((voir juste quelques variables de déploiement de bibliothèques archi réutilisées)))