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.














