Desarrollo con React Native

React Native es un framework de desarrollo híbrido, cuyo objetivo es que mediante una base de código común se puedan generar diferentes implementaciones para distintas plataformas móviles como IOS o Android.

A continuación podrás encontrar el enlace para un proyecto basado en React Native que contiene configuraciones básicas y es un buen punto de partida para expandir sus funcionalidades e implementar tu propia solución.

https://github.com/BranthonyC/AwesomeProjectReactNative

Componentes del proyecto base

Navegación

La navegación en aplicaciones móviles es realmente importante en cuanto a la experiencia de usuario y la usabilidad del sistema, como desarrolladores debemos acoplarnos a aquellos patrones de diseño y buenas prácticas que han sido ampliamente aceptados por los usuarios.

Para que una aplicación sobresalga ante su competencia, debe brindar una excelente experiencia de usuario, es el cuidado de estos pequeños detalles que marcan una gran diferencia.

Es por eso, que en este proyecto base hacemos uso de dos tipos de navegación utilizado ampliamente en aplicaciones móviles; navegación mediante un menú lateral y la navegación mediante pilas. Ambos tipos de navegación haciendo soporte de gestos a lo cual los usuarios están familiarizados.

Puedes leer más de ambos en aquí.

Manejo de estado con Redux

Cuando estamos construyendo sistemas complejos, es importante que cuidemos el consumo de recursos desde nuestras aplicaciones clientes, siempre debemos tomar en cuenta el volumen de peticiones que puede llegar a realizarse desde una gran cantidad de usuarios.

El manejo de estados con redux puede llegar a ser complejo, pero vale totalmente la pena si se utiliza de manera correcta, siempre considerando otro tipo de manejo de estado como lo son los props y los contextos para evitar así agregar complejidad indeseada a nuestro desarrollo.

El manejo de estado con redux se compone de un estado inicial, reduces, acciones y aquellos que despachan acciones, dentro del proyecto adjunto encontraran cada uno de estos elementos dentro de la carpeta states.

Además, también debe existir un proveedor de contexto; sin embargo, en cuanto al uso de contextos, no existe de manera explícita un consumidor de contextos y se accede directamente al estado haciendo uso de useSelector que es un hook instalado con el paquete react-redux.

Puedes leer más al respecto aquí.

Conexión a un websocket

Los websockets son vitales para el desarrollo móvil y en sí para el desarrollo multiplataforma como tal, ya que por su naturaleza nos permiten enviar notificaciones con muy baja latencia a una gran cantidad de clientes finales, el uso de websockets con el manejo correcto del estado con herramientas como React Native puede crear un ambiente que permita actualizaciones en tiempo real.

Consumo de API’s

El consumo de APIs es la forma en la que las aplicaciones cliente se pueden comunicar con los servidores para persistir información o consultar información actualizada sobre el sistema, si bien existen distintas maneras de consumir y publicar información a un servidor mediante API’s, en el proyecto ejemplo se sugiere su uso mediante patrones de diseño, especificamente el uso de un abstractFactory o un factory que permita asegurar el control de la información de entrada y la información de salida desde nuestro sistema.

Los patrones de diseño no son más que prácticas, generalizaciones y acuerdos con base en experiencia de muchos expertos a lo largo del tiempo, en los cuales se han acordado soluciones programadas a problemas estructurados. Los cuales nos encontraremos a lo largo del desarrollo de cualquier aplicación.

Puedes leer más sobre patrones de diseño aquí.