Como sabéis en Slash somos expertos en desarrollo de apps nativas y también híbridas. Pero no solo hacemos apps. Es habitual que además de haber desarrollado una aplicación móvil, el cliente necesite también una web igual que la app. ¿Tendríamos que hacerla nueva desde cero, con el consiguiente coste de tiempo y dinero que esto supone? Hasta hace poco en la batalla Ionic vs. React Native, el ganador era Ionic, ya que permitía hacer tanto la app como la web; mientras que React Native, solo permitía hacer la app. Sin embargo, con la aparición en escena de React Native for Web la cosa ha cambiado, ¡y mucho! Y justamente de eso hablarán hoy Marc Fernández y Álvaro Andrés, software developers de Slashmobility, de qué es React Native for Web y cómo ha conseguido que nos enamoremos de React Native hasta las trancas.
Pero antes de entrar en materia, recordemos…
¿Qué es React Native y cuáles son sus ventajas?
React Native es un framework de código abierto creado por Facebook (ahora Meta). No confundir con React JS, ¡no son lo mismo! Se usa para desarrollar aplicaciones nativas ya sean para para Android, Android TV, iOS, macOS, tvOs, etc.
Se ha convertido en el framework más popular para crear apps híbridas, y con razón, ya que ofrece todas estas ventajas:
- Muy buen rendimiento por parte de las apps creadas con esta tecnología.
- Fácil debug gracias a Metro, que permite ver los cambios que realizas en el código a tiempo real. Además, te muestra los warnings y errores de una forma muy clara, cosa que los hace más fáciles de trazar y solucionar.
- Permite tocar el código nativo (Android e iOS) a la vez que se usa, sin crear ningún tipo de problema.
- Debido a su gran popularidad, cuenta con librerías para casi todo, todas ellas muy bien mantenidas por la comunidad.
- Enorme facilidad para configurar el flujo de navegación gracias a React Navigation. Permite crear routings con tabs, con sidemenu, mostrar un header común en todas las pantallas, etc. Además, permite definir qué pantallas puede ver el usuario si no está logueado y cuáles no. Así prevenimos que alquien toque donde no debe.
Y ahora que ya tenemos claro que es React Native y sus ventajas, ahora sí…
¿Qué es React Native for Web?
React Native for Web es una librería más de la infinita cantidad de librerías que existen para React Native. Es super útil porque “traduce” los componentes nativos de Android e iOS que se usan al programar con React Native a componentes web. De tal manera que, con unos pequeños ajustes, pueden llegar a visualizar tu app híbrida en un navegador sin tener que programar absolutamente nada nuevo.
¿Y todo son ventajas con React Nativa for Web? ¡Ojalá, pero no! El único aspecto que puede llegar a limitarnos un poco es que las librerías para React Native, igual que el propio framework, usan componentes nativos. React Native for Web se encarga de convertir los componentes nativos de React Native y da soporte a muchas librerías también, pero no a todas. De modo que puede que hayas usado alguna librería que no sea “convertible” de nativo a web y tengas que buscar otra alternativa. Aún así, este pequeño inconveniente no suele causar muchos problemas si lo balanceamos con todas las ventajas ofrecidas por React Native.