Ouvrir le menu principal

MacGeneration

Recherche

Swift 5 va bien réduire la taille des apps

Nicolas Furno

vendredi 25 janvier 2019 à 10:45 • 25

Logiciels

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.

Rejoignez le Club iGen

Soutenez le travail d'une rédaction indépendante.

Rejoignez la plus grande communauté Apple francophone !

S'abonner

Un Steam Deck caché dans un clavier Apple pour l'utiliser avec des lunettes AR

13:00

• 2


En Allemagne, le Schleswig-Holstein va abandonner les outils Microsoft comme Teams ou Office

11:38

• 24


macOS Tahoe change plus facilement la couleur des LED des manettes de PlayStation

10:45

• 10


GlassBar opacifie déjà la barre des menus de macOS Tahoe

09:04

• 12


Nouveautés d’iOS 26, macOS Tahoe, Liquid Glass… Tous nos articles pour tout savoir sur la WWDC 2025

06:00

• 11


Les leçons de la WWDC 2025, et ce qu’elle laisse entrevoir de la suite : la semaine Apple

15/06/2025 à 21:00

• 39


Aperçu de Spotlight dans macOS Tahoe : le lanceur idéal pour débuter ?

14/06/2025 à 11:00

• 35


Sortie de veille : une WWDC 2025 réussie ? Notre débrief d’iOS 26, Liquid Glass…

14/06/2025 à 08:00

• 11


SAV : Apple lance un programme de réparation pour des Mac mini M2 qui ne s'allument plus

14/06/2025 à 07:38

• 41


Avec Tahoe, les applications macOS pourront s’afficher sur le Vision Pro

13/06/2025 à 21:57

• 17


Les Youtubeurs de Linus Tech Tips voulaient se moquer des Mac pendant un mois, mais décident finalement de rester chez Apple

13/06/2025 à 18:56

• 104


watchOS 26 : découverte de la nouvelle interface de l'app Exercice

13/06/2025 à 18:27

• 5


Découvrez le tout nouveau UPDF 2.0 – l’éditeur PDF ultime pour Mac et iOS !

13/06/2025 à 15:18

• 0


macOS 26 peut faire le ménage dans les icônes de la barre des menus

13/06/2025 à 14:52

• 11


Avec EnergyKit, Apple veut charger votre watture au moment le plus opportun

13/06/2025 à 13:45

• 13


3DMark, une référence pour comparer les performances des GPU, débarque sur Mac

13/06/2025 à 13:02

• 31