Voilà quelque temps maintenant que je lis les nouvelles concernant la sortie du prochain iPad d’Apple, et les réactions outrées de tout un paquet de gens qui s’offusquent de l’absence de fonctionnalités aussi importantes que flash ou le multitâche.
Alors comme c’est un blog qui dénonce, et que j’y écris aussi un peu ce que je veux, je vais vous donner mon avis, même si vous vous en foutez royalement, de toute façon, moi aussi je m’en fous que vous vous en foutez, et tout le monde est content comme ça…
Déjà, un point facilement torché, c’est que le flash, c’est tellement de la merde en général, c’est encore plus de la merde sur Mac, et pour ceux qui l’ont testé, c’est déjà bien de la merde sur un téléphone portable, que je vois même pas comment il arrivera sur iPhone un jour ! Bon, mis à part cet avis bien partial, il suffit de lire John Gruber qui donne bien plus d’infos, pour ceux qui se disent « tl; dr, » le résumé que j’ai donné s’applique très bien.
Ensuite, au niveau du multitâche, je dis : c’est moins facile (ah ah ! Vous vous y attendiez pas je parie). Déjà, et contrairement aux idées reçues, le multitâche tourne déjà sur l’iPhone/iPod Touch/iPad, puisqu’il est possible de s’écouter de la musique tout en surfant sur internet et en recevant de nouveaux e-mails. Bien sûr, toute cette chaîne est réservée aux seules applications Apple ; les applications de tierce partie (en gros, toutes les autres applications qu’on récupère sur l’AppStore) n’ont pas la possibilité de tourner en tâche de fond, en même temps qu’une autre application. C’est ce point-là, évidemment, que tout le monde voudrait voir changer… Tout le monde ? Bah oui, même moi, mais je nuancerais, et pour cela, je vais vous raconter une petite histoire :
Il y a fort longtemps, sur un téléphone portable SPV M600, avec du Windows Mobile 5, c’est dire si c’était une antiquité, tournaient plusieurs applications : téléphone, calendrier, jeux… Et toutes en même temps s’il vous plait ! Car oui, Windows Mobile est multitâche depuis ses tous débuts (il est dit que cela pourrait changer avec la version 7, mais comme rien n’est sûr, ne nous avançons pas trop). La croix en haut à droite du téléphone sert à placer une application en arrière-plan (logique), à moins que le développeur l’a codé spécifiquement, mais ce n’est généralement pas le cas. Mais alors, et une application qui prend des ressources (mémoires ou CPU), elle reste à tourner en faisant ramer ton portable ? Bah oui, c’est con hein ! Et, tel un Robin des bois de la ressource, récupérant le CPU pour les petits processus, on peut se farcir plusieurs menus, aller dans le gestionnaire de tâches et fermer les applications que l’on veut pour de bon… On comprend mieux qu’Apple soit réticent à inclure un tel système dans son téléphone.
« Oui, mais non, les utilisateurs qui ont déverrouillé leur iPhone n’ont pas ces problèmes, ça marche déjà ! » serez-vous tenté de dire à l’inculte que je suis ? Bah là aussi, il faut voir tourner ces solutions pour se rendre compte que c’est pas trop ça, et même si c’est mieux intégré que sur Windows Mobile (pas dur), ça reste très difficile à appréhender pour des utilisateurs qui ne sont pas familiers avec l’informatique (ceux pour qui les produits d’Apple sont vraiment ciblés), ce qui peut facilement être mis en rapport avec ce dont fait état Gizmodo dans un récapitulatif des attentes sur l’iPad et iPhone OS 4.0.
Mais pourquoi donc est-ce que je viens de descendre le multitâche sur mobile alors même que j’indiquais en début de post que c’était quelque chose d’envisageable et d’intéressant ? Tout simplement, parce que ce serait quand même vachement bien d’avoir ces fonctionnalités, mais que pour l’utilisateur, il faut que cela soit totalement transparent et naturel, et le mieux pour faire ça, c’est bien entendu en faisant chier les développeurs d’applications !
L’idée toute simple serait de pouvoir définir, pour chaque application développée sur iPhone si elle nécessite du multitâche, et si c’est le cas, comment est-ce que celui-ci devrait être géré dans les cas problématiques (réception d’un appel, consultation d’un mail…). Ainsi, un développeur de jeu n’a pas du tout besoin de multitâche : en cas de problème, un appel par exemple, le jeu enregistre son état actuel et quitte, il n’y a aucune raison de laisser tourner quelque chose en tâche de fond qui ne servirait qu’à ralentir le portable, et une fois l’appel fini, on peut relancer le jeu, relancer la sauvegarde et s’y consacrer de nouveau à 100 %.
Par contre, une application de GPS met plusieurs secondes à démarrer, trouver les satellites, récupérer des coordonnées valides, puis indiquer la destination. À l’heure actuelle, en cas d’événement imprévu, une partie seulement de ces informations est enregistrée et rechargée au lancement. Le gros problème, c’est que l’on ne s’arrête pas de rouler quand cela arrive. La sécurité routière le souhaiterait, et même si l’on se range le plus vite possible, il n’est parfois tout simplement pas possible de s’arrêter pendant plusieurs centaines de mètres… suffisamment longtemps pour rater LA sortie. Pour ce cas, le développeur aura eu à indiquer qu’en cas d’interruption, la logique du programme pourra continuer à tourner en arrière-plan, ne perdant pas la trace de ce que l’on fait, et continuera à nous informer sur le chemin à suivre en temps réel. Ces fonctionnalités minimales pourraient ainsi continuer à tourner derrière toutes les autres applications classiques et monotâche que l’on pourrait lancer par la suite, en indiquant dans le bandeau qu’une autre application tourne derrière, et jusqu’à ce que la fonction soit terminée (arrivée à destination), ou explicitement arrêtée par l’utilisateur (en relançant l’application puis en la quittant normalement par exemple).
On pourrait même imaginer qu’à terme, les développeurs, au moment de la soumission de leur application sur l’AppStore, et en relation avec Apple, « notent » la consommation de leur application en arrière-plan, et que le système, en fonction de la disponibilité des ressources, permette ou pas l’exécution en tâche de fond, avec un repli sur le classique enregistrement/recharge en cas de problème. Cela permettrait de tirer un meilleur parti de toutes les ressources disponibles, tout en prenant en compte les disparités existant entre les différents modèles d’iPhone (le 3GS a 256 Mo de RAM soit deux fois plus que le modèle 3G), en proposant aussi d’exécuter plus d’applications sur un modèle que sur un autre sans grever les performances et la batterie (même si, c’est évident, cela aura un impact certain).
On le voit tous les jours, l’iPhone est un très bon outil, portable, aux fonctionnalités impressionnantes, aux usages multiples et démultipliés par les applications disponibles sur l’AppStore, et Apple, dans sa paranoïa, introduit les fonctionnalités au compte-goutte, mais toujours après y avoir longuement songé et travaillé. Gageons qu’ils feront de même pour l’inclusion du multitâche, et que cela ressemblera à ce que je viens de décrire, tout du moins je peux le souhaiter parce que ça déchire quand même sa mère.