Performances, sécurité et IA : Apple entame une course de fond

Performances, sécurité et IA : Apple entame une course de fond

Développeurs de tous les pays...

Avatar de l'auteur
Vincent Hermann

Publié dans

Logiciel

08/06/2018 17 minutes
27

Performances, sécurité et IA : Apple entame une course de fond

Comme chaque année, la conférence d'ouverture de la WWDC laisse vite place à des présentations techniques. Portage des applications iOS vers macOS, AutoFill, sécurité, performances ou encore éléments de design sont ainsi abordés. Tour d'horizon des principales annonces.

L’ambiance de cette WWDC différait quelque peu des éditions précédentes. Moins de fonctionnalités et de paillettes, davantage de performances, de sécurité et de technologies sous-jacentes. Bien que la conférence ait toujours été consacrée aux développeurs, l’accent a été mis sur leur rôle prépondérant : ils doivent suivre le mouvement.

Apple a par ailleurs « confirmé » les rumeurs qui voulaient qu’iOS 12 apporte moins de nouveautés et se concentre sur sa rapidité. Les annonces dans ce domaine ont été très claires : le système ira plus vite sur la plupart des actions principales, constat que l’on peut déjà faire avec la première Preview.

Il s’agissait cependant de la partie visible de l’iceberg, car les développeurs ont droit eux aussi à une hausse des performances dans Xcode. Ils sont également invités à faire attention à celles de leurs applications, avec de nouveaux outils dédiés. C’est particulièrement vrai dans certains domaines, comme le machine learning et tout ce qui touche au GPU, via des évolutions des ABI (Application Binary Interface) Metal et Core ML notamment.

Portage des applications iOS vers macOS

Apple a donné quelques détails sur ces futurs portages, abordés en toute fin de conférence. Dans le courant de l’année prochaine, les développeurs iOS auront la possibilité de porter leurs travaux vers macOS en profitant de certains aménagements.

Ce n’est pas un hasard si les applications Bourse, Dictaphone ou encore Actualités ont fait leur apparition dans la première bêta de Mojave en ressemblant fortement aux versions iPad, elles aussi nouvelles dans iOS 12 (elle n’existaient jusqu’ici que sur iPhone). Il s’agit d’une démonstration de la firme, prouvant la viabilité de son projet, qu’elle a d’ailleurs décrit comme un « travail de plusieurs années ».

Avec cette possibilité viennent plusieurs questions, dont celle des écrans tactiles sur Mac ou de la fusion entre iOS et macOS puisque le résultat rappelle Chrome OS. Mais dans une interview donnée à Wired, Craig Federighi, responsable de l’ingénierie logicielle, a été très clair : ni l’un ni l’autre. iOS et macOS resteront bien deux entités à part, et les MacBook garderont des écrans classiques. En tout cas pour les années à venir. Pour Federighi, lever la main pour aller toucher l’écran n’a rien de particulièrement ergonomique.

apple wwdc

Il a également répondu à une autre question : les applications portées depuis iOS ne seront pas émulées. Le framework du système mobile sera adapté pour qu’elles s’exécutent « nativement ». Certaines opérations de conversion seront automatiques via Xcode, comme l’appui tactile long se traduisant par l’appui de deux doigts sur le trackpad. Pour le reste, les développeurs seront invités à réfléchir soigneusement à l’ergonomie de leurs applications. Une documentation sera de toute façon proposée pour clarifier les choses.

Avec ces futurs outils, Apple tient évidemment l'occasion de redonner un coup de fouet à son Mac App Store, au succès bien moindre que l’App Store d’iOS. Tout particulièrement pour les jeux, si les éditeurs saisissent la balle au bond. Une méthode différente de Microsoft, qui préfère suivre Google sur la voie des Progressive Web Apps.

Les gestionnaires de mots de passe pourront – enfin ! – utiliser AutoFill

C’est l’une des améliorations les plus attendues pour iOS, et Apple n’en a pourtant pas parlé durant la conférence d’ouverture : iOS 12 laissera les gestionnaires de mots de passe utiliser AutoFill pour remplir automatiquement les champs d’identifiants dans les pages web et applications.

Il s’agissait probablement de l’un des plus gros retards sur Android en matière de souplesse. Sur la plateforme de Google, une application comme Dashlane ou LastPass peut s’interfacer avec le système et interagir directement avec les applications. Si l’utilisateur installe par exemple Facebook, l’application propose de rapatrier les identifiants depuis le gestionnaire installé.

Sous iOS, l’opération n’est actuellement pas possible. Il faut se rendre dans le gestionnaire, copier le mot de passe et venir le coller dans le champ dédié. 1Password est une exception : l’éditeur AgileBits a négocié des accès avec d’autres entreprises pour insérer une compatibilité. Des cas particuliers dont Dashlane profite d'ailleurs. 1Password tente également de passer par le panneau de partage d’iOS, qui n’est pas prévu pour ce type d’utilisation.

TechCrunch rapporte d’ailleurs que la fonctionnalité a été demandée dans une requête commune par 1Password, Dashlane et LastPass. Apple a manifestement entendu leurs prières. Il devenait difficilement défendable pour Apple de vouloir favoriser les longs mots de passe aléatoires sans mieux intégrer les gestionnaires dédiés. L’arrivée de cette API a quoi qu’il en soit provoqué les applaudissements des développeurs dans la salle, sans doute beaucoup plus soulagés qu’impressionnés.

Notez que dans la foulée, iOS 12 devient un gestionnaire lui-même. Jusqu’ici, l’utilisateur pouvait stocker ses identifiants dans le Trousseau, mais le système peut maintenant proposer de lui-même de nouveaux mots de passe. Une fonction interne d’audit permettra de pointer les mots réutilisés, pour ensuite les changer.

La double authentification est également simplifiée, avec la récupération automatique du code envoyé par SMS, du moins dans de nombreux cas. Là encore, une fonctionnalité existant depuis longtemps sur Android.

Une question de confiance

Pour Apple, la sécurité et la vie privée se rejoignent sur une thématique commune : la confiance. Notion qui n’étonnera personne, mais est directement liée aux bénéfices de l’entreprise. Depuis l'affaire Snowden en 2013, Apple s'est lancée dans une série d'actions pour rassurer les clients soucieux. La conférence d’ouverture de la WWDC était à ce sujet symptomatique, plusieurs présentations de services affichant clairement la mention « end-to-end encryption », soit chiffrement de bout en bout.

L’entreprise a donc insisté face aux développeurs : instaurer la confiance ne peut avoir que des retombées positives. Quatre concepts ont été avancés comme autant de piliers, avec à chaque fois un exemple de pratique « applienne » :

  • Minimisation des données : ne réclamer et n’exploiter que le strict minimum nécessaire pour qu’un service puisse fonctionner, par exemple l’utilisation de Plans sans rien demander, un identifiant temporaire étant fourni.
  • Calculs algorithmiques locaux : faire effectuer, tant que possible, les calculs algorithmiques sur l’appareil, et non sur des serveurs distants, évitant la circulation des données. Apple évoque les opérations de reconnaissance et suggestion dans Photos, toutes réalisées localement.
  • Sécurité : le recours à la biométrie (Touch ID et Face ID) pour ajouter une couche de protection via des informations ne quittant pas l’appareil, puisque seuls sont délivrés des jetons d’authentification.
  • Consentement : montrer à l’utilisateur la transparence qu’il attend et ne rien faire avec ses données personnelles sans son consentement. Une insistance de bon aloi à la lumière d’un RGPD entré en activation le 25 mai, mais dont Apple n’a pas spécifiquement parlé.

Pour Cupertino, la communication d’une application doit être exemplaire. Quand elle nécessite un accès particulier, à une fonction ou une donnée protégée par défaut dans iOS, elle doit en demander la permission. Idéalement, selon Apple, le « Ce dont nous avons besoin » doit impérativement être accompagné d’un « Pourquoi nous en avons besoin », avec des explications aussi claires que possible. Point intéressant, Apple prévient que ces phrases explicatives vont peser plus lourdement dans l’examen d’entrée à l’App Store (App Review).

Sous macOS, les développeurs devront également composer avec un renforcement de GateKeeper, qui gère les autorisations vers certaines données ou fonctions. En plus des informations actuelles comme la position géographique, les contacts, les photos ou le calendrier, il faudra ajouter la base de données de Mail, l’historique de Message, les données de Safari, les sauvegardes Time Machine et iTunes ou encore les cookies du système.

Enfin, Apple va proposer un service de « notaire », chainon manquant entre les applications librement distribuées et celles présentes sur le Store. Les développeurs, depuis Xcode, pourront estampiller leurs créations pour que l’exécution en soit validée par les serveurs d’Apple. Selon la firme, l’étape permettra de s’assurer de l’authenticité de l’application sans passer pour autant par la révision du code et la distribution via la boutique, qui impose des règles plus strictes.

Ce service sera d’abord optionnel, mais Apple prévient : les futures versions de macOS réclameront que toutes les applications soient ainsi marquées par son notaire numérique.

Des performances particulièrement à l’honneur cette année

La première grosse annonce sur iOS 12 concernait les performances. Apple a annoncé des chiffres chocs : lancements d'applications jusqu'à 40 % plus rapides, ouvertures de clavier jusqu'à 50 % plus véloces, jusqu'à 70 % de gain pour la prise de photos, fenêtre de partage s’ouvrant jusqu’à deux fois plus vite, etc.  Bien qu’il soit encore un peu tôt pour mesurer la différence, l’écart de réactivité est perceptible sur un iPhone 8, et bien davantage sur un 6s. Bien qu’Apple n’ait donné aucune référence, les anciens appareils seront a priori les mieux servis (ils en avaient le plus besoin).

Ces hausses seraient le résultat d’un travail de longue haleine. Sur scène, l’éditeur a précisé que de nouveaux outils avaient été créés pour l’occasion. Ils seront mis à disposition des développeurs dans Xcode 10, puisque les performances font pleinement partie de « l’expérience », qu’Apple souhaite aussi « agréable » que possible.

Parmi les nouveautés, citons les « points d’intérêts » que le développeur pourra inclure dans le code pour envoyer automatiquement toutes les informations utiles dans les outils liés pendant le fonctionnement de l’application. L’exemple donné est un logiciel dans lequel une animation ralentit fortement quand une mise à jour des données est en cours. Ces points seront marqués par os_signpost, venant compléter os_log, qui se veut lui-même le remplaçant de printf pour le débogage.

Ces points de surveillance et de contrôle pourront être sauvegardés par le développeur, qui les réutilisera ainsi quand il en aura besoin, que ce soit dans la même application ou dans un autre projet.

Puisque l’on évoque les performances, Apple donne le signal que nombre de développeurs attendaient, pour diverses raisons : macOS Mojave sera la dernière version à supporter les applications 32 bits. Les versions 32 bits de certains frameworks vont d’ailleurs disparaître dans la foulée, notamment QuickTime, Java 1.6 et Carbon HLTB.

Mode sombre et éléments de design sur macOS Mojave

Le mode sombre est un serpent de mer chez Apple. Les utilisateurs l’attendent depuis des années, et son arrivée dans Mojave fait pousser quelques soupirs de soulagement. Il n’est pas une panacée, mais il devrait être apprécié de certains professionnels, particulièrement ceux travaillant sur des contenus multimédias.

Apple a donc fourni quelques explications sur ses choix. Par exemple, les icônes des applications fournies par le système ne sont pas forcément les mêmes. La poubelle est ainsi plus sombre, et les couleurs d’iTunes ou Safari sont moins vives, pour garder une cohérence graphique. De même, le fond des fenêtres change légèrement en fonction des couleurs majoritaires du fond d’écran, pour ne pas créer des contrastes trop brutaux.

macos mojavemacos mojave

Ces informations sont surtout données pour que les développeurs sachent quoi faire de leurs interfaces, qui devront être adaptées au mode sombre. Une conversion simple ne sera pas suffisante dans de nombreux cas. Apple montre ainsi comment son Keynote est apparu la première fois : barre latérale trop transparente, des informations parfois peu lisibles, des boutons blancs, des panneaux clairs, etc.

Les changements sont cependant simples selon Apple, puisque de nouvelles API, disponibles depuis Xcode 10, permettent de corriger le tir sans passer des heures à revoir chaque élément.

Apple sachant que le soin apporté au design d’une application fait partie des forces vives de sa plateforme, de nouveaux outils ont été ajoutés dans Xcode 10. Parmi eux, une simplification de la conception des panneaux de type options.

La fenêtre s’utilise presque « comme un tableur », avec des lignes et colonnes. Le développeur ou graphiste peut ainsi ajouter et aligner les éléments, ajouter une ligne ou une colonne, les glisser-déposer, etc. La bibliothèque devient par ailleurs flottante et ajustable, l’élément inséré dans l’interface affichant automatiquement ses propriétés dans la colonne de droite.

macos mojave xcode

Xcode 10 élargit ses sources et accélère

La version 10 de l’environnement de développement ne se contentera plus de son intégration GitHub. BitBucket et GitLab sont ainsi pris en charge. L’ajout était bien sûr en préparation depuis longtemps, mais l’annonce arrive au bon moment, Microsoft ayant racheté GitHub, provoquant notamment une activité frénétique chez GitLab.

Une partie importante des annonces de la firme était par ailleurs consacrée aux performances. Celles d’iOS 12 ont été largement mises en avant (même si elles manquaient de précision), et Apple tient à ce que les développeurs y fassent attention. Tant qu’à faire, elle tâche également de montrer l’exemple.

De nombreuses opérations de Xcode 10 sont ainsi plus rapides : des ouvertures de documents jusqu’à 40 % plus rapides (150 % pour les très gros fichiers), des interactions entre canvas jusqu’à trois fois plus véloces, des téléchargements de symboles cinq fois plus rapides entre appareils, etc. Le tout accompagné par des opérations simplifiées pour tout ce qui touche au refactoring de code, une autocomplétion plus riche ou encore l’édition à curseurs multiples.

macos mojave xcode

Xcode 10 veut également simplifier les tests. L’environnement est ainsi capable d’effectuer des tests en parallèle sur plusieurs émulateurs en même temps, plutôt que de manière séquentielle. Dans le test effectué par Apple, les tests se terminaient ainsi quatre fois plus rapidement qu’avec l’ancien Xcode.

Le compilateur évolue également. Écrit entièrement en Swift, ses recompilations se veulent jusqu’à deux fois plus rapides, tandis que l’utilisation en mémoire vive diminue de 20 % (maximum).

La version 5 de Swift commence par ailleurs à faire parler d’elle. C’est la mouture que bon nombre de développeurs attendent, puisqu’elle doit stabiliser les API. Traduction, elles seront intégrées dans les systèmes d’Apple, réduisant d’autant le poids des applications qui les utiliseront. Apple promet donc des temps de téléchargement et de lancement réduits. L’éditeur promet son arrivée pour le début de l’année prochaine.

L'API Metal s'ouvre à l'IA, mais enterre OpenGL

Plus aucune conférence dédiée aux développeurs ne peut aujourd’hui se faire sans évoquer un tant soit peu l’intelligence artificielle, ou plus précisément le machine learning. Apple a donc présenté la version 2 de son framework Core ML, qui se veut « plus petit, plus rapide, plus personnalisable ».

Parmi les nouveautés, citons l’API Batch, qui permet d’envoyer un lot d’éléments à traiter vers une série de critères réunis au sein d’une même accolade. Toujours pour réduire la taille des modèles, Core ML 2 prend en charge la quantification, de 8 à 1 bit.

macos mojave xcode

Create ML est pour sa part entièrement nouveau et veut simplifier la création des modèles de machine learning. Il peut être exploité pour des fonctionnalités comme le traitement du langage naturel et la classification des images, supporte les régressions linéaire et logistique ou encore les arbres décisionnels, ou encore les traitements de données plus classiques.

Surtout, les développeurs sont plus qu’encouragés à se tourner vers l’API Metal pour ce type de traitement. Normalement réservés aux calculs graphiques de bas niveau, ses shaders peuvent être utilisés pour l’entrainement des modèles de machine learning.

Les gains peuvent être significatifs : Apple évoque un facteur 12 pour le classement des images ou 9 pour la détection des objets. Des chiffres à prendre comme d’habitude avec des pincettes, car on ne sait rien du matériel utilisé pour les obtenir. Plus tard dans l’année, TensorFlow (Google) sera également supporté, avec des performances multipliées jusqu’à 20.

À noter, puisque l'on parle de Metal, que l'API graphique va prendre le pas sur Open GL, qui sera abandonné. Dans Mojave et iOS 12, Open GL est encore présent, mais il n'est plus officiellement supporté, signalant que les développeurs devront faire avec ce qu'ils ont, sans aide d'Apple. Dans une interview donnée à VentureBeat, le responsable Dan Omachi justifie ce choix par les changements profonds apportés à la 3D, modifiant profondément la manière d'aborder le pipeline, le parallélisme des instructions et le calcul asynchrone.

Du mieux aussi pour la réalité augmentée

L’une des plus grosses nouveautés dans ce domaine est le format USDZ, annoncé durant la conférence d’ouverture de la WWDC et développé en partenariat avec Pixar et Adobe. Il est présenté comme « universel » dans le sens où il est poussé comme un format interopérable pour toutes les applications et ressources web, qu’elles soient locales ou distantes.

Adobe en a profité pour faire la démonstration de son Project Aero, qui permettra de concevoir soi-même des objets en mode WYSIWYG puis de les tester sur un iPhone ou un iPad pour les intégrer dans l’environnement immédiat. Les résultats pourront être exportés au format USDZ puis envoyés à d’autres applications, ou même directement sous forme de messages, le destinataire l’ouvrant en pièce jointe pour le tester chez lui.

Côté Apple, ARKit 2 est également dans les cartons. Parmi les principales caractéristiques, on trouve une détection et un suivi améliorés du visage (qui seront très probablement exploités dans iOS 12), l’application de textures sur l’environnement, la détection d’images et d’objets 3D ou encore, évidemment, les « expériences partagées ». Il s’agit ni plus ni moins que du partage des cartes de détection entre personnes présentes dans la même pièce, pour que tout le monde puisse voir la même chose. L’une des applications directes est la création de jeux où chaque joueur profite du même décor.

Écrit par Vincent Hermann

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Portage des applications iOS vers macOS

Les gestionnaires de mots de passe pourront – enfin ! – utiliser AutoFill

Une question de confiance

Des performances particulièrement à l’honneur cette année

Mode sombre et éléments de design sur macOS Mojave

Xcode 10 élargit ses sources et accélère

L'API Metal s'ouvre à l'IA, mais enterre OpenGL

Du mieux aussi pour la réalité augmentée

Fermer

Commentaires (27)


Quoi des applis qui marchent à la fois sur mobile et sur desktop mais je croyais que UWP était naze etc. et permettais pas de mettre de la daube partout dans le système.


Leur interface sombre est juste parfaite, pas trop contrastée. Pourquoi Microsoft n’est pas fichu de faire pareil…


Merci pour ce gros résumé, super article <img data-src=" />


Une idée de comment vont faire les développeurs d’application utilisant OpenGL ? genre Pymol <img data-src=" />








ehnolfey a écrit :



Une idée de comment vont faire les développeurs d’application utilisant OpenGL ? genre Pymol <img data-src=" />





Ils vont s’ouvrir les veines <img data-src=" />









sephirostoy a écrit :



Leur interface sombre est juste parfaite, pas trop contrastée. Pourquoi Microsoft n’est pas fichu de faire pareil…





Parce qu’ils ce prendront un gros procès dans la tronche… Et puis il y à pas d’alternative viable à windows donc pourquoi dépenser de l’argent alors que tu peut forcer l’utilisateur à rester sur un truc très très moche ?



Le jeu sur Mac (bien qu’étant une niche) et plus spécifiquement le jeu X-platform va en pâtir à mort de la fin du support d’OpenGL non ? Je pense notamment à des jeux comme WoW par exemple qui si mes souvenirs sont bons, est X-platform justement grâce à OpenGL non ? Ou alors je dis de grosses bêtises, je suis pas un expert des lib graphiques.








sephirostoy a écrit :



Leur interface sombre est juste parfaite, pas trop contrastée. Pourquoi Microsoft n’est pas fichu de faire pareil…





+1

Chez Microsoft le thème sombre est en approche pour l’explorateur, mais ça sera du texte blanc #fff sur fond noir #000.

Aïe.

Encore 20 ans après, le design est toujours délaissé par MS et adoré par Apple.









skankhunt42 a écrit :



&nbsp; très très moche ?





Tu pige rien à l’art c’est tout ^^









teddyalbina a écrit :



Quoi des applis qui marchent à la fois sur mobile et sur desktop mais je croyais que UWP était naze etc. et permettais pas de mettre de la daube partout dans le système.





Va plus loin que les entêtes de paragraphes avant de troller.



Il est question de portage (et donc d’avoir des frameworks similaires) et non pas d’applis universelles.



Mais c’est troll-dredi aujourd’hui non ?&nbsp;<img data-src=" />


Pour l’optimisation logiciel, c’est super simple. Ils ont juste enlevé les sleep(random(100,500)) dédié aux vieux téléphones.



Serieux, au bout de 10ans qu’ils disent ‘le nouvel iphone 2x plus rapide que l’année dernière’, et qu’en réalité, un clavier rame plus sur un iphone5s a jour que sur un iphone1 ios d’origine, c’est forcement de la latente ajouté artificiellement.








gjdass a écrit :



Le jeu sur Mac (bien qu’étant une niche) et plus spécifiquement le jeu X-platform va en pâtir à mort de la fin du support d’OpenGL non ? Je pense notamment à des jeux comme WoW par exemple qui si mes souvenirs sont bons, est X-platform justement grâce à OpenGL non ? Ou alors je dis de grosses bêtises, je suis pas un expert des lib graphiques.





Wow a déjà été porté sur Metal, depuis la premiere version <img data-src=" />




Ah d’accord je ne savais pas du tout. Merci.








gjdass a écrit :



Ah d’accord je ne savais pas du tout. Merci.





https://www.macgamerhq.com/news/wow-legion-mac/



WoW est déjà compatible Métal depuis un moment …..


Tous les gros moteurs graphiques tournent déjà sur Metal en plus d’OpenGL, Vulkan, Direct 3D et d’autres API proprios.


Depuis 2015 Vulkan remplace OpenGL, et il existe un wrapper Vulkan =&gt; Metal (initié par Valve)https://www.khronos.org/vulkan/portability-initiative


Question naïve (non-obstant les portages vers Metal déjà fait) : si Apple cesse le support de OpenGL, qu’est-ce qui empêche de l’utiliser via des SDK tiers.


Les vrais structuralistes sont sous linux <img data-src=" />





(c’est ‘dredi hein <img data-src=" />)



Perso j’ai du switcher entre mon pc perso sous linux en doctorat et un Mac en post-doc bah après 1 an j’y arrive toujours pas <img data-src=" />


Excellent article, ce que j’ai lu de mieux en ligne à propos d’iOs 12, merci !


Un procès pourquoi ? Un set de couleurs ?

Les 2 seules choses que je reproche à l’interface de Win 10 ce sont des contrôles espacés (à priori ça sera corrigé dans Redstone 5) et les 2 sets de couleurs hautement contrastées.

Alors qu’ils ne se mettent pas au gris métal de macOS, ok; mais pour le thème sombre, ils avaient juste à reproduire le thème sombre d’office ou de Visual Studio.


C’était aussi mon cas pendant le doctorat (Linux + windows dans virtualbox parce que mon chef n’utilisais que endnote pour les références <img data-src=" />)


<img data-src=" />


Excellent article, ce qui me plait le plus c’est l’annonce concernant l’augmentation des performances. C’est enfin une bonne initiative d’Apple, iOS 11 étant pour moi le pire qu’ils aient fait.

Pour le boulot, j’ai un iPad Air (première version), le clavier est devenu presque inutilisable depuis iOS 11 tellement la latence entre un appui sur le clavier et la réponse dans le champ de saisie est énorme. Vivement iOS 12 du coup !








le podoclaste a écrit :



Question naïve (non-obstant les portages vers Metal déjà fait) : si Apple cesse le support de OpenGL, qu’est-ce qui empêche de l’utiliser via des SDK tiers.





Parce que tu as besoin du support dans le driver du GPU.

Par contre il serait possible de le faire avec un bibliothèque qui traduiserait les routines OpenGL en Metal: genre MoltenGL mais il supporte uniquement OpenGL ES pour le moment.

https://moltengl.com/moltengl/



+1