Créer un Module React Native, Discussion avec Grégoire Hertault

November 18, 2020
Rédigé par
Révisé par

Créer un Module React Native, Discussion avec Grégoire Hertault

Bonjour tout le monde ! La semaine dernière j’ai eu la chance de discuter avec Grégoire Hertault, créateur du module React Native Twilio Phone, un module pour gérer la VoIP sur mobile. Il m’en a dit plus sur ce projet à travers un échange que je vous retranscris ici.

Présentation

Valériane: Bonjour, peux-tu te présenter pour nos lecteurs ?

Grégoire: Je suis Grégoire Hertault, développeur depuis 2010, fullstack depuis 4 ans. Par fullstack j’entends: backend, frontend, cloud et ops.

Je suis aussi freelance depuis 4 ans, et en temps normal j’interviens chez des clients pour des missions de prestation.

Mais cette année j’ai décidé de faire un break et de créer ma propre application. Je suis dessus depuis janvier, c’est un projet personnel, indépendant de la situation sanitaire. C’est une application qui permet de contacter des services clients.

C’est justement en la développant que je me suis aperçu que j’avais besoin de certaines librairies qui n'étaient pas disponibles sur GitHub. C’est ce qui m’a amené à développer deux librairies, une sur AWS Amplify et React et l’autre qui concerne Twilio Voice et React Native.

Portrait de Grégoire Hertault

[Grégoire Hertault]

 

V: Depuis quand tu codes en React Native et qu’est ce qui te plait dans ce langage et / ou l'écosystème du développement mobile?

G: Pour moi, coder en React Native c’est très récent. J’avais déjà fait des veilles techniques et je connaissais un peu mais je me suis vraiment plongé dedans en janvier de cette année, pour les besoins de mon application.

Ce qui me plait est très bien résumé par son slogan: “coder une seule fois, livrer partout”. Avec une seule base de code on peut avoir une application IOS et une Android, et on peut même aller plus loin avec les modules pour développer sous Mac OS et Windows. C’est vraiment cet aspect, avec un code unique pour toutes les plateformes qui me plait énormément. Je suis aussi très enthousiaste par rapport au framework React qui est assez puissant et agréable à utiliser.

Le module React Native Twilio Phone

V: Peux-tu résumer ton module en une phrase?

G: C’est une librairie qui permet d'implémenter de la voix sur ip avec Android et IOS en s’appuyant sur l’API Twilio Voice.

V: Comment t’es venu l’idée de créer ce module ?

G: Lors du développement de mon application, j’ai cherché les modules open source qui  qui gèrent la VoIP et j’en ai trouvé quelques uns mais assez anciens, voire même plus maintenus du tout. En analysant leur code, je me suis rendu compte que certains ont un parti pris qui n’est plus le bon aujourd’hui, à mon sens. Ce sont des librairies qui gèrent absolument tout, la notification, l’affichage de l’appel, la réception d’appel que l’appli soit en background ou foreground... Ce format “tout en un” est complexe à maintenir.

Par contre j’ai trouvé des librairies maintenues qui gèrent uniquement de petites parties comme juste la notification push ou d’autres qui gèrent  uniquement l’affichage de l’appel avec les interfaces utilisateurs natives que ce soit Android ou IOS.

Mais même en assemblant plusieurs librairies récentes et répondant à mes besoins, il me manquait toujours la partie VoIP.

C’est comme ça que je suis tombé sur l’API Twilio Voice, via une recherche web.

V:  Qu’est ce qui t’a donné envie de développer sur la plateforme Twilio?

G: J’aimais bien les outils cloud, je connais très bien AWS et quand je suis tombé sur Twilio j’ai eu la même sensation: que c’était une énorme plateforme, qui allait répondre à mes besoins, pas trop chère, fiable et qui m’ouvrait plein de possibilités techniques.

Je me suis rendu compte qu’on pouvait appeler facilement grâce à Twilio Studio et ça m’a impressionné. L’outil est performant et la documentation est très complète.

Le seul bémol pour moi concernant Twilio c’est qu’ils maintiennent les SDK Android et IOS, qui sont les deux natifs, mais qu’ils misent sur la communauté pour les autres frameworks comme Flutter, React Native

C’est ce manque qui m’a poussé à créer ce module pour React Native ! Mais au final, je suis très content de l’avoir fait.

Retour d’expérience sur la création du module

 

React Native Twilio Phone on GitHub

[React Native Twilio Phone sur GitHub]

 

V: Comment s’est passée la création de la librairie ?

G: Créer ce module était une nécessité pour mon projet mais c’était globalement agréable à faire.

Il y a une très bonne documentation côté React Native pour se lancer dans le développement de modules. Il y a notamment un projet maintenu par une équipe d’experts du framework qui s’appelle React Native Bob. C’est un projet bootstrap, qui te permet de lancer dans ton terminal  $ react-native bob, ce qui génère un projet contenant tout le nécessaire pour commencer à développer. J’ai trouvé ça simple et intuitif et surtout ça m’a permis de pouvoir partir directement sur un module en Swift pour iOS et Kotlin côté Android.

Pour la partie développement natif du module, comme j’ai les bases de la programmation, Kotlin et Swift c’était pas très compliqué à apprendre. Ce sont des langages assez neutres et sympas.

J’ai trouvé les IDE très agréables, surtout Android Studio. Tu lui donnes un bout de code en Java et il te propose l’équivalent en Kotlin, et si il y a une erreur il est très précis notamment pour linker vers le code problématique, c’est parfait pour le débogage!

Concernant la partie avec  l’API Twilio Voice, je me suis appuyé sur la documentation des deux SDK, Android et IOS et j’ai beaucoup lu le code en suivant ce qu’ils avaient fait dans les quickstart Twilio pour Android et IOS.

Avec tout ça, ça s’est très bien passé, ça m’a permis de ne pas avoir de blocage et de toujours trouver l'info que je voulais.

V: Est-il possible de contribuer à ton module?

G: Oui , bien sûr, toutes les informations pour contribuer à mon projet sont ici.

 

Un grand merci à Grégoire pour sa disponibilité et sa bonne humeur. J’ai adoré entendre l’histoire de la création de son module et j’espère que vous aurez autant de plaisir à la lire que j’ai eu à l’entendre.

 

I can’t wait to see what you build!

 

Valériane Venance est Developer Evangelist à Twilio. N’hésitez pas à la contacter via vvenance@twilio.com si vous avez créé un outil dont vous aimeriez parler sur le blog Twilio!