Ouvrir le menu principal

MacGeneration

Recherche

Xcode 11.4 va améliorer le quotidien des développeurs

Nicolas Furno

vendredi 07 février 2020 à 15:00 • 10

Logiciels

Dans la fournée de bêtas de la semaine, Apple a aussi distribué une première bêta de Xcode 11.4. La prochaine version de son outil de développement contient de nombreuses nouveautés, dont certaines sont liées à l’intégration de Swift 5.2. On fait le point rapidement sur les principaux changements à attendre dans cette mise à jour.

Des notifications dans le simulateur

Xcode est fourni avec un simulateur qui permet aux développeurs d’apps iOS, watchOS ou tvOS de tester leur travail sans avoir à installer l’app à chaque fois sur un appareil de test. Il sert aussi à tester une app sans avoir toutes les variantes de chaque matériel jamais vendu par Apple. C’est un outil très pratique, mais certaines fonctions devaient encore être testées directement sur les appareils concernés.

C’était le cas jusque-là des notifications push envoyées par un serveur distant. Le simulateur permettait de tester les notifications générées sur l’appareil lui-même, une autre option proposée aux développeurs, mais pas celles qui sont envoyées depuis un serveur. Avec Xcode 11.4, cette limite sera levée et le simulateur permettra de vérifier que tout fonctionne sans quitter son Mac :

Une notification push affichée directement dans le simulateur de Xcode 11.4 (vidéo @twannl).

Simulateur oblige, vous n’avez pas besoin d’un vrai serveur de push pour utiliser cette fonction. Vous pouvez simuler le serveur aussi à l’aide d’un outil en ligne de commande à utiliser dans le terminal. La fonction peut ainsi être vraiment testée avec un seul Mac, même sans connexion internet.

Swift 5.2 améliore ses messages d’erreur

Xcode 11.4 intègre aussi la première bêta de Swift 5.2, le langage de développement utilisé par Apple. L’un des objectifs annoncés par la firme pour Swift était d’améliorer le quotidien des développeurs et cela commence avec cette mise à jour.

Au programme, des messages d’erreur plus utiles, tout particulièrement si vous utilisez SwiftUI. Le framework d’interface d’Apple n’a pas encore fêté son premier anniversaire et même s’il simplifie considérablement le travail des développeurs pour créer des interfaces simples, il peut vite devenir un cauchemar dès lors que les besoins se compliquent. En particulier, ses messages d’erreur sont souvent assez obscurs et n’aident pas à comprendre ce qui ne convient pas. Swift 5.2 devrait améliorer ce point, comme en témoigne cet exemple :

La même erreur expliquée par Swift 5.1 en haut et Swift 5.2 en bas.

Les messages d’erreur devraient ainsi être en général plus complets et plus clairs, ce qui permettra aux développeurs de comprendre plus facilement ce qui ne va pas et corriger leur code. Et toujours dans l’esprit de régler les problèmes, Xcode 11.4 propose une nouvelle option dans son inspecteur d’interface. Il est désormais possible de séparer chaque « couche » (CALayers) de l’interface, pour mieux inspecter un élément précis.

Swift 5.2 contient aussi de nouvelles fonctions pour les développeurs, qui pourront trouver une liste avec des explications sur le site Hacking with Swift.

Compilations accélérées en Swift et Objective-C

Apple avait aussi promis des progrès pour les temps de compilation du code source, une étape indispensable pour vérifier que tout fonctionne correctement. Avec Xcode 11.4, les développeurs devraient noter une réduction du temps de compilation, qu’ils utilisent toujours Objective-C ou qu’ils soient passés à Swift. Apple va continue de travailler sur ce point en préparant Swift 6, mais cette mise à jour de Xcode améliore déjà les choses sur les projets existants.

Un développeur a compilé deux projets, un dans chaque langage, sur le même Mac équipé d’un processeur huit cœurs. Avec Xcode 11.3, il fallait environ 77 secondes pour compiler les deux projets. La mise à jour baisse ce temps d’une vingtaine de secondes environ, avec un gain plus net pour Swift que pour Objective-C :

Xcode 11.4 est disponible au téléchargement depuis le site dédié aux développeurs d’Apple. Cette version nécessite pour la première fois macOS Catalina, elle ne s’installe plus sur Mojave (enfin, en tout cas pas sans bricoler).

Soutenez MacGeneration sur Tipeee

MacGeneration a besoin de vous

Vous pouvez nous aider en vous abonnant ou en nous laissant un pourboire

Soutenez MacGeneration sur Tipeee

Apple Music et Apple TV indisponibles pour certains utilisateurs

10/12/2025 à 21:57

• 8


120 Hz, HDR, A19 : du code laisse entrevoir les caractéristiques du prochain Studio Display

10/12/2025 à 21:00

• 11


Test de l'écran 5K de Japannext : pas de fioritures et un prix intéressant

10/12/2025 à 20:30

• 3


Le détecteur de présence FP300 d’Aqara joue à cache-cache : de nouveau disponible, mais pour combien de temps ?

10/12/2025 à 18:37

• 7


Les États-Unis veulent contrôler les profils des réseaux sociaux des touristes

10/12/2025 à 18:13

• 97


Photoshop s’intègre à ChatGPT, mais ça ne vaut pas le Nano Banana de Google

10/12/2025 à 16:32

• 6


SoundAnchor évite à votre Mac d’utiliser le mauvais micro

10/12/2025 à 14:54

• 5


Oubliez Google : le véritable rival d’OpenAI pour Sam Altman, c’est Apple

10/12/2025 à 14:27

• 68


Bons plans : les ampoules, serrures et autres objets connectés toujours au prix du Black Friday

10/12/2025 à 14:24

• 7


La folie des bilans de l’année : même ma voiture propose son « wrapped »

10/12/2025 à 10:50

• 19


Un écran nomade 15" USB-C/HDMI pour moins de 100 €

10/12/2025 à 10:40

• 0


Pénurie de mémoire : des fabricants de PC s’apprêteraient à augmenter leurs prix

10/12/2025 à 10:03

• 25


Apple et les analystes miseraient sur un lancement réussi du premier iPhone pliant à l’automne 2026

10/12/2025 à 08:59

• 24


Google Maps se met enfin à niveau : Plans et Waze faisaient déjà ça en 2016

10/12/2025 à 07:14

• 82


Pebble lance l’Index 01, la bague qui note ce que votre cerveau oublie

10/12/2025 à 06:30

• 34


Jeff Williams en route pour le conseil d’administration de Disney

10/12/2025 à 05:57

• 9