Skip to content

Simple MVP implementation in one module, Also we save the information using Shared Preferences and SQLite, the way to access to the database was using DAO pattern.

Notifications You must be signed in to change notification settings

jesustrejo10/mvp-retrofit-example

Repository files navigation

Documento general para describir la arquitectura de la aplicación movil.

Capa de Vista: Responsabilidad Principal, Mostrar la informacion en la pantalla, recibir los Listener (acciones que se ejecutan al tocar la pantalla). En esta capa se encuentran Las Activities y Fragments Clases:
 Principal Activity: Actividad principal de la aplicación, su responsabilidad es manejar el cambio entre fragmentos y manejar los eventos del menu

	MoviesListFragment: Fragmento encargado de mostrar la lista de pelicula, este fragmento es re-utilizado para mostrar todos los tipos de peliculas.

	DetailMovieFragment: Fragmento encargado de mostrar el detalle de una pelicula.

	MoviesAdapter: Adapter encargado de manejar las peliculas dentro de la lista de peliculas, setea los valores en el detalle de cada pelicula y maneja el evento del click en cualquiera de las peliculas para verla a detalle.

Interfaces:
	IdetailMovieFragment: Interface que se comporta como un contrato, entre la vista DetailMovieFragment y su respectivo presentador. Muestra cuales son los metodos que se pueden invocar desde el presentador.

	ImoviesFragment: Interface que se comporta como un contrato, entre la vista MoviesListFragment y su respectivo presentador. Indica cuales son los metodos disponibles por la vista a ser usados por el presentador.

Capa de Presentacion: Capa Logica. Conectada con la Vista. Responsabilidad principal, Entregar la informacion necesaria para dar sentido a las vistas. Ademas es el encargado de conectarse con la capa REST (servicios web) y a la capa del DAO (Data Access Object). La informacion recibida es entregada a la capa de presentacion.

Clases
	DetailMoviePresentator: Presentador encargado de realizar las operaciones necesarias por la vista DetailMovieFragment. Su responsabilidad principal es, conectarse con la capa REST o Modelo dependiendo sea el caso, solicitar un objeto de tipo Movie y entregarle a la vista la informacion necesaria para mostrar el detalle de la pelicula en la vista.

	MoviesListPresentator: Presentador encargado de realizar las operaciones necesarias por la vista MoviesListFragment. Su responsabilidad principal es, conectarse con la capa REST o Modelo dependiendo sea el caso. Solicitar un objeto de tipo List<MoviesResponse>, dicho objeto es parseado para pasarle al Adapter una List<Movie>, la cual sera mostrado en la vista.

	Presentator: Presentador base, su responsabilidad principal es almacenar el API_Key del servicio web, todos los presentadores heredan de Presentator.

	Transporter: Implementacion breve de un Bus utilizando la librería Otto, no fue implementado en su totalidad ya que esta funcionalidad es cubierta con los contratos.

Interfaces

	IdetailMoviePresentator: Interface que funciona como contrato de la clase DetailMoviePresentator, indica cuales son los metodos publicos que pueden ser utilizados por las otras capas de la aplicación.

	IMoviesListPresentator: Interface que funciona como contrato de la clase MoviesListPresentator, indica cuales son los metodos publicos que pueden ser utilizados por las otras capas de la aplicación.

Capa Rest: Responsabilidad principal, manejar la conexión entre la aplicación y los servicios web externos a la misma.

Clases
	ApiClient: Clase encargada de realizar la instancia del cliente Retrofit, a partir de esta clase se realizaran las llamas del api. Tambien almacena la URL BASE del servicio web.

Interfaces
	MyApiEndPointInterface: Interface que sirve como contrato del cliente retrofit, se espeficican cuales seran los puntos que consumira el api, su ruta y sus parametros.

Capa de Modelo: En esta capa se encuentra el Modelo de dominio es decir aquellas clases necesarias en nuestro modelo de negocios y el DAO. Encargado de realizar operaciones contra la base de datos del tlf. Modelo de Dominio

	Movie. Clase encargada de almacenar la informacion a detalle de una pelicula.
	
	MoviesReponse. Clase encargada de almacenar la respuesta general del servicio web, a partir de este modelo se obtienen las peliculas.

DAO (data access object)

	DAO, Clase encargada de realizar toda la configuracion necesaria para instanciar, conectar y alterar la base de datos del telefono.

	DAOMovie, clase encargada de realizar todas las operaciones que tienen que ver con base de datos de la clase movie, se encarga de almacenar, alterar y obtener las peliculas a la base de datos.
	
	IDAOMovie, Interface encargada de funcionar como contrato entre la capa del modelo o Acceso a datos y el presentador de la aplicación.

Se implemento el Patron MVP. Permitiendo separar las responsabilidades dentro de la aplicación en las capas previamente mencionadas.

About

Simple MVP implementation in one module, Also we save the information using Shared Preferences and SQLite, the way to access to the database was using DAO pattern.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages