Bell TV: Transférer un produit mobile au Web sans compromettre sa qualité
Par: Pierre-Luc Simard, Associé et Vice-président technologie
Depuis plus de deux ans maintenant, lâĂ©quipe de Mirego travaille avec Bell Canada sur le dĂ©veloppement de lâapplication Bell TV. Bien que les premiers efforts ont Ă©tĂ© concentrĂ©s sur les applications iOS et Android permettant de regarder la tĂ©lĂ©vision dans nâimporte quel contexte, une Ă©tape importante a rĂ©cemment Ă©tĂ© franchie : lâoffre de Bell TV est dorĂ©navant disponible sur les ordinateurs Mac et Windows via le Web.
Le projet de lâapp Bell TV est la quintessence du «â penser et travailler mobile avant tout â». En effet, nous avons dĂ©veloppĂ© une application native iOS et Android pour ensuite la porter sur ordinateur. Lâobjectif Ă©tait d'offrir l'essence de l'expĂ©rience mobile tout en profitant des avantages d'un navigateur web. La puissance des ordinateurs permet une expĂ©rience de haute qualitĂ© basĂ©e sur des technologies web, qui permettent des itĂ©rations et un dĂ©ploiement plus rapide.
L'objectif est clair depuis le tout dĂ©but du projet : il ne faut pas dĂ©doubler les efforts de production en Ă©crivant deux applications (iOS et Android). LâĂ©quipe a investi temps et efforts pour utiliser un transcompilateur (en dâautres termes, un traducteur) permettant de partager la logique entre lâapplication Android, Ă©crite en Java, et lâapplication iOS, Ă©crite en Objective-C. Au moment de crĂ©er une version web, il nous a semblĂ© ridicule de réécrire toute la logique dĂ©jĂ partagĂ©e entre iOS et Android uniquement parce que nous considĂ©rions une nouvelle plateformeâ sachant que notre objectif Ă©tait de reproduire lâexpĂ©rience mobile.
Le premier grand dĂ©fi a donc Ă©tĂ© de trouver un moyen de ne pas de réécrire la logique de base, mais bien de la partager entre les trois plateformes (iOS, Android et Web).  à cette fin, nous avons Ă©crit notre propre traducteur de Java Ă JavaScript puisque, mĂȘme si ces langages ont un nom similaire, ils sont tout Ă fait diffĂ©rents. La crĂ©ation de logiciels pouvant ĂȘtre traduits de lâun Ă lâautre nâĂ©tait pas tĂąche facile et elle ajoutait un certain risque au projet. Cependant, dĂšs la rĂ©alisation de notre preuve de concept, nous Ă©tions convaincus que ce serait la meilleure solution pour nos clients, nos utilisateurs et pour le produit.
Pour les lecteurs plus techniques, l'idĂ©e de traduire du code parfaitement fonctionnel de Java Ă Javascript peut sembler un peu ambitieuse (voir folle). AprĂšs tout, le code Java peut ĂȘtre utilisĂ© sur le serveur sans modification. Nous aurions pu crĂ©er des services sur le serveur utilisant la logique partagĂ©e qu'un navigateur web aurait pu utiliser pour afficher des informations. Dans lâapplication mobile, la logique commune suppose quâelle fonctionne pour un utilisateur uniqueâ; elle donne des informations destinĂ©es Ă tous les utilisateurs, comme le guide TV, quâelle adapte et filtre pour nâafficher que ce qui est pertinent pour cet utilisateurâ; et tout le traitement des donnĂ©es se fait sur son appareil.
Faire la mĂȘme chose sur un serveur signifiait que, lorsque le nombre dâutilisateurs augmente, le nombre de serveurs devait Ă©galement augmenter puisque la puissance de l'infrastructure doit ĂȘtre adaptĂ©e au volume de traitement. Cette option nâavait aucun sens, ni pour nous ni pour nos clients. Le fait de comprendre que la logique partagĂ©e devait ĂȘtre sur lâappareil de lâutilisateur et non sur le serveur a confirmĂ© que traduire la logique existante de Java en JavaScript Ă©tait lâalternative la plus raisonnable.Â
Aujourdâhui, Bell TV est disponible en tant quâapplication web monopage (un ensemble de fichiers HTML, CSS et JavaScript). Pour Bell, cela signifie que lâensemble de lâapplication sâexĂ©cute dans le navigateur de lâutilisateur et utilise le mĂȘme code que lâapplication mobile pour communiquer avec les services web. Cela permet le maintient dâun seul ensemble de serveurs pour rĂ©pondre Ă la demande des applications mobiles et des navigateurs web. En ce qui concerne les utilisateurs de lâapplication, ils retrouvent sur leur ordinateur Mac ou Windows les mĂȘmes fonctionnalitĂ©s que dans leur application mobile. Enfin, pour lâĂ©quipe de dĂ©veloppement, cela signifie que nous pouvons dorĂ©navant rendre les nouvelles fonctionnalitĂ©s disponibles sur les trois plateformes beaucoup plus rapidement, car elles partagent une logique de base commune.
Porter Bell TĂ©lĂ© sur le web en utilisant cette approche dĂ©montre quâil est possible de transfĂ©rer un produit mobile au Web sans avoir Ă compromettre sa qualitĂ©. Et pour lâĂ©quipe de Mirego, câest une fiĂšre rĂ©alisation.














