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

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Arquitectura de Android

Curso de Arquitectura de Android

Anahí Salgado Díaz de la Vega

Anahí Salgado Díaz de la Vega

Ubicando el código en MVP

17/30
Recursos

Aportes 17

Preguntas 4

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Para las variables que declaras en la clases que son nullables pero luegos instancias, se pueden declarar usando “lateinit” y nos olvidamos de que sea null.

Por ejemplo:

 private lateinit var rvCoupons: RecyclerView

Es increíble como algo que parece complejo con una buena explicación y algo de practica se hace mucho más sencillo de aprender. Hasta este punto el curso me parece genial. Ya quiero entra a MVVM

Aqui el link a mi repositorio por si perdieron en la clase 💚

Es interesante este tipo de arquitectura aunque al comienzo puede marearte un poco, pero me encanta como lo estoy aprendiendo 😄

Chicos, si la app no les inicia, borren todos los "TODO("not implemented") //To change body of created functions use File | Settings | File Templates."

Una duda, en MVP cuales son las diferencias o ventajas y desventajas de comunicar el Interactor con el Presenter mediante instancias como se ve en el video, y comunicar Interactor con Presenter mediante librerias como EventBus?

¿Alguien más no entiende ni papa?

Es grave que una lista de modelo llegue al RecyclerView no nulo y que los elementos de la vista se le coloque el ?.. Una mejor manera de evitar esto es es que una de las capas que se definieron de validar si esa array es nulo enviar a la vista una list vacía o manda un error a la view…
Otra punto es agregar una exception en la vista porque cupones es nulo…

La preguntas es? La lista Coupons puede ser nula? si es así podemos usar algunos patrones de diseño para evitar ese problema…

De todas maneras el código (a excepción del api call) no se está ejecutando en el hilo principal? Creo que una mejor aproximación sería usar coroutines de Kotlin para la primera llamada en el View

Tuve que dejar la validacion de la imagen por a veces viene vacia y marca error en la libreria de picassso

if( coupon?.image_url!="" )
                Picasso.get().load(coupon?.image_url).resize(520, 520).centerCrop().into(imgCoupon)

E/ERROR:: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $

es mucho mas fácil seguir el flujo de la app de esta forma

Offers and Coupons has stopped

wow este si es otro nivel, se nota y siente la gran diferencia de la optimiacion del codigo solo de ver seinto que funciona 😃

tengo una duda, por que creas una instancia de la clase CouponPresenterImpl para hacer referencia a la implementación de sus métodos si estas implementando dichos métodos en la clase MainActivity??

Excelente explicación, la verdad me pareció un poco complejo cuando lo vi por primera vez, pero ya viendo la clase y revisando el código todo se entendió muy bien. 😄

es mucho mas claro de esta forma seguir el flujo de la app