Análisis de las tecnologías de desarrollo cross-platform existentes en el mercado y propuesta de un proceso de desarrollo automatizado utilizando herramientas DevOps aplicable a una pyme enfocada en el desarrollo de aplicaciones multiplataforma

No Thumbnail Available
Date
2023-11-22
Journal Title
Journal ISSN
Volume Title
Publisher
Alajuela, Costa Rica
Abstract
Las aplicaciones móviles no son aplicaciones de escritorio adaptadas para dispositivos con pantallas pequeñas, son, por el contrario, aplicaciones completamente diferentes por su uso y arquitectura con respecto a las aplicaciones de escritorio que los usuarios están acostumbrados a utilizar. La revolución de los dispositivos para comunicaciones móviles tiene menos de 20 años. Durante este tiempo, la tecnología ha evolucionado desde la voz hasta la información inalámbrica, y el uso de dispositivos móviles se ha convertido en algo cotidiano. Debido a esto, se han desarrollado una serie de metodologías para el modelado de aplicaciones móviles que apuntan a resolver distintos problemas existentes en el desarrollo de este tipo de software. Cabe mencionar que en el mercado existen tecnologías nativas, híbridas y progresivas. Esto agrega una capa adicional de complejidad al proceso de desarrollo móvil, y en el caso de una pyme que desee ingresar en este campo decidir entre una tecnología nativa, híbrida o progresiva. A estos conceptos hay que agregar que para comenzar con el Desarrollo de aplicaciones móviles es importante conocer sobre la arquitectura de los sistemas operativos, los cuales difieren en gran parte entre los grandes del mercado, Android y iOS. Mientras que Android está formado por varios niveles o capas, iOS no está formado por múltiples capas, lo que hace el proceso de desarrollo más tedioso, ya que, en el momento de acceder a capacidades nativas del sistema operativo, en ocasiones se pierde control sobre el comportamiento de la aplicación. Al abrirse este mercado, se han creado nuevas tecnologías de desarrollo cross-platform por las grandes empresas a nivel mundial; la existencia de estas tecnologías tiene como objetivo principal agilizar el proceso de creación y desarrollo de nuevas aplicaciones móviles. Considerando que las empresas pymes no siempre disponen del personal necesario para llevar a cabo los procesos mencionados, se debe planificar la implementación de un set de mejores prácticas que agilicen el desarrollo de nuevas versiones de las aplicaciones móviles que la pyme cree para sus clientes o el público en general. Estas tecnologías pueden ser aplicadas por las micro y pequeñas empresas que deseen entrar en el mercado de la comercialización de aplicaciones móviles. En este trabajo de investigación se describen las mejores prácticas de un proceso de desarrollo automatizado aplicable a una empresa pyme, a la vez se delimita un marco de trabajo de desarrollo móvil cross-platform para las micro y pequeñas empresas. Durante la investigación de campo y documental se descubre que en el mercado existen muchas tecnologías de desarrollo cross-platform así como metodologías de administración de proyectos y herramientas de automatización de procesos. Con respecto a las metodologías de administración de proyectos se recomienda la utilización de un modelo híbrido “SCRUM-BAN” que tiene como objetivo optimizar los tiempos de entrega del equipo de desarrollo al recibir Palabras clave: multiplataforma, desarrollo, aplicaciones, devops, proceso de desarrollo, ingeniería, retroalimentación consistente del usuario final, por otro lado, las tecnologías recomendadas a escoger para un proyecto de desarrollo híbrido son Flutter y React Native, ya que estas son las que tienen más penetración en el mercado del desarrollo cross-platform y son las que tienen mejor respaldo de parte de sus creadores (Google y Facebook respectivamente). Durante la investigación se descubre que los DevOps deben apuntar a mejorar la calidad del software entregado y la velocidad del mismo, entre las herramientas encontradas que se pueden utilizar para DevOps se encuentra Docker (que puede ser utilizado para la estandarización de ambientes de desarrollo y producción), Slack, que tiene como uso principal la comunicación del equipo de desarrollo con los clientes y Github con su integración nativa a Github Actions, que se utiliza para almacenar el código fuente de las aplicaciones que se desarrollan y realizar pruebas de funcionalidades automatizadas. Se recomienda a la vez utilizar un repositorio estilo mono-repo en donde se almacenarán todos los servicios de desarrollo, tanto los backend como los frontend, esto para reducir al Máximo la dependencia con otros repositorios y así disminuir el tiempo a producción de cada nuevo desarrollador que ingrese al equipo, esto también asegurará que todo cambio, sea al backend o a la aplicación frontend quedará registrado en el mismo repositorio, lo que ayudará a la resolución de bugs que se darán durante el proceso de desarrollo. Dado que el fundamento de esta investigación es la presentación de un marco de trabajo, se entiende que algunas micro y pequeñas empresas pueden encontrarlo un tanto complicado de incorporar o aceptar en su totalidad. Sin embargo, el objetivo principal es buscar mejoras. Por lo tanto, se espera que cualquier empresa pyme en Costa Rica que desee orientar sus esfuerzos de desarrollo hacia el ámbito de las aplicaciones móviles al menos consideren las recomendaciones que surjan al concluir la investigación.
Description
Trabajo final de graduación para optar por el grado académico de Licenciatura en ingeniería del software en la Sede Central de la Universidad Técnica Nacional de Costa Rica,
Keywords
Citation