UXKit, la surprise cachée de Photos

Nicolas Furno |

La nouvelle bêta d’OS X Yosemite sortie hier soir est pleine de surprises. Cette nouvelle version ne contient pas beaucoup de nouveautés au niveau du système, mais elle embarque la toute première version de Photos, le nouveau gestionnaire d’images d’Apple. On a déjà eu l’occasion d’évoquer les nouveautés de ce logiciel pour l’utilisateur, mais ce n’est que la partie émergée de l’iceberg. Sous la surface, la nouveauté la plus importante est UXKit, un nouveau framework qui permet à Apple de réutiliser des éléments d’interface d’iOS dans ce logiciel OS X.

Pour le moment, UXKit n’est pas disponible pour les développeurs tiers et seul Apple l’utilise, uniquement dans Photos. Mais il semble évident que c’est une situation intermédiaire et que le constructeur ouvrira ce nouveau composant pour tout le monde. Il faudra probablement attendre OS X 10.11 qui sera a priori annoncé lors du WWDC de juin et qui devrait sortir à l’automne. En attendant d’en savoir plus, les développeurs qui ont installé la bêta peuvent jouer avec UXKit et créer des applications qui exploitent le nouveau framework, par exemple en utilisant ce projet Xcode prêt à l’emploi.

Une liste créée avec UXKit (image @Dmillian)

Avant de parler des nouveautés, il est important de rappeler que les développeurs conçoivent jusque-là leurs interfaces avec deux frameworks assez différents. Côté iOS, ils ont à leur disposition UIKit alors que sur le Mac, AppKit est à la manœuvre. Deux composants différents, avec des logiques différentes, ce qui complique la transition de l’un à l’autre : il faut le plus souvent repartir de zéro et on ne peut pas exploiter le code existant, du moins pas sans des modifications parfois importantes. Avec UXKit, Apple travaille sur un nouveau framework qui rapproche les deux plateformes.

Thomas Ricouard, principal développeur iOS de Glose, service de lecture avec une dimension sociale qui est présent sur l’App Store, a essayé UXKit et il ne cache pas son enthousiasme. Même si ce framework est encore loin d’être finalisé — il n’est même pas censé être utilisé par les développeurs, de toute manière — et même s’il manque encore plusieurs éléments pour qu’il puisse servir à des interfaces complètes, il est très prometteur selon lui.

L’ambition de UXKit est manifestement de simplifier au maximum la transition d’iOS à OS X. En théorie, explique Thomas, il suffit de remplacer tous les « UI » par des « UX » et on aura une application Mac fonctionnelle. C’est encore théorique, puisque le framework n’est pas finalisé et qu’il lui manque bon nombre d’éléments utilisés sur iOS, mais dans l’esprit, c’est aussi simple que cela. La raison est simple : les composants ont souvent les mêmes noms, excepté le préfixe qui change en fonction de la plateforme.

Si vous voulez créer une liste sur iOS, vous utilisez une classe nommée UITableView ; avec UXKit, vous pourrez utiliser la classe UXTableView. Le code est le même des deux côtés et le résultat est très similaire, comme le montre cet exemple que nous a envoyé Thomas Ricouard. On retrouve les mêmes animations et on retrouve les mêmes interactions au trackpad, par exemple ici pour passer d’un écran à l’autre.

À condition qu’Apple ait bien l’intention de proposer UXKit à tous les développeurs avec son prochain système d’exploitation (ou avant, mais cela semble moins probable), on devrait ainsi voir de plus en plus d’applications passer des appareils mobiles au Mac, ou réciproquement. L’investissement nécessaire étant moindre, les développeurs feront probablement plus facilement la transition. Pour prendre un exemple, un logiciel comme Reeder adopte déjà de nombreux éléments d’iOS, mais c’est parce que son développeur a tout refait lui-même. On peut penser qu’avec ce nouveau framework, il aurait pu faire la même chose avec beaucoup moins de travail.

Au-delà des applications multi-plateformes, passer d’AppKit à UXKit pourrait avoir des avantages pour les développeurs. Le framework actuellement utilisé est ancien (à l’échelle de l’informatique, naturellement) et il n’a pas bénéficié du travail de simplification mené pour iOS. En optant pour des composants proches de ceux du système mobile d’Apple, le développement de logiciels OS X pourrait ainsi être simplifié. Un exemple noté par plusieurs développeurs, on peut définir très simplement une couleur principale qui sera appliquée en divers points de l’interface, par exemple pour des titres. Avec AppKit, il y a beaucoup plus de travail pour obtenir le même résultat.

AppKit va-t-il pour autant disparaître ? Difficile de répondre à cette question, sachant que UXKit n’est à ce jour qu’un framework privé que seul Apple peut utiliser et que l’on ne sait même pas s’il sera un jour rendu public. Reste qu’il a nécessité beaucoup de travail et qu’on voit mal l’entreprise n’avoir entrepris tout ce travail que pour Photos. Peut-être qu’une partie des logiciels de base du successeur de Yosemite seront créés avec UXKit et peut-être que ce sera tout, mais on peut aussi se dire que ce travail d’adaptation a aussi été conçu en pensant aux développeurs tiers.

Du code exploitant UXKit

Tous les développeurs ne sont pas aussi enthousiastes sur UXKit toutefois. Brent Simmons, développeur qui travaille actuellement sur le gestionnaire de notes Vesper et sur OmniFocus, a ainsi publié un article sur son blog où il fait preuve de son scepticisme. Selon lui, AppKit est trop utilisé pour qu’Apple l’abandonne et surtout, il contient trop de fonctions spécifiques au Mac qui sont absentes du nouveau framework.

Il ajoute que si UXKit devait sortir de son cadre actuel — un framework privé réservé à Apple —, ce serait plutôt pour offrir un complément minimal aux développeurs iOS qui souhaiteraient porter leurs apps sur Mac. Il ne s’agirait pas de remplacer complètement AppKit, mais plutôt d’offrir les fonctions de base nécessaires pour faire une petite application. Mais dans ce cas, AppKit pourrait largement suffire, précise le développeur et dans ces conditions, à quoi bon compliquer l’offre en maintenant deux frameworks différents ?

On pourrait lui rétorquer que Photos n’est pas un petit logiciel alors qu’il exploite déjà UXKIt. Il paraît évident que, si Apple sortait ce nouveau framework, ce ne serait pas pour arrêter AppKit immédiatement. Mais il ne semble pas non plus impensable que les deux framework coexistent le temps que le nouveau venu s’enrichisse au fil du temps et qu’à terme, UXKit remplace AppKit.

De la même manière que, si tout va bien, Swift devrait remplacer un jour Objective-C, mais qu’en attendant les deux langages coexistent. D’ailleurs, Photos a été entièrement codé en Objective-C, la preuve que ce langage n’a pas dit son dernier mot, même si Swift est le futur.

Accédez aux commentaires de l'article