Ouvrir le menu principal

MacGeneration

Recherche

Sept ans plus tard, SwiftUI n’arrive toujours pas à servir des apps Mac pur jus


Sept ans après son lancement, SwiftUI donne toujours du fil à retordre aux développeurs. Pensé pour simplifier la création d’interfaces sur tous les appareils Apple, le framework souffre encore de lacunes sur macOS, au point de compliquer la confection d’applications impeccables. C’est le constat dressé récemment par le développeur indépendant Paulo Andrade.

Exemple d’apps créées avec SwiftUI. Image Apple.

Dans un long billet de blog, celui-ci raconte son expérience frustrante avec SwiftUI. Paulo Andrade connait bien le développement sur macOS : c’est le créateur de Secrets, un gestionnaire de mots de passe qu’il considère, à juste titre, comme une « vraie » application Mac. Dans la blogosphère Apple, un terme s’est imposé pour désigner ce type d’app : « Mac-assed app », que l’on pourrait traduire par « app Mac pur jus ». Il signifie qu’une application ne se contente pas d’utiliser des technologies natives, mais respecte aussi les conventions du système et s’intègre parfaitement à macOS. En portant son application Shopie d’iOS vers le Mac avec SwiftUI, Paulo Andrade espérait conserver ce soin, mais il a buté sur les limites du framework.

Shopie, la nouvelle app des créateurs de Secrets pour traquer les baisses de prix 🆕

Shopie, la nouvelle app des créateurs de Secrets pour traquer les baisses de prix

Le développeur pointe notamment des problèmes autour de la gestion de la sélection. Sur Mac, celle-ci comporte plusieurs subtilités : un élément peut être sélectionné dans une fenêtre inactive, dans une vue qui n’a plus le focus ou encore rester la cible d’un menu contextuel sans être sélectionné. Or, SwiftUI ne gère pas tous ces cas de figure correctement.

Le cas des menus contextuels illustre bien le problème. Dans une application Mac bien conçue, ouvrir un menu contextuel fait apparaître un indicateur visuel autour de l’élément concerné, même s’il n’est pas sélectionné. Dans l’exemple ci-dessous pris dans l’app Rappels, le menu contextuel s’applique à la liste « Shopping » alors que « Reminders » reste sélectionné, et l’interface communique clairement cette distinction.

Dans Rappels, on voit que le menu contextuel est dédié à la liste Shopping (celle-ci est encadrée), alors même que Reminders a été sélectionné au préalable. Image Paulo Andrade.

À l’inverse, dans Bourse (exemple ci-dessous), rien n’indique à quel élément est lié le menu contextuel. Quant à Notes, un clic secondaire sur une note non sélectionnée modifie immédiatement la sélection. Ces trois applications sont pourtant toutes basées sur SwiftUI, mais chacune a un comportement différent.

Dans Bourse, c’est le menu contextuel lié à AAPL qui est affiché ici, mais rien ne l’indique. Image Paulo Andrade.

Autre point sensible : le glisser-déposer. Paulo Andrade explique que SwiftUI ne permet toujours pas de gérer ces interactions avec la même finesse qu’AppKit, le framework historique du Mac. Résultat, certains comportements restent imparfaits. Il évoque aussi des difficultés autour des raccourcis clavier et de la création de barres d’outils.

Ces limitations ne mènent pas forcément à une impasse, mais les contourner demande souvent beaucoup d’efforts. « SwiftUI est productif, moderne et souvent agréable, jusqu’à ce que vous essayiez de créer une vraie bonne application Mac. On se retrouve alors à lutter contre le framework pour des fonctionnalités que le Mac a résolues il y a 20 ans », résume-t-il.

De NeXTSTEP à SwiftUI, comment Apple a réarchitecturé ses systèmes

De NeXTSTEP à SwiftUI, comment Apple a réarchitecturé ses systèmes

Le constat est partagé par d’autres développeurs. Celui de l’application Radiccio déclare par exemple avoir passé « la majeure partie de la journée à se battre avec SwiftUI sans succès. » Sa solution a finalement été de réécrire certaines parties avec AppKit. Mais cette roue de secours ne devrait plus être nécessaire aujourd’hui. SwiftUI est censé être le framework universel d’Apple et il n’a plus l’excuse de la jeunesse sept ans après son lancement.

Le problème de fond, c’est qu’en compliquant inutilement le travail des développeurs, Apple pousse à faire des compromis ou à abandonner certains raffinements propres au Mac, tirant la qualité globale des applications vers le bas. Et dans le même temps, Electron devient une tentation de plus en plus forte avec son approche web et multiplateforme. Une rumeur veut qu’Apple peaufine l’interface de macOS 27. Espérons qu’elle en profite aussi pour donner aux développeurs les moyens de créer des apps Mac pur jus avec ses propres technologies.

Qu’attendre de macOS 27 ?

Qu’attendre de macOS 27 ?

La 5K haut de gamme enfin accessible

15:45

• 0


MacBook Neo : nouvelle baisse de prix sur les 2 modèles

15:44

• 23


Google Chrome : le navigateur le plus rapide au monde (jusqu’à lundi ?)

09:30

• 37


Sortie de veille : nouveau Siri, iOS 27… Que faut-il attendre de la WWDC 2026 ?

08:00

• 2


Siri, IA et chasse aux bugs : que nous réserve iOS 27 ?

07:30

• 17


L’App Store retire MAX, la super-app russe poussée par le pouvoir en place

07:00

• 37


WWDC 2026 : comment suivre le keynote d'Apple en direct lundi

05/06/2026 à 23:25

• 30


Anthropic demande un moratoire sur l’IA auto-entretenue, tout en maintenant le pied sur l’accélérateur

05/06/2026 à 22:10

• 25


Luminar Neo 1.27.0 enrichit la retouche de portrait et inaugure ses soldes d'été 📍

05/06/2026 à 22:00

• 0


MacBook : les délais de livraison s'envolent sur les configurations riches en RAM

05/06/2026 à 18:25

• 11


Les AirPods Ultra auraient déjà des yeux, mais Siri n’a pas encore de cerveau

05/06/2026 à 18:19

• 18


Le nouveau Siri pourrait revenir avec une bêta et même une liste d’attente

05/06/2026 à 18:18

• 63


The Verge a créé un MacBook Neo multicolore grâce aux pièces détachées vendues par Apple

05/06/2026 à 16:18

• 16


LM Studio et Locally connectent les modèles d'IA de votre Mac à votre iPhone

05/06/2026 à 15:09

• 10


Un développeur cache du code qui demande aux IA de tout effacer dans sa bibliothèque Java

05/06/2026 à 13:00

• 49


APR : une boutique en ligne pour Inter-Actif et des magasins en difficulté chez C&C

05/06/2026 à 12:37

• 26