Arquitectura de Software

1

Arquitectura en Android

2

Patrón de diseño vs. Arquitectura de Diseño

3

¿Qué es la Arquitectura de Diseño?

4

SOLID: Single Responsability y Open/Closed Principles

5

SOLID: Liskov substitution, Interface segregation y Dependency Inversion principle

6

Evolución de la Arquitectura en Android

Arquitectura Model View Controller (MVC)

7

¿Qué es la aquitectura Model View Controller (MVC)?

8

MVC en un Proyecto Android: Analizando el código en capas

9

MVC en un Proyecto Android: Llevando el código a sus responsabilidades

Arquitectura Model View Presenter (MVP)

10

¿Qué es la aquitectura Model View Presenter (MVP)?

11

¿Qué es Clean Architecture?

12

Composición en Clases

13

Model View Presenter explicado

14

Capa Model

15

MVP en un Proyecto Android: Presenters y Views

16

MVP en un Proyecto Android: Model

17

Ubicando el código en MVP

Arquitectura Model View ViewModel (MVVM)

18

¿Qué es la arquitectura Model View ViewModel (MVVM)?

19

¿Cómo funciona MVVM Data Binding?

20

MVVM Data Binding estructurando nuestra aplicación y migrando a AndriodX

21

MVVM DataBinding creando un ViewModel

22

Patron Observer en MVVM

23

MVVM Data Binding: integrando ViewModel a View

24

MVVM Data Binding: RecyclerView Adapter

25

MVVM Data Binding: RecyclerView CardView

Android JetPack Arquitectura

26

¿Qué es Android JetPack Arquitectura?

27

¿Cómo funciona la arquitectura de componentes?

28

Arquitectura Componentes Lifecycle ViewModel

29

Arquitectura Componentes Lifecycle Observe

Fin del curso

30

Conclusiones

Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Curso de Arquitectura de Android

Curso de Arquitectura de Android

Anahí Salgado Díaz de la Vega

Anahí Salgado Díaz de la Vega

Evolución de la Arquitectura en Android

6/30
Recursos

Aportes 20

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Evolución de arquitectura de Android.

MVC (Model-View-Controller): Es donde teníamos todas las responsabilidades y todas las acciones de la aplicación en una sola clase, la clase activity (main.Activity).

MVP (Model-View-Presenter): Separa las capas de modelo donde vamos a tener todas las conexiones. Después tenemos un presentador; es la capa donde mantiene la comunicación entre el modelo de datos y la user interface. Después esta arquitectura tuvo una evolución, donde se decidió que deberíamos seguir los principios de la arquitectura limpia, la cual nos dice que debemos exponer las entidades y que las entidades deben ser lo mas importante de la aplicación, mas allá de todas las capas que estén por debajo.

MVVM (Model-View-ViewModel): en la vista tenemos activities y/o fragments, despues en la capa de view model vamos a tener clases que funcionen en un hilo adicional de la aplicación para eso vamos a tener clases como : AsyncTask, Rxjava y LiveData. Y por ultimo esta la capa de model que aqui vamos a tener toda la interacción con una base de datos para conectarla y hacer que los datos lleguen a la user interface.
Android Jetpack: Arquitectura de componentes(network resources)

gracias por el curso me encanta
ya tengo que organizar mas mis códigos por que aveces siento que repito parte del código en ciertas áreas

Todos los módulos de cada curso, deberían estar dirigidos hacia un proyecto completo, que pena que no sea así, la teoría se capta mejor con la practica, mucho ruido y pocas nueces

Principal diferencia de MVP y MVVM es: MVP necesita hacer peticiones manuales cada que necesita un dato y de esta forma es como actualiza su UI en cambio MVVM lo maneja por medio del patron observable el cual solo se pone a observar a los datos y a avisar a la UI de algun cambio, sin necesidad de que la UI este preguntando por alguna actualizacion.

En un resume la evolucion de la Arquitectura Android es:
• MVC (Model-View-Controller)
• MVP (Model-View-Presenter).
• MVVM (Model-View-ViewModel)
• Android Jetpack: Arquitectura de componentes(network resources)

Qué buen curso!! como siempre una genia Anahi…!

genial, solo conocia la mvc , el jetpack se ve muy bueno

En mi opinion es mejor MVP de las tres modelos de arquitectura el MVVM toca hacer databinding como en web pero no es lo ideal

Cómo es que menciona que MVC es poner todo en la main Activity, si fuera así, esa app no tendría ninguna arquitectura, no?

En el 2017 se genero una arquitectura base de android, realiza por google
y toda la comunidad. Es la arquitectura mas oficial por Google

1. MVP: Model View Presenter

    Separa las capas

    Model: Conexiones de BD

    View: Vistas

    Presenter: Comunicación entre Model y View

2. MVP + Clean

    Las entidades son el centro de la aplicación, y las demas capas
    interactuan con ellas.

3. MVVM: Model - View - ViewModel

    No interviene un intermediario, existe un elemento que esta al tanto
    de los cambios en la data de la app.

    View: Activity/Fragment ==> 
        Representa la capa de datos y/o la lógica de 
        negocio, también denominado como el objeto del dominio. El modelo 
        contiene la información, pero nunca las acciones o servicios que la
        manipulan. En ningún caso tiene dependencia alguna con la vista.

    View Model: AsyncTask, RxJava, LiveData ==> 
        La misión de la vista es representar la información a través de los
        elementos visuales que la componen. Las vistas en MVVM son activas, 
        contienen comportamientos, eventos y enlaces a datos que, en cierta manera,
        necesitan tener conocimiento del modelo subyacente

    Model: RoomDatabase, DAO, Entity ==>        
        El modelo de vista es un actor intermediario entre el modelo y la vista, 
        contiene toda la lógica de presentación y se comporta como una abstracción de la interfaz.
        La comunicación entre la vista y el viewmodel se realiza por medio los enlaces de datos.

4. Android Jetpack (Arquitectura de componentes)

    Ui Controller (Activity/Fragment): Ui Controller

    ViewModel: Data

    Repository: Direcciona hacia la fuente de datos de la cual obtendre los datos

    SQLite Db (RoomDatabase)

    API (Network Resource)

También falto nombrar la arquitectura VIPER, muy usada en iOS pero Android esta bastante buena…
En aquel entonces también se podría usar MVP + RxJava que andaba muy bien y a la vez podría ser una especie de MVVM…

Definitivamente recomiendo Android Jetpack, es más lo usan en el curso de kotlin para android. Aqui el link: https://platzi.com/clases/kotlin-android/

Super!!

Increíble toda la evolución de Android y su manejo.

Genial¡¡¡, adelante.