SAN JOSE, Californie. – Lorsque Apple a dévoilé macOS Catalina à la WWDC ce mois-ci, une annonce a suscité un vif intérêt de la part des utilisateurs et des développeurs Mac: une nouvelle façon de transformer les applications iPad en applications Mac entièrement natives.
Surnommé Project Catalyst, il promettait d'augmenter le nombre d'applications natives de qualité sur la plate-forme Mac en exploitant le travail existant des développeurs dans l'écosystème d'apps sans doute plus robuste iOS (et maintenant, iPadOS). Mais cela soulève des questions: qu'est-ce que cela signifie pour les expériences futures des utilisateurs de Mac? Cela changera-t-il le type de logiciel conçu pour les Mac? L'écosystème d'Apple est-il une première sur mobile?
Il y a ensuite les préoccupations des développeurs: Catalyst est-il juste un tremplin vers SwiftUI? Quels sont les défis auxquels les développeurs peuvent s'attendre lorsqu'ils adaptent leurs applications iPad pour Mac?
Ars s'est entretenu avec des membres clés de l'équipe Apple responsables du développement et de la promotion de Project Catalyst à la WWDC, ainsi qu'avec une poignée de développeurs d'applications qui ont déjà créé des applications Mac de cette façon. Nous leur avons demandé comment Catalyst fonctionne, à quoi ressemblait l'avenir des logiciels Apple et à quoi les utilisateurs peuvent s'attendre.
Le Mac est une plate-forme populaire parmi les développeurs, les créatifs et au-delà. Mais si l'iPhone et l'iPad App Store ont prospéré comme l'un des écosystèmes logiciels les plus dynamiques de l'industrie, le Mac App Store n'a pas gagné le même niveau de traction ou de signification, malgré la présence d'applications puissantes non disponibles sur les mobiles.
Apple cherche à canaliser une partie de son succès avec l'App Store iOS sur macOS avec Catalyst. Nous verrons comment les développeurs utilisent pas à pas ce que Apple a construit, ainsi que les défis auxquels ils sont confrontés. Et nous partagerons les réponses d'Apple à nos questions sur la manière dont l'entreprise envisage de maintenir un niveau élevé de qualité pour les applications Mac lorsqu'un afflux d'applications dérivées pour mobiles arrive sur la plate-forme, quels sont les plans à long terme d'Apple pour les applications inter-plates-formes à travers le monde. l'écosystème entier ressemble, et plus encore.
Avant de commencer, voici une liste des représentants Apple et des développeurs d'applications tierces avec lesquels nous avons parlé pour cette plongée approfondie:
- Todd Benjamin, directeur principal du marketing chez Apple pour MacOS
- Ali Ozer, responsable technique Apple chez Cocoa, qui a travaillé sur le projet Catalyst
- Shaan Pruden, directeur principal de la gestion des partenaires et des relations avec les développeurs chez Apple
- Manu Ruiz, un ingénieur logiciel moteur chez Gameloft qui a travaillé pour amener le jeu iPad Asphalte 9: Légendes d'iPad à Mac
- Alex Urbano, ingénieur graphique chez Gameloft, qui a également travaillé sur la version Mac de Asphalte 9: Légendes
- Rich Shimano, développeur iOS chez TripIt, une application de voyage apportée en natif sur Mac à l'aide de Catalyst
- Nolan O'Brien, ingénieur en informatique senior de Twitter qui a utilisé Catalyst pour ramener Twitter sur Mac
Plongeons dedans.
Contenus
Table des matières
Une introduction à Project Catalyst
En décembre 2017, Bloomberg avait annoncé qu'Apple travaillait sur un projet qui faciliterait le développement d'applications pour Mac OS et iOS. À la WWDC, nous avons appris cette année que l’un des principaux composants de cette campagne s'appelle Project Catalyst, ce qui permet de porter des applications iPad sur Mac relativement rapidement.
Les développeurs d’applications peuvent commencer à le faire maintenant avec la version bêta de Xcode, l’environnement de développement qu’Apple maintient pour créer des applications pour ses différentes plates-formes. Selon Apple, les développeurs ont simplement besoin d'ouvrir leur projet d'application iPad dans Xcode et de cocher une seule case pour pouvoir créer une application Mac. Bien sûr, ce ne sera pas toujours assez aussi simple que cela, mais il est plus proche que vous ne le pensez.
L'idée est de gérer certains des aspects difficiles du portage d'une application mobile sur le bureau – par exemple, passer d'une interface tactile à une interface basée sur un pointeur souris – automatiquement et rapidement afin que les développeurs puissent ajouter directement des fonctionnalités propres au bureau. où désiré.
Voici ce que le site du développeur d’Apple en dit:
L'application Mac s'exécute de manière native, en utilisant les mêmes infrastructures, ressources et environnements d'exécution que les applications conçues spécialement pour Mac. Des fonctionnalités fondamentales de bureau et de fenêtrage Mac sont ajoutées, et les commandes tactiles sont adaptées au clavier et à la souris. Les éléments d'interface utilisateur personnalisés que vous avez créés avec votre code apparaissent tels quels. Vous pouvez ensuite continuer à implémenter des fonctionnalités dans Xcode avec les API UIKit pour vous assurer que votre application a fière allure et fonctionne de manière transparente.
Notez que ce n'est pas de l'émulation dont nous parlons; Apple a plutôt cherché à rendre possible la création d'applications natives pour le Mac et l'iPad à partir du même projet Xcode.
WWDC, Apple a consacré plusieurs sessions à la formation des développeurs sur ses efforts et sur ce qu’elle considère être les meilleures pratiques pour l’adaptation des applications iPad au bureau. Todd Benjamin, directeur principal du marketing pour macOS, a expliqué à Ars pourquoi Apple a décidé d'en faire une priorité maintenant:
Nous en sommes au stade actuel où les développeurs ont entièrement développé des applications pour iPad. Il existe donc une excellente occasion de tirer parti du travail qu'ils ont réalisé, qui non seulement exploite ce qu'ils ont fait sur iOS, mais tire également parti des espace d'écran et certaines choses que nous pouvons bien exploiter lorsque nous les apportons sur Mac.
Le directeur principal de la gestion des partenaires et des relations avec les développeurs, Shaan Pruden, a ajouté:
[Developers’] Les clients leur demandaient une version Mac parce qu'ils disposaient d'une base d'installation importante sur l'iPad, et ils ne pensaient tout simplement pas qu'ils avaient les moyens de constituer une autre équipe de développement et de faire un portage.
Et pourquoi passer d'iPad à Mac plutôt que l'inverse? "Nous avons des millions d'applications pour l'iPad", a déclaré à Ars, Ali Ozer, responsable de l'ingénierie chez Apple Cocoa, qui travaillait directement à faire de Catalyst une réalité. "Il y a donc une direction qui a plus de sens, du moins en ce qui concerne l'activation des développeurs."
Catalyst n’a pas besoin d’apporter des applications iPhone à Mac OS – elles doivent être des applications iPad. Cela peut paraître surprenant: l’iPhone possède l’un des écosystèmes logiciels les plus robustes au monde, alors que l’iPad en est un sous-ensemble. Il existe certaines applications iPad qui ne figurent pas sur l'iPhone, mais il existe d'innombrables applications pour iPhone qui ne le sont pas.
Benjamin a déclaré que Apple avait pris cette décision car il était plus naturel de transférer une application de l'iPad sur le bureau que d'adapter une application iPhone:
En ce qui concerne le design, la différence entre une application iPad et une application iPhone réside dans le fait que celle-ci a subi une itération de conception afin de tirer parti de davantage d'espace à l'écran. Et lorsque vous apportez cette application sur le Mac … vous avez quelque chose de conçu autour de cet espace avec lequel vous pouvez travailler et avec lequel vous pouvez commencer.
M. Ozer a indiqué que cette initiative visait également à prévenir les inquiétudes des utilisateurs concernant le risque de débordement des ports mobiles sur le bureau, même si les ports ne sont pas adaptés à la plate-forme. "C’est un moyen de sensibiliser les développeurs au fait qu’une application iPhone dans sa forme actuelle pourrait ne pas convenir", a-t-il déclaré.
Comment ça marche
De nombreux frameworks utilisés par les développeurs pour créer des applications pour iPad et Mac sont similaires. Une partie de ce que Apple a fait ici a été de combler les différences qui existaient auparavant entre les versions iPad et Mac des frameworks de développement partagés. Mais le plus grand écart est celui entre les cadres de l'interface utilisateur.
Les développeurs construisent des interfaces utilisateur et des fonctionnalités pour les applications iPad à l'aide du framework UIKit. Pendant ce temps, le Mac a un framework appelé AppKit qui fait à peu près les mêmes choses. Auparavant, les applications Mac ne pouvaient pas exécuter les applications créées à l'aide d'UIKit et les appareils iOS ne pouvaient pas exécuter les applications créées à l'aide d'AppKit. Même si un développeur pouvait réutiliser certaines parties de ses applications iPad lors de la création de versions Mac, cela nécessitait un travail supplémentaire considérable.
Lors de la visualisation de leur projet iPad dans Xcode, un développeur peut cocher une case pour sélectionner le Mac en tant que périphérique pris en charge. Une fois cette opération terminée, Xcode apporte les modifications suivantes au projet, conformément à la documentation d'Apple:
- Ajoute un identifiant de paquet pour la version Mac de votre application.
- Ajoute le droit d'application Sandbox à votre projet. Xcode inclut ce droit dans la version Mac de votre application, mais pas dans la version iOS.
- Ajoute Mon Mac à la liste des destinations que vous pouvez choisir lors de l'exécution de votre application à partir de Xcode.
- Exclut les cadres incompatibles, les extensions d'applications et tout autre contenu incorporé.
Sauf erreur, le développeur devrait alors pouvoir déployer une version de base de son application pour Mac. Les fonctionnalités suivantes spécifiques à Mac devraient automatiquement faire partie de la nouvelle version Mac, selon Apple:
- Une barre de menus par défaut pour votre application.
- Prise en charge des entrées de trackpad, souris et clavier.
- Prise en charge du redimensionnement de la fenêtre et de l'affichage en plein écran.
- Barres de défilement de style Mac.
- Prise en charge du copier-coller.
- Prise en charge du glisser-déposer.
- Prise en charge des commandes du système Touch Bar.
À partir de ce moment, le développeur peut ajouter des éléments de barre de menus, appliquer une translucidité au contrôleur de vue principal, afficher et renseigner un menu de préférences, ajouter des événements de survol, etc.
Certains frameworks sont disponibles sur une plate-forme mais pas une autre. Par exemple, ARKit n'est pas disponible sur Mac. Par conséquent, un développeur qui porte une application utilisant ARKit pour offrir des expériences de réalité augmentée voudra bien en tenir compte. Dans certains cas, le code relatif aux fonctionnalités et aux frameworks non présents sur le périphérique cible ne sera pas automatiquement utilisé.
Dans d'autres cas, les développeurs peuvent bien sûr utiliser une logique conditionnelle dans leur code pour offrir différentes expériences et fonctionnalités en fonction du périphérique sur lequel le logiciel est exécuté. Apple a toutefois prévu que cette approche soit réservée aux cas où les fonctionnalités ne sont tout simplement pas disponibles sur un certain périphérique mais sont souhaitées sur un autre.
"Nous aimerions qu'ils utilisent le moins possible les conditionnels car, vous savez, les conditionnels sont des chemins de code différents sur lesquels vous devez vous inquiéter", a expliqué Ozer. "Et je pense que les choses que nous avons liées aux conditionnelles sont des API et des fonctionnalités qui sont vraiment très réservées aux Mac."
Selon Apple, bon nombre des développeurs qui ont créé les premières applications Catalyst tierces ont réussi à obtenir une version acceptable fonctionnant sur le Mac dans les 24 heures. Mais chacun a fait face à des défis uniques à chaque application.