Saltar a contenido

Fundamentos

Mobile

El desarrollo móvil implica la creación de aplicaciones para dispositivos móviles que se ejecutan en sistemas operativos como Android o iOS. Estas aplicaciones pueden ser diseñadas para ofrecer una variedad de funcionalidades.


ReactJS PWA vs React Native

Si la aplicación requiere un rendimiento muy alto y una experiencia de usuario fluida, entonces React Native es una buena opción debido a su capacidad para interactuar con componentes nativos.

Se define Aplicativo con React Native todos los aplicativos que tengan los siguientes requerimientos:

o Uso exhaustivo de los sensores del dispositivo. (uso avanzado de la cámara, uso de la geolocalización) cuando estos sensores forman parte indispensable de la aplicación y se requiere precisión así como estabilidad de estos sensores.

o Tener noción del parque de dispositivos que van a utilizar la aplicación, o eventualmente podríamos tener control.

o Debido a la criticidad requiere más grado de seguridad. A evaluar y convalidar con el área de seguridad, ya que el desarrollo sin importar la tecnología debería ser seguro.

Si los requisitos de rendimiento son menos exigentes y la aplicación requiere menos interactividad, React PWA puede ser suficiente.

Manager de Paquetes

Desde arquitectura recomendamos utilizar Yarn, para desarrollos Mobile y pnpm, para desarrollo web para la optimización y performance del espacio en disco de las máquinas de los desarrolladores así como el performance dentro de nuestro CICD.

Routing

Se establece React Navigation, debido a la popularidad y uso extensivo, como la compatibilidad con expo y/o CLI.

Librería que permite gestionar la navegación y el enrutamiento en aplicaciones móviles. Es una de las bibliotecas más populares para React Native y ofrece una variedad de opciones de navegación, como stack, tabs, drawer, y más.

Autenticación y Autorización

Planteamos la elaboración de una librería que se amolde completamente a la estrategia de linea blanca como planteamos para web. Permitiendo facilitar la implementacion de cualquier otro proveedor de identidad, estableciendo Azure B2C como standar dentro de la compañia.

 @architecture-it/react-native-auth 

Estilos

Planteamos una librería de componentes común basada en una implementación de Material Design (así como en web) en la cual agregaremos los componentes básicos necesarios cross aplicación para acelerar el desarrollo a futuro de los productos Mobile. Stylesystem-mobile (accesible vía VPN).

Herramientas de desarrollo

Alineados con el estándar que ya manejamos en web, se establece el uso de Typescript así como el uso de la configuración de Eslint Disponible internamente.

Testing Unitario

Siguiendo los estándares de la comunidad se establecen las herramientas estándar Jest y testing-library/react-native

Notificaciones push

Dentro de las herramientas mas utilizadas para notificaciones push, se encuentran: OneSignal, Firebase Cloud Message y Azure Notification Hubs.

Utilizaremos Firebase Cloud Message como standar dentro de la compania ya que es el mas utilizado en la comunidad y se encuentra mucha documentacion referida. Ver el research

Geolocalización

Se establece como estándar debido a su licenciamiento a Transistorsoft (uso avanzado de geolocalización).

Entorno

Para trabajar comodamente, recomendamos:

  • Visual Studio Code como IDE para el desarrollo

  • Android Studio para emular diferentes dispositivos

  • Para Debugging ver