À la fin de l’année, quand vous téléchargerez une application sur votre iPhone, elle s’installera peut-être aussi automatiquement sur votre Mac, en plus de votre iPad, votre Apple Watch et votre Apple TV.
Apple prévoit en effet de donner la possibilité aux développeurs de créer des applications vraiment universelles, fonctionnant à la fois sur iOS et sur macOS, a révélé récemment Mark Gurman. La nouvelle, qui reste une rumeur à ce stade, mais une rumeur à prendre très au sérieux au vu du pedigree du journaliste, a fait sursauter toute la communauté des développeurs Apple.
C’est que le projet secret, qui porte le nom de code Marzipan, pourrait bouleverser la création des applications et le marché. Une perspective qui réjouit autant qu’elle inquiète les développeurs.
Un framework commun en vue
Bien que macOS et iOS partagent des technologies communes, les développeurs doivent utiliser actuellement deux boîtes à outils différentes pour créer des applications sur chaque plateforme.
Le framework du Mac, dont les origines remontent à NeXTSTEP (d’où le préfixe NS
de ses classes), s’appelle AppKit. Le framework d’iOS, qui a été créé de zéro pour ne pas s’embarrasser du vieil héritage du Mac, se nomme UIKit.
Ces frameworks ont chacun leur propre logique. Pour prendre un exemple parmi tant d’autres, la classe UIColor
d’UIKit sert à la même chose que la classe NSColor
d’AppKit, mais elle s’utilise différemment. Il ne suffit pas de remplacer les préfixes UI
par des NS
pour convertir une application iOS en application Mac, ou inversement.
C’est cette bipartition qu’Apple veut faire disparaître au plus tôt cette année, selon le journaliste de Bloomberg. Il ne cite pas explicitement la création d’un framework commun, mais c’est ce qui sous-tend la possibilité de « concevoir une seule application qui fonctionne avec un écran tactile ou une souris selon qu’elle tourne sur un iPhone ou un Mac. »
Une lecture renforcée par l’existence d’UXKit, un framework utilisé en catimini par Apple qui facilite la transition d’iOS à macOS. Vous pouvez remplacer les préfixes UI
par des UX
, et le résultat fonctionne sur Mac, comme le montre l’exemple ci-dessous avec UITableView
converti en UXTableView
.
Mais ce nouveau framework, qui est utilisé par l’application Photos et l’application Prix des Apple Store, n’a toujours pas été officialisé par Apple et ne peut donc être exploité par les développeurs. Le projet Marzipan (massepain en français, un biscuit aux amandes) consiste peut-être en son perfectionnement et son lancement public.
Les craintes
L’idée d’un nouveau framework commun à macOS et iOS fait frémir des développeurs pour plusieurs raisons. Certains imaginent déjà un abandon d’AppKit et UIKit au profit de Marzipan (appelons-le comme ça) à long terme, ce qui obligerait à réécrire toutes les applications.
« On ne peut pas le nier, ce serait emmerdant pour une partie des développeurs, explique l’un d’entre eux, Joe Cieplinski, dans une longue analyse de la rumeur. Ceux qui auraient la meilleure raison de se plaindre de Marzipan, ce sont ceux qui ont les plus gros projets historiques. »
Une telle transition, purement spéculative au moment de la rédaction de ces lignes, faut-il le rappeler, a déjà eu lieu avec le passage du jeu d’API Carbon à Cocoa qui s’est étalé sur plusieurs années.
Sur les 30 années passées à développer l’utilitaire PopChar, « le plus gros changement a été la transition de C++ (avec Carbon) vers Objective-C (avec Cocoa) », nous avait indiqué son créateur Günther Blaschek. « Il a fallu tout reprendre de zéro ; pas seulement l’interface utilisateur, mais toutes les technologies fondamentales de polices. »
Et une réécriture pour quel résultat ? Pour une application que l’on ne pourra facturer qu’une seule fois ? Qui dit application complètement universelle, dit en effet achat unique de la part du consommateur. À l’heure où des éditeurs font toujours payer séparément leurs applications iPhone et iPad, cela risque de faire grincer des dents.
C’est peut-être pourquoi Apple pousse fortement le modèle de l’abonnement depuis 2016. Plutôt que de faire payer cher le téléchargement d’une application compatible avec l’iPhone, l’iPad et le Mac, les éditeurs pourraient lisser le coût sur la durée avec un abonnement.
Se pose aussi la question de la qualité des applications Mac nouvellement créées. Ne va-t-on pas voir déferler un torrent de portages d’apps iOS fait à la va-vite, sans bonne adaptation à la souris et au clavier ? C’est une appréhension de certains développeurs Mac « historiques », dont Michael Tsai :
Je ne veux pas utiliser le plus petit dénominateur commun, [c’est-à-dire] les portages iOS. J’aime utiliser le Mac parce que ses applications tirent vraiment partie de tout ce qu’un environnement de bureau a à offrir. Je suis toujours ennuyé par les applications qui consistent essentiellement en une interface iOS dans une fenêtre et qui ne prennent pas en charge les conventions ou les fonctionnalités du Mac.
Les espoirs
« Mais qui s’en soucie ? lui répond indirectement Joe Cieplinski. Il y a déjà une tonne de merdes disponibles sur Mac. Voilà ce qui compte : les gens pour qui les bons logiciels sont importants sépareront le bon grain de l’ivraie. Et les gens pour qui créer un bon logiciel est important feront leur boulot. »
Interrogé par nos soins bien avant la rumeur Marzipan, en février 2016, le développeur Steven Troughton-Smith réfutait pour sa part qu’un framework commun entraîne forcément de mauvaises apps Mac :
Les applications tvOS sont parfaitement adaptées aux téléviseurs, en dépit du fait qu’elles sont créées avec le même UIKit que nous utilisons pour les apps iOS. [Un framework commun] ne signifierait pas qu’OS X aurait de simples applications iOS. Ça signifie au contraire que les développeurs pourraient concevoir et fabriquer des applications sans se soucier d’un second paradigme.
Selon ces deux programmeurs, un framework unique pourrait être une immense chance pour les créateurs d’apps et au bout du compte pour les utilisateurs.
Les bons développeurs iOS qui ne codent pas pour Mac à cause de la barrière des frameworks pourraient finalement s’intéresser aux applications de bureau, et inversement. Cela baisserait aussi la barrière à l’entrée de l’écosystème Apple pour les nouveaux développeurs, armés dès le départ pour créer des applications Mac et iOS. « Plus de sang neuf est synonyme de plus d’innovation, plus de créativité et plus de diversité », fait valoir Joe Cieplinski.
Les développeurs Mac + iOS actuels pourraient aussi y trouver leur compte. Un framework unifié leur permettrait de réduire le nombre de lignes de code (et corolairement le nombre d’erreurs possibles) en partageant plus d’éléments entre les différentes versions d’une même application.
Quant à la question d’une éventuelle réécriture, cette opération serait effectivement chronophage, mais elle permettrait de repartir sur une nouvelle base plus saine, comme en témoignait l’auteur de PopChar : « Au bout du compte, j’ai été surpris de voir que le résultat était bien plus propre et cohérent. »
On peut même voir en Marzipan un moyen de stopper (un peu) la prolifération des applications écrites avec des technologies multiplateformes qui ont généralement des performances bien en deçà des apps natives. En facilitant le développement pour ses deux principales plateformes à la fois, Apple encouragerait peut-être une petite partie des éditeurs à privilégier ses outils plutôt que d’autres.
Enfin, plutôt que tiré vers le bas, le Mac pourrait ressortir grandi en bénéficiant de nouvelles fonctionnalités en même temps qu’iOS, ce qui n’est pas le cas aujourd’hui. Il y a l’exemple symptomatique du Mac App Store, qui est à mille lieues de l’App Store. À ce sujet, les nouveautés de l’App Store d’iOS 11 (mise en avant de la compatibilité avec les appareils, fiches Mac App Store visibles sur iPhone…) ne sont-elles pas annonciatrices d’une fusion des boutiques d’applications ?
Rendez-vous à la WWDC ?
Alors, le verre sera-t-il plus à moitié plein ou à moitié vide ? Il faudra attendre la WWDC, probablement, pour connaître les plans exacts d’Apple et se faire une opinion plus précise, car pour l’heure, on en reste au stade des spéculations.
Mais il est indéniable que macOS est désormais l’« intrus », pour reprendre un terme de Steven Troughton-Smith, dans l’écosystème de développement Apple. Et au vu de la mutualisation en cours dans le matériel, avec l’intégration des puces Tx au Mac, il serait surprenant qu’Apple ne fasse pas la même chose sur le plan logiciel.