Introducci贸n

1

Qu茅 aprender谩s sobre Clean Architecture en Android

2

驴Qu茅 es clean architecture?

Repaso de Conceptos Generales

3

Principios SOLID

4

Repository Pattern

Presentaci贸n del proyecto

5

Presentaci贸n del proyecto: Rick and Morty

6

Uso de RxJava y RxAndroid en el proyecto

Capa de Presentaci贸n

7

Introducci贸n a la capa de presentaci贸n

8

Implementaci贸n de la capa de presentaci贸n

9

Soluci贸n del reto

Capa de Casos de Uso

10

Introducci贸n a la capa de casos de uso

11

Soluci贸n del reto: capa de casos de uso

Capa de Dominio

12

Introducci贸n a la capa de dominio

13

Implementaci贸n de la capa de dominio: mappers

14

Migraci贸n entidades de framework a dominio

15

Soluci贸n del reto: capa de dominio

Capa de Datos

16

Introducci贸n a la capa de datos

17

Implementaci贸n de la capa de datos: repositorio

18

Implementaci贸n de la capa de datos: fuente de datos

19

Soluci贸n del reto: capa de datos

Extras: Migraci贸n de Capa de Casos de Uso

20

Migraci贸n de la capa de casos de uso

Capa de Framework

21

Introducci贸n a la capa de framework

22

Implementaci贸n de Image Manager (Glide)

23

Implementaci贸n de Database Manager (Room)

24

Implementaci贸n de Request Manager (Retrofit)

Inyecci贸n de Dependencias

25

Introducci贸n a la inyecci贸n de dependencias

26

Implementaci贸n de Dagger (M贸dulos)

27

Implementaci贸n de Dagger (Componente)

28

Soluci贸n del reto: inyecci贸n de dependencias

Pruebas unitarias a nivel general

29

Implementaci贸n de pruebas unitarias (conceptos generales)

30

Pruebas unitarias en la capa de presentaci贸n

31

Pruebas unitarias en las capas de casos de uso y datos

Conclusiones

32

C贸mo seguir mejorando la arquitectura

Uso de RxJava y RxAndroid en el proyecto

6/32
Recursos

Aportes 2

Preguntas 2

Ordenar por:

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

Conceptos vistos en clase:
RxJava:

Es una biblioteca que facilita la programaci贸n as铆ncrona y basada en eventos mediante el uso de Observables.

RxAndroid:

Es una extensi贸n de RxJava que aporta un Scheduler para escuchar el hilo principal.

Tipos de objetos:

  • Observer
public interface Observer<T> {
void onNext(T t);
void onCompleted();
void onError(Throwable e);
}
  • Observable

public class Observable<T> {
...
observeOn(AndroidSchedulers.mainThread())
subscribeOn(Schedulers.io())
subscribe(...)
...
}

Tipos de Observables:

鈼 Observable
Emite una secuencia de elementos.
鈼 Flowable
Emite una secuencia de elementos
(considera backpressure).
鈼 Single
Emite exactamente un elemento.
鈼 Maybe
Emite un elemento o ninguno.

Operadores:

map
Transforma elementos usando una funci贸n.

flatMap
Transforma elementos en observable y los unifica.

Dependencias del proyecto:

build.gradle

ext {

...
rxAndroidLib =
"io.reactivex.rxjava2:rxandroid:2.x.x"
rxJavaLib =
"io.reactivex.rxjava2:rxjava:2.x.x"

...
}

Hola, por qu茅 tomaron la decisi贸n de usar Rx, en lugar de usar Channels o Flow ?.