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

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

9/30
Recursos

Aportes 18

Preguntas 4

Ordenar por:

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

Chicos, cree un repositorio de esta clase, lo probe en un dispositivo con android 9 y todo funciono correctamente, pueden descargar el código de la rama que necesiten, crearé una rama por cada arquitectura, espero les sirva 💚
link

Hola compañeros, recuerden el objetivo de este curso no es hacer una aplicación desde cero, si no mas bien tener una base de código, analizarlo y entonces identificar las responsabilidades de las clases y entonces organizar el código mejor; esto es un curso de arquitectura estamos estructurando aplicaciones para que sean mucho mejor escalables y para que estén disponibles para todos nuestros usuarios con la mejor fluidez posible.
Saludos.

La verdad no me agrada tener que crearme una cuenta en una pagina externa, la cual me pide datos como mi numero de teléfono y otras cosas como mi dirección.

Esta bien que se explique como implementar la arquitectura MVC, pero queda uno volando en el sentido que no entiende el codigo.

siguiendo los pasos, no me corre en un emulador con android 10, pero si corre en mi celular con Android 7 pero solo un rato luego muere la aplicación

kotlin.UninitializedPropertyAccessException: lateinit property descriptionShort has not been initialized
        at com.anncode.offersandcoupons.Coupon.getDescriptionShort(Coupon.kt:15)
        at com.anncode.offersandcoupons.RecyclerCouponsAdapter$CardCouponHolder.setDataCard(RecyclerCouponsAdapter.kt:47)
        at com.anncode.offersandcoupons.RecyclerCouponsAdapter.onBindViewHolder(RecyclerCouponsAdapter.kt:26)
        at com.anncode.offersandcoupons.RecyclerCouponsAdapter.onBindViewHolder(RecyclerCouponsAdapter.kt:13)
        at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6781)
        at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6823)
        at android.support.v7.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5752)
        at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6019)
        at android.support.v7.widget.GapWorker.prefetchPositionWithDeadline(GapWorker.java:286)
        at android.support.v7.widget.GapWorker.flushTaskWithDeadline(GapWorker.java:343)
        at android.support.v7.widget.GapWorker.flushTasksWithDeadline(GapWorker.java:359)```


que debo modificar para que no me salga el error? ayuda porfa
E/ERROR:: Failed to connect to feed.linkmydeals.com/103.14.96.21:443

Me sale el siguiente error, he cambiado por mi API, pero me deniega la solicitud. Tengo que configurar algo mas en el panel de control de la api?

y el código?

lista de imports:
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.support.v7.widget.LinearLayoutManager
import android.support.v7.widget.RecyclerView

import android.util.Log
import com.google.gson.JsonElement
import com.google.gson.JsonObject
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response

repositorio starter: https://github.com/anncode1/Curso-Arquitectura-Android

En el curso de Kotlin para android no se explica cada detalle de lo aqui expuesto, pero en el curso Basico de Kotlin para android si, en el de Kotlin es super acelerado, tiene un poco mas de nivel.

Ya que estamos con arquitecturas, tengo la duda de cómo organizar correctamente el contenido en paquetes ¿estaría correcto así?

[Mode]l
+ ApiAdapter
+ ApiService
+ Coupon

[ui]
+CouponDetailActivity
+MainActivity
[adapter] //Esto va dentro de ui, pero no sé que porque no sale bien en la maquetación de este doc.
+RecyclerCouponAdapter

Un saludo!!

Para los que no entiendan porque Anahi coloco el signo ? es porque Kotlin esta fuera de las excepciones con NullPointerException, es por eso que se debe poner ese signo y tu aplicacion estara mas segura sin excepciones o valores nulos

Vamos con el MVC en Adroid!

a los que les marca error de la imagen vacia

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

Código comentario? En serio?

donde está el código base, por que el codigo que encontre ya tiene acomodado todo, alguien me puede ayudar?

No he podido solucionar estos errores:

import com.google.gson.JsonObject marca error en google
import retrofit2.Call marca error en retrofit2
import retrofit2.http.GET marca error en retrofit2

interface ApiService {
@GET(“getOffers/”) marca error en GET
fun getCoupons(): Call<JsonObject> marca error en Call y en JsonObject
}

Cuando clono el repo desde github en mi Intellij importa todo pero me sale un error ‘Invalid Gradle JDK configuration found’ y no me deja ver el proyecto como una app creada por mí mismo. Alguna idea???

https://github.com/anncode1/Curso-Arquitectura-Android

para clonar el repo, recuerden hacerlo desde la rama master (sin modificar)