Swift 5 va bien réduire la taille des apps

Nicolas Furno |

Apple a distribué de toutes nouvelles bêtas d’iOS, macOS, tvOS et watchOS hier soir, mais les développeurs peuvent aussi bénéficier d’une nouvelle version de Xcode. Numérotée 10.2, cette mise à jour intègre plusieurs nouveautés intéressantes pour créer des apps, mais la plus significative est certainement la première bêta de Swift 5.

Image Hacking with Swift

Swift 5 apporte enfin la stabilité ABI

La cinquième version majeure du langage de développement d’Apple est intégrée à Xcode 10.2 et elle sera compatible avec les nouvelles versions des systèmes d’exploitation aussi en bêta. On l’attendait à l’origine en juin dernier, lors de la WWDC 2018, mais son développement avait été retardé et les développeurs n’ont eu « que » Swift 4.2 à se mettre sous la dent l’an dernier. Ce retard est justifié par l’arrivée d’une fonction attendue de longue date pour le langage de développement d’Apple : la stabilité ABI.

Après la stabilité du code source obtenue avec Swift 4, la stabilité ABI est la dernière brique nécessaire pour stabiliser Swift, étape indispensable de son développement. Comme nous avions eu l’occasion de le détailler dans un précédent article, les ABI font le lien entre le programme écrit par un développeur et le langage machine, la série de bits qui sera exécutée par le processeur. C’est un élément de bas niveau qui est indispensable à tout programme et qui n’était, jusque-là, pas intégré aux systèmes d’exploitation. À la place, les apps intégraient leurs propres fichiers, ce qui avait plusieurs inconvénients.

Tant que la stabilité ABI n’était pas en place, chaque application devait intégrer des fichiers supplémentaires. Ici, ceux de notre app iGeneration.

Le plus évident est que la taille des apps codées en Swift était plus élevée. Avec cette cinquième version, leur poids va au contraire diminuer, puisque les fichiers qui devaient être intégrés auparavant dans les apps ne sont plus nécessaires. Les ABI étant désormais stables, ce lien entre le code et le processeur sera intégré directement dans les systèmes d’exploitation d’Apple.

Les gains à attendre devraient être significatifs, puisque ces fichiers représentent vite plusieurs dizaines de méga-octets. À titre d’exemple, un projet en Swift totalement vide pesait 2,4 Mo avec Swift 4.2, le même avec Swift 5.0 ne pèse plus que 24 Ko. Plus une app sera complexe et plus la différence devrait se sentir.

Il y a d’autres avantages liés à la stabilité ABI, en particulier du côté des performances. En outre, Apple peut améliorer les libraries intégrées à ses systèmes à la faveur d’une mise à jour et toutes les apps développées en Swift en bénéficieront. Auparavant, elles devaient absolument être mises à jour pour profiter des améliorations apportées.

Autres nouveautés dans Swift 5 et Xcode 10.2

Outre la stabilité ABI, Swift 5 apporte plusieurs nouveautés que les développeurs pourront intégrer dans leur code. Il est désormais possible d’enregistrer du texte brut dans une variable, y compris avec des caractères spécifiques qui étaient jusque-là interprétés par le compilateur. Un nouveau type dynamique fait son apparition, ce qui sera utile notamment aux développeurs qui mixent Swift avec un langage dynamique, comme JavaScript. Plus de souplesse également pour les énumérations : il est désormais possible de lister un cas « inconnu », une sorte de réponse par défaut quand les autres ne sont pas valables.

L’une des nouveautés de Swift 5, la possibilité de définir un cas inconnu dans une énumération.

Il y a encore d’autres nouveautés, que vous pourrez découvrir dans la liste des nouveautés publiée par Apple. Vous trouverez également des explications avec des exemples pour chaque fonction dans cet article, ou alors de manière interactive dans ce Swift Playground qui rassemble toutes les nouveautés.

Du côté de Xcode 10.2, la possibilité d’utiliser un serveur de cache macOS pour télécharger des fichiers. Pour rappel, il est possible depuis High Sierra d’utiliser un Mac en guise de cache pour les mises à jour des systèmes et applications, pour les données d’iCloud et maintenant pour les données gérées par Xcode. Ce sera sans doute très utile dans les entreprises où plusieurs développeurs travaillent avec l’outil de développement d’Apple.

Le constructeur annonce aussi avoir corrigé le bug qui a touché, entre autres, Instagram. Dans certains cas, il était impossible de compiler une app optimisée pour les nouveaux iPhone et iPad de 2018 et qui fonctionnait aussi sous iOS 9. Xcode 10.2 règle le problème, il suffira de compiler à nouveau l’app pour avoir les deux, l’interface optimisée et la compatibilité avec iOS 9.

Parmi les petites nouveautés de cette mise à jour, une nouvelle option a fait son apparition dans les préférences de Xcode. Comme son nom l’indique, « Always use Dark » permet d’utiliser l’app en mode sombre, même si macOS Mojave est configuré en mode clair. De manière générale, c’est tout ou rien, mais de nombreux développeurs voulaient Xcode toujours en mode sombre, sans pour autant avoir le système entier dans ce mode. Ils ont été entendus !

Capture d’écran @bzamayo.

Il y a encore de nombreuses autres nouveautés à découvrir dans la liste fournie par Apple. Il y a aussi quelques bugs connus à prendre en compte, cette version n’étant pas encore conseillée en production.

Accédez aux commentaires de l'article