Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Arquitectura de Software
Laboratorio #4
Realizado por:
Grupo 2B - PinArt
Profesor:
Cundinamarca
Bogotá, Colombia
24 de Abril de 2020
i. Requisitos: Equipos de Proyectos Reunidos
Integrantes:
Angular
Es un framework para aplicaciones web desarrollado en TypeScript, de código
abierto, mantenido por Google, que se utiliza para crear y mantener aplicaciones web
de una sola página. Su objetivo es aumentar las aplicaciones basadas en navegador
con capacidad de Modelo Vista Controlador (MVC), en un esfuerzo para hacer que
el desarrollo y las pruebas sean más fáciles. La idea es usar los módulos que ofrece
angular para separar las responsabilidades.
React + Redux
A continuación, una vista de cómo sería el proceso dentro de react usando Flux como
subarquitectura.
Actions Creators & Actions: Los actions creators son colecciones de métodos que
son llamados dentro de las vistas (o en cualquier lado de ser necesario) para enviar
acciones al “Dispatcher”. Las acciones son el payload (carga de trabajo) que es
enviada por medio del dispatcher.
Kotlin vs Java
Java: Java es uno de los lenguajes de programación más populares del mundo. Es un
lenguaje orientado a objetos, potente, versátil y multiplataforma (corre en cualquier
sistema operativo moderno). Además puedes obtener Java y gran cantidad de
herramientas para trabajar con él de forma gratuita, siendo la mayor parte de su
código libre y abierto.
Es el lenguaje nativo que utiliza Android, las aplicaciones que se comuniquen con el
sistema operativo y utilicen directamente el hardware van a usar Java. Estamos ante
uno de los lenguajes de programación más extendidos, lo cual se ve reflejado en su
comunidad y el amplio conocimiento extendido por ella.
Para ello seguiremos un patrón arquitectónico que se asegure de cumplir con dicho
objetivo de una forma óptima. Veremos a continuación los principales de ellos.
Pero se ha ido dejando aparte puesto que, debido a que el controlador de código suele
convertirse en un elemento altamente inmanejable, dificultando las pruebas de unidad
e incrementando la complejidad del sistema de software.
Rompe la dependencia con lo que se tiene en la Vista, y está dividido en los siguientes
componentes:
Model: Igual que en el MVC, maneja la lógica de negocio y los estados de los datos,
pero ahora, no tiene ninguna interacción con la Vista.
Modelo: De igual manera que las arquitecturas MVC y MVP, este elemento se
encarga de la lógica de negocios y la representación de los datos, para esto puede usar
recursos locales o remotos.
View: Se encarga del código de la interfaz con el usuario (IU), generalmente XML,
la principal diferencia con las demás arquitecturas se presenta a la hora de realizar
peticiones al intermediario (ViewModel), no se obtienen respuestas directamente,
para la obtención de respuestas se debe suscribir a los observables que el ViewModel
expone.
Ventajas:
• Se reduce ampliamente el acoplamiento entre la vista y el intermediario
(ViewModel).
• Se elimina el concepto de interfaz y vista entre la vista y el intermediario,
este concepto puede generar bastantes problemas en una gran cantidad
de escenarios.
Desventajas
• En interfaces muy extensas y poco flexibles, suele ser tedioso la creación de
una gran variedad de observables para responder a las distintas solicitudes.
Referencias:
[1] Vandana Srivastava. (2019). MVC vs MVP vs MVVM architecture in Android. 24/04/2020,
de MindOrks Sitio web: https://blog.mindorks.com/mvc-mvp-mvvm-architecture-in-android
[2] Amit Shekhar. (2020). MVVM Architecture - Android Tutorial for Beginners - Step by Step
Guide. 24-04-2020, de MindOrks Sitio web: https://blog.mindorks.com/mvvm-architecture-android-
tutorial-for-beginners-step-by-step-guide
[3] SomosTechies [Jesus Angulo]. (2020, 04 24). Arquitecturas móviles - MVC, MVP, MVVM
y Flux [Archivo de video]. Recuperado de https://www.youtube.com/watch?v=tozOPRdhDM8
[4] Kevin Javier Morales. (2019). Arquitecturas de Software en Android: MVC, MVP y
MVVM. 24-04-2020, de Platzi Sitio web: https://platzi.com/blog/arquitecturas-de-software-en-
android-mvc-mvp-y-mvvm/
[5] Eric Maxwell. (2017). MVC vs. MVP vs. MVVM on Android. 24-04-2000, de Realm Sitio
web: https://academy.realm.io/posts/eric-maxwell-mvc-mvp-and-mvvm-on-android/
[6] Illya Alvarado. (2019). Los 3 principales lenguajes para programar aplicaciones en
Android. 24-04-2000, de Cero Ideas Sitio web: https://ceroideas.es/los-3-principales-lenguajes-
para-programar-aplicaciones-en-android/
[7] Vaishnavi M R. (2019). Kotlin vs Java: Which is the best fit?. 24-04-2020, de Edureka! Sitio
web: https://www.edureka.co/blog/kotlin-vs-java/
[9] Angular ¿qué son los módulos y cómo se refactoriza una aplicación?. (2020). Recuperado 24
April 2020, desde https://medium.com/@yonem9/angular-qu%C3%A9-son-los-m%C3%B3dulos-y-
c%C3%B3mo-se-refactoriza-una-aplicaci%C3%B3n-9457550e8e9
[10] Building and serving Angular apps. (2020). Recuperado 24 April 2020, desde
https://angular.io/guide/build
[11] Thinking in components with Vue.js. (2020). Recuperado 24 April 2020, from
https://medium.com/@_shirish/thinking-in-components-with-vue-js-a35b5af12df
[13] What is Vuex? | Vuex. (2020). Recuperado 24 April 2020, desde https://vuex.vuejs.org/