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

Anthony Nelzin-Santos |

AppKit, Catalyst, Cocoa, Marzipan, SwiftUI, UIKit… Cette liste ne vous inspire rien d’autre que des frissons ? C’est normal : cette soupe à l’alphabet n’a fait qu’épaissir au fil des années. Mais pour comprendre l’importance du projet Catalyst lancé à la WWDC 2019, et envisager les conséquences de SwiftUI, il faut connaitre ces mots. Revenons donc aux bases… et vingt ans en arrière.

Nous sommes en mai 1997. Apple vient d’acheter NeXT, Gil Amelio est encore CEO, mais Steve Jobs a déjà repris la barre. Au cours de la WWDC, il présente le système d’exploitation Rhapsody. Construit sur les ruines de NeXTSTEP, il conserverait une compatibilité avec les applications Mac OS par le biais de la Blue Box, et apporterait les innovations de NeXT par le biais de la Yellow Box.

avatar Pse | 

Merci pour cet article !

avatar umrk | 

Mission impossible que d'écrire un article sur un sujet pareil (mais chapeau l'artiste) .... On a affaire à un volume de code inimaginable ...

Pour ma part, je m'en tiens à quelques constations simples : un iPad s'utilise sur ses genoux, assis dans un fauteuil (posture adoptée par Steve, ce n'est pas un hasard ...), une machine de bureau s'utilise .. assis devant un bureau, et un smartphone n'importe où (mais le plus souvent debout) .....

Trois irréductibles situations ("use cases") différentes, trois solutions techniques différentes (même si bien sûr on peut toujours trouver quelques zones de recouvrement, à la marge) ....

Après, évidemment, il n'est nullement interdit de factoriser du code, c'est une bonne pratique de gestion de projet .... (mais une cuisine, qui, finalement, n'intéresse que les développeurs)

avatar reborn | 

@umrk

Pour ma part, je m'en tiens à quelques constations simples : un iPad s'utilise sur ses genoux, assis dans un fauteuil (posture adoptée par Steve, ce n'est pas un hasard ...)

L’iPad a évolué aujourd’hui, ce n’est plus seulement un appareil de consultation c’est aussi un puissant appareil de production

avatar lawappe | 

@umrk

Ça s’appelle Surface, avec Windows 10.

Microsoft, a mon avis, a toujours eu la meilleure vision sur ce sujet là. Alors qu’Apple s’est enfermé dans son discours, technique initialement, commercial ensuite, adapté à chaque plateforme.

On se rend bien compte aujourd’hui, que même si la partie visible de l’iceberg s’adapte à chaque type de device, la partie invisible s’unifie.

Ce que Microsoft propose depuis des années maintenant...

avatar Thms | 

@lawappe

Je vois les choses différemment ; Apple expérimente le futur de l’informatique sur iPad, iPhone, Apple Watch, pour aboutir à terme à une solution nouvelle et moderne, qui replacera les vieux OS de bureau des années 80 (comme on en trouve sur ta Surface).

Architecture ARM, sécurité, biométrie, Swift, App Store etc.

La vision d’Apple est la bonne de mon point de vue.

avatar lawappe | 

@Thms

Je n’ai pas de Surface ? Je suis sur Mac depuis très longtemps. Et pas vraiment envie d’en changer.

En revanche, tout ce dont tu parles n’est que matériel. Or je parlais des couches logicielles.

Apple innove dans le matériel, certes. Pas toujours de manière élégante d’ailleurs ces derniers années.

Mais je suis persuadé que Microsoft a eu la bonne inspiration : simplicité. Ce qui était l’adage du Mac auparavant. Avec leurs déclinaisons de noms d’OS, ils embrouillent tout le monde.

D’autant plus lorsque tu n’as qu’une case à cocher pour compiler une application pour un système « différent ».

Ils se sont enfermés dans leur discours « différent » pour se positionner face à Microsoft. Et sur ce coup là, ce n’était pas une bonne idée.

Je suis prêt à parier qu’un jour prochain, les utilisateurs vont scander « innovation », « génie » lorsque Apple sortira soit un OS unifié, soit une liste de cases à cocher dans Xcode. Alors que Microsoft propose ça depuis longtemps...

avatar reborn | 

@lawappe

C’est arrivé trop tôt et l’exécution de leur projet était mauvaise.

Et le message d’Apple n’est pas: "utilisez la même interface de partout"

Bref c’est du passé ils poussent les apps électron et autre PWA maintenant.

Sinon UXkit remonte à 2014 (Photo), et depuis 2015 l’on a vu des bribes du support des fenêtres sur iPad avec iOS 9

C’est n’est pas quelque chose qu’ils ont bricolé en 2 ans vite fait

avatar armandgz123 | 

@lawappe

Je suis du même avis

avatar xDave | 

@lawappe

Mouais enfin l’OS de Microsoft, on en parle ?
Les tablettes pseudo ordinateur inutilisables sans clavier ou souris.
Donc à part un OS pour ordinateur je vois pas

avatar lawappe | 

@xDave

C’est marrant, l’iPad supporte maintenant clavier ET souris ?

avatar xDave | 

@lawappe

Oui et ?
Il y a aussi dans ta phrase

avatar MacTHEgenius | 

@lawappe

Le support de la souris est un réglage d’accessibilité. On est loin de ce qu’un Mac peut faire.

avatar mansour | 

@xDave

J’ai quand même l’impression que Microsoft proposait quelque chose de plus abouti il y a quasiment 10 ans avec l’ancêtre de l’UWP (https://en.wikipedia.org/wiki/Windows_Runtime) que ce qu’Apple offre pour le moment en terme d’UX avec Catalyst

avatar xDave | 

@skynext

D’UX?
?

avatar mansour | 

@xDave

Bah oui les app UWP sont à mon sens largement supérieur aux Apps Marzipan (que l’on ne sait même pas redimensionner correctement). Et pourtant je ne suis pas un fan de Windows

avatar reborn | 

@skynext

Considérons Catalyst comme la version 2 de Marzipan présenté l’an dernier.

Catalyst prend en charge bien plus de caractéristiques natives du mac que ce qu’Apple a présenté l’an dernier.

UIkit sur mac, UIkit, et Appkit peuvent être utilisé au sein d’une même app sous macOS

avatar IGerard | 

@lawappe

Comme le faisait Steve Jobs ... Apple a le discours pour vendre ce qu’elle a à vendre... un discours unifiant c’est très simple d’en avoir l’idée, c’est la base de l’approche industrielle et logicielle: économie d’échelle en factorisant au Max les efforts.

L’approche qui a consisté par contre a insisté sur une ergonomie tablette a été une stratégie mûrie par l‘expérience... sans contrainte forte le Dev va au plus simple ... ça a fait naître tout un superbe écosystème d’applications vraiment adaptées à l’ergonomie de la tablette. Donc oui, expérience différente mais technologies de plus en plus communes.

La semaine dernière, meeting avec les gars de Microsoft azure qui avait tous des surface pro... qu’ils n’ont utilisé toute la semaine que comme un laptop ultra léger

avatar XiliX | 

@lawappe

"On se rend bien compte aujourd’hui, que même si la partie visible de l’iceberg s’adapte à chaque type de device, la partie invisible s’unifie.

Ce que Microsoft propose depuis des années maintenant..."

Non je ne pense pas, et très loin même
L’approche de Microsoft est de faire fonctionner « une même » application sur différentes plateformes. Desktop/Laptop et Tablette.

L’approche d’Apple ici est nettement plus intelligente. Même code pour n’importe quel device. Ça ne veut pas dire que la même application aura le même comportement selon la plateforme.
Impossible de garder le même comportement d’un « combobox » par exemple sur un ordinateur que sur un mobile. Même une tablette.

Donc NON, ce n’est pas du tout la même approche. Et personnellement l’approche d’Apple est plus intelligente. Car un mobile n’a pas la même utilisation qu’un ordinateur.

avatar lawappe | 

@XiliX

Microsoft n’a pas de « mobile » à supporter.

avatar XiliX | 

@lawappe

"Microsoft n’a pas de « mobile » à supporter."

Et Tablette Surface ?
Elle est ce qu’on appelle mobile device. Pour difference avec desktop/laptop.
Il ne faut pas prendre pour un « mobile » phone

avatar XiliX | 

@XiliX

"Pour difference"

Pour différencier*

avatar Ramlec | 

@lawappe

N’a plus*

avatar iPop | 

@lawappe

Après le départ de Jobs, APPLE entreprit de copier, mimer IBM. Pas sûr que c’était une bonne chose. L’histoire se répète.

avatar MacTHEgenius | 

@lawappe

Les couches sous-jacentes à AppKit et UIKit ont toujours été les mêmes. Cependant, selon la plateforme, certains frameworks étaient disponibles dans leur intégralité, partiellement ou pas du tout.

Un exemple donné lors d’une session WWDC2019 est RealityKit qui gère tout ce qui ce nomme la réalité augmentée. Ce framework n’est que disponible sur iOS, parce qu’il ne fait pas de sens sur macOS.

avatar tempest | 

Super article qui me rappelle comme le temps passe.
Un jour un petit article sur OpenDoc avec IBM serait cool.

avatar i'mMaC | 

On est quand même sur des articles de qualité... bien content de faire partie de ce projet au travers du Kickstarter

avatar Lucas | 

Ouiii, je l’attendais le super article du dimanche, et le sujet s’annonce passionnant ! Merci ! :D

avatar reborn | 

Je pensais que UIkit sur mac était l’avenir, en fait c’est une passerelle "temporaire". Catalyst est une transition, SwiftUI pose les premières bases de l’avenir des plateformes Apple.

Ce sont de multiples projets et multiples étapes s’étalant sur plusieurs années.

avatar MonsieurPomme | 

Quand vous dites que "toutes les applications iPhone devront être adaptées à l’iPad au printemps 2020", est-ce que c'est une obligation qui apparaîtra dans les conditions de validation de l'App Store ou autre chose ?

avatar macbook60 | 

@MonsieurPomme

Je me suis posé la même question.

avatar Picaweb | 

@macbook60

Ça serait marrant poilue des apps qui ont ou jours refuse le portage, comme Instagram par exemple....

avatar byte_order | 

@Picaweb

Cela va être aussi un point intéressant dans le futur procès sur les abus de l'AppStore vs les développeurs.

avatar Anthony Nelzin-Santos | 
@MonsieurPomme : ce sera une obligation, annoncée par Apple pendant la WWDC.
avatar keff | 

@Anthony

Une source précise svp? Ce n'est pas rien d'annoncer ça!

avatar Cactaceae | 

Superbe article merci pour la vulgarisation du sujet et bon dimanche

avatar letofzurichois | 

Encore une fois, très bon article qui permet de bien comprendre le sujet.
Merci MacG :) Et un bon dimanche à vous tous !

avatar kantandane | 

Article d’excellente qualité ! Merci pour cette « vulgarisation » bien nécessaire pour comprendre comment tout ce petit monde fonctionne !

avatar XiliX | 

Ahhh mon article de dimanche...
Merci ?

avatar Amaczing | 

Merci

avatar fabricepsb71 | 

Bonjour,

je me pose une question sur le logiciel de compte perso : Tous Comptes Faits Personnel.

Ce logiciel assez ancien a connu des versions depuis macOS 7.
Le développeur a utilisé les API Carbon pour le rendre compatible avec Mac OS X en 2001.
Aujourd'hui, ce logiciel 32 bits, tourne encore sous Mojave.
Le développeur travaille actuellement sur une version 64 bits.
Or, ma question, ce portage en 64 bits suffira-t-il ?
En effet, Carbon n'est plus une API d'avenir dans macOS.

Merci

avatar reborn | 

@fabricepsb71

Ils vont faire la transition vers Appkit, Carbon n’étant plus mis à jour depuis 2012.

avatar fabricepsb71 | 

@reborn
ce travail là c'est pour garantir la compatibilité avec MacOS à long terme, je suppose ?
ça doit être un travail énorme, d'autant plus que le développeur travaille sur un projet de version web/Cloud du logiciel, ce qui inquiète certains utilisateurs pour leurs données comptables personnelles.

avatar reborn | 

@fabricepsb71

Oui Appkit est là pour rester, Carbon était une passerelle.

avatar lawappe | 

@fabricepsb71

S’il utilise les API Apple 64 bits et Xcode pour compiler, sa future version devrait fonctionner parfaitement bien sur Catalina.

avatar StephanMart | 

@lawappe

Il y a un autre logiciel qui ne va plus fonctionner c’est Mac-Soup, le développeur ne semble pas décider à poursuivre son développement ?

avatar fabricepsb71 | 

@lawappe
A votre avis, combien de temps peut prendre ce travail de compilation ?
Et, est-ce une solution seulement transitoire pour le long terme ?

avatar lawappe | 

@fabricepsb71

La compilation sera rapide. En revanche, il va sûrement falloir qu’il change pas mal de code selon le nombre de Framework à faire évoluer.

Selon la complexité de son logiciel, cela peut prendre de quelques jours à quelques mois.

En revanche, s’il mise sur les librairies fournies par Apple, ce sera une solution de long terme.

avatar cecemf | 

As l’article faudra rajouter aussi bientôt une seul type de processeur ARM ;)

avatar seraphinmi | 

Très bon article, très intéressant! Merci macG!

avatar fornorst | 

Je ne connaissais pas le lien entre Cocoa et Java (café). J’adore :) je connaissais le lien entre Sun (créateur de Java) et Éclipse (IDE pour Java, développé par IBM, concurrent de Sun) par contre

CONNEXION UTILISATEUR