Skip to content

Aplicación sin uso comercial. Aplicación desarrollada para workshop sobre testing en una aplicación Android. Además se verán los siguientes conceptos: Clean Architecture. Inyección de dependencias (Dagger 2). Abstracciones

Notifications You must be signed in to change notification settings

tohure/FoodieApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FoodieApp

Aplicación sin uso comercial. Aplicación desarrollada para workshop sobre testing en una aplicación Android. Además se verán los siguientes conceptos:

Clean Architecture o Arquitectura por Capas.

Se ha elegido una arquitectura por capas para diferenciar bien las distintas responsabilidades dentro de una aplicación. Además se ha separado en módulos el código para facilitar a distinguir que partes se testean con herramientas java y cuales necesitan herramientas para Android. Cómo modulos dentro de la aplicación se ha diferenciado:

  • Módulo app o de aplicación. Es el modulo y capa donde se define todo lo relacionado con el sdk de Android. Depende por tanto del sdk.
  • Módulo de presentación. Es el módulo donde se define el presenter dentro de un patrón MVP. No depende de Android por tanto sólo usaremos Java.
  • Módulo de negocio o de dominio. Es el módulo y capa donde se define el modelo de negocio. Es la capa más interna por tanto no depende del sdk de Android. Sólo usaremos Java.
  • Módulo de datos. Es el módulo y capa donde se define la fuente de datos. Es una capa externa a la aplicación. Depende del sdk de Android.

Inyección de Dependencias.

En el proyecto se usará inyección de dependencias. Para facilitar el desarrollo de factorías se usará Dagger 2. Dagger 2 será nuestro contenedor de dependencias.

Abstracciones

El proyecto contiene varios ejemplos sobre abstracciones en librerías externas. Uno de ellos puede ser la abstracción usada para el logger. Nos permite visualizar mensajes por el LogCat en todos los módulos dependan o no de Android.

  • Abstración para el Logger.
  • Concreción para el Logger usando la librería Timber de Jake Wharton para Android.

Testing

Los test unitarios se realizarán por los módulos definidos:

  • Módulo App: Se testeará con Espresso.
  • Módulo de Presentación: Se testeará con jUnit.
  • Módulo de Dominio: Se testeará con jUnit.
  • Módulo de Datos: Se testeará con jUnit y Espresso.

Además, se usarán las siguientes librerías:

  • Test dobles usaremos Mockito.
  • Para la inyección de dependencias en los test DaggerMock.
  • Robolectric Para hacer test unitarios que dependen de Android. No necesita emulador.
  • MockWebServer para emular un servidor que devuelve peticiones json.

About

Aplicación sin uso comercial. Aplicación desarrollada para workshop sobre testing en una aplicación Android. Además se verán los siguientes conceptos: Clean Architecture. Inyección de dependencias (Dagger 2). Abstracciones

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages