¿Por qué utilizar React y React Native?

En Altura Soluciones, decidimos apostar por hacer nuestro front-end en React para web y React Native para aplicaciones móviles, ¿Por qué elegimos a estas librerías? una de las razones fue simplemente moda, vimos que otras empresas lo estaban usando y nos pareció interesante montarnos a esa ola, pero por lo general tú no puedes convencer a tu equipo o a tus clientes diciéndoles ¡es que es moda! por lo que paso a describir algunas características sin ningún orden en particular, que nos convencieron que era una buena apuesta:

React permite reutilizar código

React se basa en componentes, lo cual nos permite aplicar el principio de divide y vencerás, una lógica compleja se puede ir dividiendo en componentes que se especialicen en resolver problemas pequeños que al irse uniendo y entrelazando, pueden ayudarnos a resolver esos problemas complejos. Podemos por ejemplo tener componentes que solo rendericen o visualicen algo, y tener componentes que solo resuelvan lógica de negocio, estos componentes pueden reutilizarse en las aplicaciones web y en las aplicaciones móviles.

Bueno, esto es verdad pero también mentira, a pesar de que React ofrece un alto grado de reutilización de componentes que manejen estríctamente lógica de negocio entre aplicaciones web y móviles, los componentes que renderizan objetos visuales por lo general no pueden ser reutilizados entre React y React Native, por otro lado, los componentes que se vayan generando para una aplicación pueden ser fácilmente reutilizados en otras aplicaciones, inclusive, estos componentes pueden exportarse como paquetes y compartirlos con la comunidad.

React es isomórfico

“iso” del griego “ισο” que quiere decir que es igual
“morfo” del griedo “μορφο” que quiere decir forma.

Cuando hablamos de programación web, solemos hablar de dos cosas (y de algunas otras que no vienen al caso), programación del lado del servidor y programación del lado del cliente, al hablar de lenguajes de servidor tenemos muchas pero muchas opciones, pero al hablar de lenguajes del lado del cliente las opciones se reducen, antes se hablaba de VBScript o de flash (muy popular en su momento), pero actualmente del que más se habla (y más se usa) es de JavaScript/ECMAscript.

React es una librería basada en JavaScript, así como por ejemplo jQuery. La usamos por lo general del lado del cliente, eso quiere decir que ejecuta su lógica y/o procesos en el navegador del usuario, ¿Cuál es el problema con eso? Eso depende de nuestro nivel de paranoia, por ejemplo, nos pueden “robar” nuestra lógica, pero en fin, un problema que si puede afectar y bastante es el SEO ya que por lo general los robots o arañas suelen basarse en el HTML que se encuentra en una página, React renderiza/visualiza elementos basado en JavaScript, así que probablemente los robots no nos posicionen bien en los buscadores, la buena noticia es que React se puede renderizar en el lado del servidor, a eso se refiere lo de isomórfico, que se puede renderizar bien sea del lado del cliente, o en el lado del servidor, lo cual nos ayuda a resolver problemas como el de SEO.

React es veloz

React utiliza un DOM virtual el cuál, se carga en memoria, al hacer cambios basados en los estados que maneja React, se hace el cambio en ese DOM virtual, luego React compara ese DOM en memoria con el DOM del navegador y solo reemplaza las secciones que han tenido modificaciones, lo cual nos permite tener la sensación de que todo se mueve/refrezca muy rápido y de forma fluida.

React tiene un flujo de datos unidireccional

Como decía unas líneas arriba, React se basa en componentes, un componente (el padre) puede tener otros componentes (los hijos). Un flujo de datos unidireccional se refiere a que un padre puede mandar datos a sus hijos, en React esto se logra a través de propiedades, un componente puede modificar sus propios datos, pero no puede modificar los datos de su padre.

Esto nos ayuda a tener un poco más de control sobre la aplicación dado que la lógica es más predecible y ayuda a evitar tener múltiples copias de los mismos datos.

Resultados

Basados en la experiencia que hemos tenido, el resultado ha sido bastante bueno, los clientes a los que les hemos desarrollado aplicaciones usando estas tecnologías han quedados satisfechos, en los primeros proyectos nos tocó sufrir algunos dolores de cabeza mientras íbamos descubriendo que no todo es color de rosa, hemos ido aprendiendo los pros y los contras que tienen React y React Native y tratamos de ir mejorando nuestros conocimientos de estas tecnologías para seguir ofertando servicios de calidad a nuestros clientes.

Conclusión

A veces seleccionamos tecnologías solo por el reto de aprender algo nuevo o porque son populares, aunque no creo que sea un mal criterio, lo mejor a mi modo de ver es probarlas, compararlas y decidir usarlas basado en las necesidades que tengamos.

Si te gustó esta historia, aplaude tantas veces como quieras y para ver historias similares acerca de tecnología, mira nuestras publicaciones y escribe en los comentarios cualquier duda que tengas.

Si necesitas un equipo que te ayude a implementar tus ideas en React JS o Nativo, no dudes en avisarnos. Puedes ir a nuestro sitio web y llenar el formulario para que iniciemos el contacto.

Gustavo
Mail: gustavo@alturasoluciones.com
Twitter: @Aguardientico
LinkedIn: www.linkedin.com/in/gustavoagonzalez
Blog personal: http://aguardientech.blogspot.com