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