[en] Every day there are more platforms in which a software application must have presence to reach their target consumers. Those platforms usually work with different languages and users expect different experiences from them. Developing independent applications for each platform represents a considerable increase in both budget and maintenance complexity. Cross-platform frameworks allow sharing a significant code and logic base between applications targeted for different platforms while using a single programming language. Even so, the results are not always satisfactory for different reasons, being one of them the lack of clear guidelines to follow for choosing and using the needed technologies. In this master´s degree project we developed an agile methodology called MCPDev that establishes an adaptable framework based on modularity and reuse of logic for any project and any team that takes on crossplatform developments, providing basic notions about the environment, concepts and steps to follow. The goal is to achieve more tasks, in less time, with lower costs and maintaining quality and consistency. For this we use a JavaScript Stack on top of Node.js, React.js, React Native and Electronjs. Our findings suggest that after applying the methodology and compare the resulting applications against native versions for each one of the platforms it resulted in a considerable reduction of code lines, programming languages and technologies implied. All while keeping enough quality and performance in the resulting product to make it difficult for professional programmers to identify if the App was native or cross-platform.

[es] Cada día son más las plataformas en las cuales un aplicativo de software debe tener presencia para poder llegar a sus consumidores objetivo. Dichas plataformas usualmente trabajan con distintos lenguajes de programación y sus usuarios esperan diferentes experiencias de las mismas. Desarrollar aplicaciones independientes para cada una de estas plataformas representa un incremento considerable, tanto en el presupuesto, como en la complejidad de mantenimiento de la plataforma. Los frameworks de desarrollo multiplataforma permiten compartir una cantidad significativa de código y lógica entre aplicaciones orientadas a distintas plataformas haciendo uso de un único lenguaje de programación. Aun así los resultados no siempre son satisfactorios por distintas razones, siendo una de estas la falta de claridad en los lineamientos a seguir a la hora de la elección de las tecnologías a utilizar y en el cómo utilizarlas. En este Trabajo Fin de Master (TFM) desarrollamos una metodología ágil denominada MCPDev que establece un framework adaptable basado en la modularidad y reutilización de lógica para cualquier proyecto y equipo que se embarque en los desarrollos multiplataforma, brindando nociones básicas acerca del ambiente, conceptos a tener en cuenta y pasos a seguir. El objetivo principal es lograr más tareas, en menor tiempo, con menores costos y manteniendo la calidad y consistencia. Esta metodología se ha validado a través de un caso de estudio que utilizó una pila de desarrollo basada en JavaScript sobre Node.js, React, React Native y Electronjs. Los hallazgos al aplicar la metodología y compararla con aplicaciones nativas para las plataformas indican una reducción considerable en las líneas de código escritas y los lenguajes de programación y frameworks utilizados, a la vez que se ha obtenido un producto difícil de diferenciar de una aplicación nativa hasta para usuarios avanzados.