Alors cette WWDC 2018 ?
Les portes se sont fermées sur l’édition 2018 de la conférence des développeurs. Nous avons eu la chance de participer à cet évènement et nous vous en révélons nos impressions et les choses à retenir “to build great apps”.
Lundi soir, la keynote matinale est passée et la revue générale des changements dans les APIs (aka State of the Union) également, c’est le moment où Apple révèle son programme de la semaine. Au fur et à mesure où nous faisions le tour des sessions avec Mathieu, nous étions de plus en plus perplexes sur le programme et sa richesse.
Il nous apparaissait alors qu’Apple avait bien plus misé sur l’optimisation de son OS comme feature principale et que les nouveautés exploitables “out of the box” ne faisaient pas légion.
4 jours plus tard, aprés avoir participé à une quarantaine de sessions et 4 Labs pour approfondir certains sujets, il s’avère que cette édition a été plus riche que nous l’avions imaginé.
Voici les 6 sujets qui nous ont marqué et qui ne manqueront pas d’animer nos développements pour la saison 2018 / 2019.
Create ML
L’an dernier Apple a introduit Core ML, une manière simple d’exploiter des modèles de Machine Learning directement dans une app iOS avec des classes Swift. Apple prenait ainsi le contre pied de Google et de son approche Cloud nécessitant d’envoyer les données sur leurs serveurs.
Être capable d’exploiter un modèle reste une partie infime du travail pour reconnaitre des images et pas franchement la plus compliquée pour un développeur d’application. Là où le travail se corse c’est qu’à moins d’exploiter un modèle déjà fait, entrainer un modèle avec ses propres images est une autre paire de manche. Une fois ce modèle prêt il alourdira souvent votre app de 100 Mo voir plus.
Mais ça c’était avant Create ML ! Apple permet désormais aux développeurs d’entrainer leurs propres modèles à partir de leurs images réparties dans des dossiers.
Avec 2 lignes de code dans un playground, une interface permet de déposer ses fichiers et lance l’entrainement du modèle.
Après avoir essayer avec un premier petit modèle de 30 images pour classifier des animaux de la savane, nous avons voulu aller plus loin. Nous avons donc lancé un test plus conséquent avec l’aide de Virtuo, un de nos clients.
Virtuo est un loueur de voitures qui a (entre autres) digitalisé l’état des lieux. Pour en simplifier la saisie, ils s’étaient essayés à du Machine Learning pour reconnaitre la zone photographiée en entrainant leur modèle. Nous nous en sommes servi comme base de comparaison (à lire) et sommes parti de la même base de 14 800 images pesant plus de 19 Go pour faire travailler Create ML et comparer avec le Tensorflow fait à la main.
- Temps de génération : 20 minutes (contre plus de 2h)
- Poids : 740 ko (contre 87 Mo)
Au final les résultats de reconnaissance sont équivalents à Tensor Flow mais on aura gagné 6 fois le temps de génération pour un modèle 120 fois plus léger et donc facilement embarquable (ou téléchargeable) depuis une application mobile.
Notre impression est que Create ML met le Machine Learning à portée de tous les développeurs et de toutes les apps avec des outils simples à utiliser et des modèles ultras légers. Create ML fonctionne pour des images mais aussi pour du texte, on peut par exemple faire du sentiment analysis ou de la suggestion de réponses à un chat …
Il est clair que la petite proportion d’apps utilisant Core ML présentée cette année va largement grandir l’année prochaine.
Siri Shortcuts
Fin 2011, Apple lançait une offre d’emploi pour trouver des développeurs API pour Siri. A l’époque cette annonce m’avait fait frémir d’impatience mais il aura fallu attendre 2017 pour qu’Apple sorte enfin une première mouture d’APIs avec SiriKit.
Ce premier pas était cependant limité à des cas précis : ToDo, Notes, Paiements, Météo, Recherche de photos, Séance de sport, …
Apple a fait le compromis de la diversité en choisissant la simplicité. En effet, l’API prend à sa charge toute la complexité linguistique (dans toutes les langues supportées par Siri). Elle gère toutes la sémantique, les expressions locales (comme “Mardi en 8” en français), … Le développeur n’a qu’à saisir et récupérer les paramètres déjà catégorisés.
Mais que peuvent donc bien faire les autres développeurs qui n’ont pas la chance de rentrer dans ces catégories ? La réponse a été apportée (en partie) par les Siri Shortcuts lors de cette WWDC.
Siri Shortcut permet de répéter une action qui est faite régulièrement dans l’app. Pour cela l’application déclare cette action avec ses paramètres et Siri la proposera à l’utilisateur en fonction de son usage.
L’utilisateur peut aussi choisir directement d’associer cette action à un raccourcis vocal. Attention cependant, même si les actions prennent des paramètres les commandes vocales ne couvrent qu’un couple action / paramètres. Ainsi si vous voulez voir vos rendez-vous du lundi, du mardi, … il vous faudra 7 raccourcis vocaux.
On comprend donc bien que les actions sont limitées mais cette première ouverture est probablement un coup à deux bandes permettant à Apple d’apprendre de ces Custom Intents, voir ceux qui fonctionnent, analyser les paramètres passés et de pouvoir proposer beaucoup plus d’actions à l’avenir.
ARKit
Apple a lancé son kit de développement pour réalité augmentée lors de la WWDC 2017. Cette technologie peine encore à trouver son marché et peu sont les applications ayant recours à la réalité augmentée qui ont percées à l’usage (à part Pokemon Go, même si la fonctionnalité reste anecdotique et purement décorative).
Lors de cette édition 2018, ARKit passe à sa deuxième version, en introduisant certaines nouveautés et en en améliorant d’autres. Ce qui permettrait de faire passer cette technologie approuvée techniquement à une étape de déploiement à plus grande échelle.
ARKit en résumé, combine le motion tracking de votre appareil, la capture de la scène depuis votre caméra ainsi que des calculs avancés sur l’espace pour simplifier la construction d’une expérience en réalité augmentée. Des applications comme Instagram n’ont pas attendu Apple pour fournir des expériences interessantes mais là où ARKit 2 se démarque, c’est que ces dernières ne vont plus se limiter à un seul utilisateur interagissant avec une scène.
ARKit2 permettra de créer des applications ne s’utilisant plus seul mais bien à plusieurs. L’exemple concret qui a été présenté lors de la semaine de conférence est un jeu se jouant à 2, une sorte de casse-brique où le vainqueur est le plus rapide à faire tomber les catapultes de l’adversaire.
Le code du jeu est d’ailleurs Open Source pour les curieux.
Ce qui permet à ARKit2 de mettre en place un tel système, c’est principalement l’ajout de la sauvegarde de l’environnement. Il est désormais possible de créer un monde en réalité augmentée à un endroit, puis de relancer votre application après un lapse de temps et retrouver ledit monde dans le même état que lorsque vous l’aviez quitté. Cet état peut ainsi transiter entre plusieurs appareils afin de recréer des mondes identiques pour tous.
Dans les fonctionnalités qui ont été ajoutées ou améliorées, vous pouvez maintenant enregistrer puis tracker des objets du monde réelles.
Notifications
Fini l’utilisation immodérée de push pour favoriser la rétention ! Les éditeurs vont devoir y réfléchir à deux fois avant de vous bombarder de notifications car avec iOS 12, Apple permettra aux utilisateurs de se désabonner des notifications directement depuis la notification.
Il y a quand même quelques bonnes nouvelles pour les éditeurs :
- Avant iOS 12, pour envoyer des pushs il fallait demander une autorisation qui était souvent refusée par une majorité d’utilisateurs. Avec iOS 12, Apple a ouvert la possibilité d’envoyer un push de démonstration sans avoir à en demander l’autorisation préalable (provisional authorization). Ceci, permettra à l’éditeur d’offrir un exemple à partir duquel l’utilisateur pourra directement choisir de s’abonner ou de refuser. Attention cependant à être très pertinent sur ce push qui fait office de quitte ou double.
- Une application peut grouper ses notifications par thèmes. Utile pour une application sportive pour regrouper l’évolution des scores par match, pour une application news par thèmes, une application de messagerie par interlocuteur …
Moins de quantité > Moins de scroll sans fin > Plus de lecture - Depuis iOS 10, il est possible d’offrir à l’utilisateur une vue spéciale sur certains pushs. Avec iOS 12 il pourra interagir avec le contenu de la notification là où un tap sur la notification ouvrait simplement l’app.
Ces petites interfaces pourront donc proposer leurs propres boutons d’action. Les autres boutons d’action associés au push pourront aussi être modifiés pour changer un “Follow” en “Unfollow” quand on a tapé dessus. - Avant qu’un utilisateur choisisse de vous faire taire à jamais, il sera possible de lui proposer de paramétrer ses pushs. Beaucoup d’applications permettant déjà ce genre de paramétrage, il leur suffira simplement de fournir un deeplink à Apple qui redirigera l’utilisateur. Il y a donc un enjeu à implémenter ce genre de système pour éviter les désabonnements aux pushs.
MapKit JS
Ces dernières semaines Google a défrayé la chronique (et effrayé les développeurs) en changeant la politique tarifaire de Maps et ses APIs. Apple ne pouvait pas rêver meilleur momentum pour proposer son Apple Maps en Javascript pour les sites Web et c’est ce qui a été fait.
Apple propose donc ses Maps que vous pouvez déjà voir sur le Web dans un framework Javascript pour tous.
Au delà de la simplicité d’intégration que l’on peut attendre de ce genre de composant, de la qualité visuelle, c’est le pricing plan très attractif qui a retenu notre attention. Si vous avez un compte développeur Apple (ce qui doit être le cas si vous avez tenu jusqu’ici) alors vous aurez gratuitement :
- 250 000 maps / jour
- 25 000 requêtes / jour
C’est 150 fois plus de maps et 7,5 fois plus de requêtes que mapbox et 10 fois plus que le plan gratuit de Google pour une interface plus agréable, plus complète qu’un simple leaflet.js.
Quand on voit la facilité qu’il faut pour basculer d’un fournisseur à un autre on peut s’attendre à ce qu’Apple enregistre un beau succès avec ce MapKit JS.
iPad apps sur Mac
Le sujet a été annoncé à la Keynote, les applications iPad pourront prochainement se retrouver sur Mac. Si le sujet reste pour le moment obscure on peut imaginer que ceci pourrait sonner le glas de pas mal d’applications sur Mac au profit d’une rationalisation.
C’est d’autant plus vrai pour les apps Electron qui pourraient alors être remplacées par leurs équivalents iPad comme le client Slack Mac par exemple.
Le bilan : l’année de la maturité
Alors quand on regarde ces 6 nouveautés on comprend qu’il n’y a pas de choses qui sautent aux yeux comme le flat design iOS 7, les split views, … mais certaines nouveautés vont impacter profondément nos apps et leurs usages :
- Le Machine Learning accessible à tous pour faciliter (remplacer ?) la saisie en reconnaissant et apprenant de l’utilisateur et de ses données
- ARKit qui gagne des fonctions sociales pour interagir à plusieurs
- Les shortcuts offrant une manière supplémentaire d’interagir avec toutes les applications
Ces 3 technologies avaient déjà été annoncées l’an passé mais sont désormais vraiment accessibles à tous.
Au passage Apple plante quelques banderilles à ses concurrents :
- Google Maps avec une offre Web mature à un positionnement tarifaire défiant toute concurrence
- Les éditeurs peu scrupuleux qui envoient des pushs en trop grand nombre ou des pushs publicitaires (on rappelle que c’est interdit) en facilitant le désabonnement
- Les fausses apps / sites web classiques en permettant au Mac d’accéder aux apps iOS et en particuliers iPad ce qui ne manquera pas de remplacer les apps Electron ou certains sites Web.
Chez 2 App à Z nous nous préparons déjà à intégrer Core ML et Siri Shortcuts. Et vous ? Qu’allez-vous faire avec iOS 12 ?