Comment porter une application React Native sur grand écran ? Quels avantages ? Quelles difficultés ?
Principal software engineer chez Salesforce, Douglas Lowder a exploré ces questions pour un besoin interne : permettre aux développeurs Salesforce - plus familiers avec le JavaScript qu'avec le développement tvOS natif - d'être productifs dans le développement d'applications pour grands écrans.
En utilisant une véritable application React Native sur Apple TV, Douglas Lowder présente les possibilités offertes par le portage qu'il a réalisé. Il explique au passage les difficultés qu'il a rencontrées.
Sur Apple TV, pas de navigateur, pas d'écran tactile, ni d'éléments d'interface courants sur ordinateur ou mobile. React Native offre aux développeurs la possibilité d'utiliser du JavaScript, et de se passer des vues natives. Le travail de Douglas permet d'utiliser des composants qui gèrent automatiquement les évènements tels que le focus, sans devoir modifier davantage le code d'une application React Native.
Douglas Lowder fait la démonstration de multiples fonctionnalités : la navigation, la prise en charge de la télécommande, ou encore la saisie dans un champ de texte. Il donne en passant plusieurs conseils en matière de conception d'UI pour les grands écrans. Seul point noir sur lequel insiste Douglas Lowder : il n'est pas possible de persister les données d'une application. Elles sont perdues quand l'application est fermée.
Des travaux sont en cours pour pouvoir utiliser React Native sur Android TV, avec pour objectif d'avoir des fonctionnalités similaires.
Douglas Lowder termine sur un cas concret d'utilisation intéressante de React Native sur grand écran : la visualisation de données avec la librairie Victory.
Documentation utile sur le développement d'applications React Native pour télévisions :
- https://reactnative.dev/docs/building-for-tv
- https://github.com/react-native-tvos/react-native-tvos