No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Comunicaci贸n entre capas MVP

7/32
Recursos

Aportes 15

Preguntas 1

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

En kotlin podemos usar el lateinit para instanciar la variable despues y no inicializarla nula

  private lateinit var homePresenter: HomeContract.Presenter

Luego en el onViewCreated se puede instanciar

homePresenter =  HomePresenter(this)

Si estamos hablando de mantener arquitecturas es recomendado pasar las depemdencias por constructor y no intanciarlas sobre la clase, eso ayudara que las pruebas unitarias sean mas faciles de escribir y seguir la buena practica del principio de inyecci贸n de dependencias 馃槂

Aparte de utilizar la palabra clave de lateinit, se puede hacer una declaraci贸n tipo de lazy de kotlin, de la siguiente manera:

private val homePresenter: HomeContract.Presenter by lazy { HomePresenter(this) }

De esta forma una vez que se utilize la variable homePresenter dentro del fragment, kotlin creara la instancia y para ese entonces la vista ya estara creada.

Creo que hay un problema con el adapter y es el siguiente; el adaptador necesita el arreglo de transferencias para poder funcionar, pero como ya estamos haciendo un retrieve q se demora 3 segundos, se levanta un error porque no tiene ningun arreglo aun.

Lo que yo hice para solucionarlo fue en el m茅todo initRecyclerView asignar una lista vacia.al adaptador. De esta manera, el adaptador ya tiene un arreglo (vacio) para poder trabajar y no levanta excepciones.

Como aporte, existe otra forma muy sencilla de implementar los callbacks en Kotlin usando funciones de orden superior:

retrieveFavoriteTransferFromCache( callback: (List<FavoriteTransfer>)->(Unit) )

Sin embargo, debo decir que en el proyecto se usan interfaces lo cual est谩 muy bien.

Para el profesor:

Ya que este curso es de arquitectura deber铆as tomar en cuenta que una decisi贸n vital para cualquier arquitectura es el coding style, en especial si no vas a trabajar tu solo en el proyecto. Te recomiendo leer este documento oficial de google https://developer.android.com/kotlin/style-guide

Creo que necesitar铆amos un curso entre medias de este y los fundamentos de Kotlin. Muchas de las cosas que da por echo que se saben no fueron explicadas anteriormente

He comparado lo que ense帽as de MVP con lo que ense帽a Anais en su curso, y veo algunas diferencias, como la de no tener una interfaca para el Interactor, repasando ambos nose bien con cual quedamer :S

parentesis? 3:32

Nota: Deja tu c贸digo bien limpio con los espacios necesarios para que puedan ser legibles

Esta clase me recuerda mucho a los profesores de mi colegio, en donde no explican, hacen preguntas para ellos mismo y se responden a si mismos como si fuera lo mas obvio del mundo, no se si sea el 煤nico con esta sensaci贸n pero hace la clase muy pesada y el aprendizaje bastante torpe, no entiendo que esta pasando en todo esto y no se si eliminaron un curso entre este y el dise帽o de interfaces pero es entrar a este y estar perdido.

Buena explicaci贸n

para no crear un objeto vacio y luego que me diera error on picasso hice lo siguiente

override fun getItemCount(): Int {
        var size = 0;
        try {
            size = favoriteTransferItems.size
        }catch (e:Exception){
            e.printStackTrace()
            return 0
        }
        return size
    }```

La explicacion IMPECABLE.

S 鈥 Single responsibility principle (Principio de responsabilidad 煤nica)
O 鈥 Open/closed principle (Principio abierto/cerrado)
L 鈥 Liskov substitution principle (Principio de sustituci贸n de Liskov)
I 鈥 Interface segregation principle (Principio de segregaci贸n de interfaces)
D - Dependency inversion principle (Principio de inversi贸n de dependencias)