Marzipan devait être la star de la WWDC. Après avoir dévoilé son nom définitif, « projet Catalyst », Craig Fedherighi lui a finalement consacré seulement quelques minutes. Il s’est fait voler la vedette par SwiftUI, un nouveau framework permettant de créer des interfaces pour tous les appareils Apple, avec une syntaxe déclarative en Swift. En promettant « moins de code pour de meilleures apps », il semble préfigurer le futur du développement applicatif pour la plateforme Apple.
SwiftUI, donc, est un nouveau framework permettant de construire des interfaces, codé « en Swift et pour Swift ». Tout l’intérêt de SwiftUI repose dans son approche déclarative : on déclare la structure et l’arrangement de l’interface, on prévoit les éléments textuels et graphiques, et le système se charge du reste. Espacements, localisation, prise en charge du mode sombre et de Dynamic Type, animations… sauf à ce que les développeurs veuillent les modifier, SwiftUI fournit automatiquement tous les comportements par défaut.
SwiftUI évoque la manière dont on peut concevoir les interfaces sur Android, ou avec des frameworks comme React Native. Le code est plus simple et plus clair, le résultat est plus flexible et résilient, et — surtout — s’exécute sur tous les appareils. Des fondations à l’interface, les développeurs peuvent partager de plus en plus de code entre les différentes « versions » d’une application. L’objectif est clair : qu’une même application tourne de watchOS à macOS en passant par iOS, avec le même code, à l’exception de quelques ajustements spécifiques à chaque taille d’écran.
Mais alors, quid de Catalyst ? Il apparait comme une technologie de transition — rendez-vous compte qu’il repose sur une bidouille qui consiste à implanter un dossier système iOS, iOSSupport
, au sein de macOS. SwiftUI semble être une solution bien plus robuste, parfaitement intégrée dans Xcode, quoiqu’encore très jeune. Pour le moment, SwiftUI cohabite avec AppKit sur macOS, UIKit sur iOS et macOS, et WatchKit pour watchOS. Pour le moment…