L'iPhone OS 4 apporte plus de 1.500 nouvelles APIs pour les développeurs, et plus de 100 nouveautés pour l'utilisateur, et sera donc la mise à jour la plus importante depuis la création du système d'exploitation mobile d'Apple.

Stévan Le Meur, ingénieur d’étude et développement iPhone de Dsquare, agence intégrée de Niji, qui accompagne ses clients dans la création de services innovants cross-média reposant sur les technologies de la convergence (web, mobiles, IPTV, etc.), nous aide à décrypter quelques-unes des nouveautés de cette nouvelle mouture d'iPhone OS.
On a beaucoup parlé du multitâche, et Apple explique l'avoir fait différemment, et, selon elle, de la manière la plus adaptée possible à l'iPhone. Qu'en est-il ?
La manière dont Apple a pensé le multitâche est très intéressante : il va falloir un peu de temps pour le mettre en place, mais elle a réfléchi à une solution adaptée aux usages des conditions d'ultra-mobilité. Sa solution est élégante : elle a sélectionné un certain nombre de services auxquels le développeur a accès, ce qui est idéal pour limiter l'impact sur les ressources disponibles (processeur, mémoire, batterie).
Pour une application de VoIP, par exemple, le système va réveiller toutes les dix secondes certains processus de l'application pour qu'elle signale sa présence au réseau, et actualiser son état — ou vous prévenir si quelqu'un essaye de vous joindre. Ce n'est donc pas un portage du système du multitâche de la station de travail, mais une adaptation taillée sur mesure pour l'iPhone.
Quelle est la différence avec les systèmes de multitâche d'autres plateformes mobiles, par exemple Android ?
Google fournit, dans son système de multitâche, des solutions pour préserver la batterie et les ressources, mais leur implémentation reste à la charge et au bon vouloir du développeur et s’apparente plus à un système multitâche classique. Apple a souhaité être moins permissif et garde la main sur l'utilisation des ressources : c'est le système qui les maîtrise, et il va par exemple prévenir une application abonnée à un service (géolocalisation, VoIP…) d’un changement afin que celle-ci puisse exécuter une tâche en réponse, si besoin.
D’une manière générale, il faut développer de manière intelligente : Apple comme Google recommandent de limiter l'usage de la RAM et de mettre en place des tâches peu gourmandes. Apple contraint davantage les développeurs à mettre en place les bons mécanismes.
Quelles sont les contraintes, justement ?
La première contrainte est d'utiliser les APIs d'Apple pour gérer les différents états de l'application, et les transitions entre ces différents états. Le but est de mettre en place des mécanismes qui vont permettre de relancer le plus rapidement possible l'application, selon les conseils fournis par Apple — et ils sont nombreux. Ainsi, de nombreuses applications présentes sur l’App Store vont nécessiter des adaptations.
La seconde contrainte vient du système, qui peut à tout moment avoir besoin de plus de plus de ressources, et demander à une application d'en libérer. Il faut donc gérer tout cela, ce qui nécessite un certain équilibre entre le fait de libérer un maximum de ressources quand l'application est en arrière-plan, et le fait de relancer l'application le plus vite possible.
Qu'est-ce que cela représente en matière de difficulté de développement, d'habitudes à prendre pour respecter les canons d'Apple ?
La sauvegarde de l'état d'une application à sa fermeture pour que l'utilisateur la retrouve dans le même état à la réouverture est quelque chose que les développeurs mettaient en place assez peu jusque-là, cela deviendra une vraie nécessité.
C'est pourtant ce système de fast-app switching qui donne l'impression de rapidité et de multitâche réel. Pour prendre l'exemple de l'application MacG Mobile, il faudrait, dans l'OS 4, que si on la quitte alors qu'on lit les commentaires d'un article, on y retourne exactement au même endroit. Mieux, il faut sauvegarder toute la profondeur d'une application, c'est-à-dire qu'il faudra aussi sauvegarder le fait qu'on lisait les commentaires de tel article dans tel flux de news [NDLR : cette fonctionnalité a déjà été ajoutée dans une bêta interne].
Plus une application est complexe, et plus la profondeur de navigation est grande, et donc plus la difficulté de mise en place est grande. Ce n'est pas neutre sur le développement, et cela va donc demander du temps supplémentaire ; on ne va pas non plus doubler le temps de développement de l’application, même si on aura quand même des choses à ajouter et à modifier ici ou là.
Par certains aspects, la chose est facilitée maintenant : c'était un peu le casse-tête à développer, cela devient un peu plus facile — et est de toute manière incontournable si on veut proposer l'expérience la plus aboutie possible à l'utilisateur, qui est aussi, et souvent un client.
Le fast-app switching apparaît comme la fondation du multitâche selon Apple, mais les notifications push ne sont pas abandonnées, voire sont remises à l'avant-plan. Pourquoi l'apparition des notifications locales ?
L'apparition des notifications locales permet de faire de nombreuses choses simples, mais qui étaient coûteuses à mettre en œuvre (mise en place d’une plateforme de services par exemple). Elles sont destinées à utiliser les données locales de l’utilisateur afin d’interagir directement avec lui, et vont simplifier la mise en place de certaines applications ou services types comme des réveils, des gestionnaires de tâches…
Les notifications push classiques, elles, passent par un serveur, et utilisent des données du nuage, qui entrent de l'extérieur, que le développeur veut donner à son utilisateur, et que l'utilisateur veut voir — c'est le cas typique d'une application d'actualités.
La conjonction du fast-app switching et de ces deux types de notifications offre un mécanisme de multitâche totalement adapté aux usages mobiles, qui en plus d'être efficace est cohérent et élégant.
Quel est l'intérêt de donner l'accès à une API de géolocalisation en arrière-plan, au-delà de l'application de navigation ?
La géolocalisation, c'est la possibilité de savoir où est l'utilisateur, et avec très peu de données, de savoir ce qu'il veut en fonction de son contexte — dans la limite des garde-fous imposés par Apple.
Pour une application comme la Visite des jardins du château de Versailles, ou pour toute autre application de tourisme, pour un parc d'attractions, etc., la géolocalisation permet de « pousser » du contenu vers l'utilisateur : l'application tourne en arrière-plan, mais elle va continuer à enregistrer le circuit de visite, et par exemple proposer des notifications à l’approche de points d'intérêts.
La seule petite limitation est le double système de géolocalisation d'Apple, qui est aussi son avantage. Quand on est en voiture et qu'on veut utiliser une application de navigation, celle-ci peut utiliser le GPS même en arrière-plan, puisque l'iPhone est censé être branché. Pour un usage en mobilité, il sera préférable d’utiliser la géolocalisation par triangulation réseau, ce qui a un impact moindre sur l'autonomie. Il s’agit donc d’apporter la meilleure réponse adaptée au contexte d’utilisation.
Il y a néanmoins plein d’usages à imaginer, comme de fournir de la publicité géocontextualisée. Il est hors de question de transformer l'iPhone en guirlande publicitaire, mais on peut imaginer une application de tourisme comme Vivre à Rennes qui pourrait « pousser » des informations, des bons plans et des coupons de réduction à l'utilisateur en fonction de sa proximité à des points d'intérêt qu'il aurait prédéfini.
Vos réactions
Une longue explication ^^
Si je comprends bien le concept de "notifications push locales", ça signifie qu'on va enfin avoir des badges sur l'application "Calendrier" au lieu d'être obligé de rentrer dans l'app ou de programmer une alarme pour savoir qu'on a un truc prévu aujourd'hui? Parce que jusqu'à présent, ça manque!
@Oliviou : Apple utilise déjà un système de notifications locales pour le Calendrier : quand on a un rendez-vous, une popup s'ouvre avec une petite sonnerie pour nous prévenir. Idem pour l'Alarme qui nous réveille le matin alors que l'application Horloge est fermée.
Le problème c'est que jusqu'à présent, seul Apple pouvait faire ça ! Les développeurs tiers devaient passer par des notifications Push, ce qui est un peu ridicule. Passer par plusieurs serveurs distants pour faire sonner un réveil, ça n'a pas de sens.
Cela me semble vraiment une bonne ouverture, de laisser "enfin" les développeurs avoir accès à pratiquement toutes les APIs, de la même manière qu'Apple. Un traitement ainsi quasi "égal" et donc, une amélioration sensible de l'expérience utilisateur pour beaucoup d'application. Au final, l'utilisateur devrait apprécier!
Autant je trouve l'entretien intéressant, autant je trouve que cette version 4 reprends beaucoup de choses disponibles sur cydia depuis des lustres. (voip, multitâche, ... ) bien sûr c'est mieux fait car réalisé par apple et l'impact sur la batterie est optimisé, mais cela reste tout de même des choses que je fais depuis des mois et de mois grâce à cydia.
@ Naas : oui et ?
Ce que je trouve le plus intéressant, et qui passe souvent inaperçu, c'est l'intégration en entreprise.
La pression sur les DSI est très forte pour intégrer les iPhones aux flottes d'entreprise, mais pour le moment, le déploiement et la sécurité n'étaient pas suffisamment poussés pour déloger les Blackberry. J'espère que les améliorations de l'OS4 permettront d'aller plus loin dans ce domaine.
Merci iGeneration pour cette interview !
de toute façon beaucoup de responsable informatique sont allergiques à l'iphone/mac, donc oui donner les outils c'est bien, mais cela ne sera pas suffisant.
ce que je déplore.
diantre, ca leur file des boutons ? ils se grattent et ont de grosses plaques si on approche un iphone ?
-
mon travail est précisément ce que vous décrivez, et nous ne sommes pas allergiques. Encore heureux parce que les employés débarquent sans demander notre avis.
Un Service Informatique typiquement est conservateur. Il a des responsabilités et des fonctionnalités à maintenir pour la bonne marche de l'entreprise. _TOUT_ ce qui débarque (même votre énième windows bidule pc) est donc une gène, un risque potentiel.
et puis on fait quand même.
L'iphone étant wifi, imap, exchange, ipsec, vpn ssl (et même du cisco), etc. il s'interface, qu'on le veuille ou non avec le systèmes informatiques classiques.
-
pour l'anecdote, je travaille sur mac et des employés amènent leur macs sans que je vienne leur hurler mon horreur. Nous contrôlons l'usage du réseau de toute façon.
oomu,
les services informatiques n'ayant jamais travaillé sous mac font des pieds et des mains pour ne pas integrer la moindre parcelle de produit apple, je ne dis pas cela en criant au loup, mais dans les cabinets d'ingénierie, c'est TOUJOURS le cas.
1 ah non les macs ne sont pas supportés, désolé
2 ah non c'est contraire aux règle d'usage de l'informatique que vous avez signé
3 ah non je ne suis pas formé.
etc
etc
etc
Pour l'intérêt de la geoloc en tache de fond regardez Locale sur Android. C'est génial.
Je viens d'installer la version beta de l'OS 4.0 et pour revenir au système de multitâche je le trouve très bien conçu mais la suppression des applications est un vrai calvaire. Il faut les supprimer de la même manière que les applications normale ce qui s'avère très laborieux au vu du nombre d'applications ouvertes. Il n'aurait pas été plus simple de les supprimer a la manière du dock sur Mac!? Un simple glisser-déposer en dehors du dock et pouf elle disparaissent! Une modif s'impose au plus vite!
c'est un énorme problème et si j'avais été apple j'aurais carrément pas ajouté ce "switcheur"
car laisser ou "supprimer" les programmes dans le switcheur change RIEN
Vous ne "quittez" PAS les programmes quand vous les enlevez du switcheur
ni ils s'arrêtent, ni ils libèrent de la mémoire, ni RIEN
C'est le système qui décide. rien d'autre.
Le switcheur n'est qu'une liste des dernières applications ouvertes et on pourrait profiter des futures applications multi-taches sans lui.
Il change rien, vous ne pouvez pas "quitter , supprimer les applications de la liste sert à rien. rien du tout, vous n'optimiserez en rien l'iphone.
Je pensais que toute app allait pouvoir profiter du freeze du multitache avec l'os 4, en fait toute le monde devra modifier ces app. Autant dire que le comportement sera imprévisible pendant encore longtemps. Pkoi apple n'a pas trouvé un moyen de sauver complétement l'état de l'app ?
Et puis le coup d'interdire les daemon et de développer des api pour qql scénarios imaginé par Apple c'est extrément limitant . C'est etre sur que l'iPhone sera en retard su les nouvelles bonnes idées.
@naas : SJ a bien dit qu'ils n'étaient pas les premiers a faire le multi tache. Donc oui tu l'utilise depuis des mois sur ton JB. Très bien. Et ? La façon de faire d'Apple est 100 fois meilleure que de laisser tout faire par n'importe quelle application. Surtout si elle est codée avec les pieds.
Le dock pour switcher entre les applications n'est pas un gestionnaire de tache, juste un raccourci pour passer élégamment d'une appli à l'autre et mettre en pause celle que l'on vient de quitter. That's it.
Cet iphone os 4 va etre absolument merveilleux, je suis tellement heureux. Enfin toute cette attente aura eu un sens.