Simple overview of use/purpose.
Greats Movie es un codigo de ejemplo para prueba tecnica empresa, sus funciones no estan completadas
Requerimientos solicitados
Requerimientos completados (Para Peliculas unicamente)
- Peliculas y/o series categorizadas por Popular y Top Rated )
- Detalle de pelicula y/o serie
- Buscador de Pelicula y/o serie por nombre
- Visualizacion de video en Detalle
- transiciones /Animaciones entre un listado y detalle y carga inicial de peliculas (Recycler animation)
- Api https://developers.themoviedb.org/
- Usar Kotlin (Se me permition realizar prueba con Java)
- Bibliotecas usadas (ver Dependencias)
- Subir proyecto a Girhub
- La app debe ser Escalable : arquitectura usada MVVM (Model - View - View Model)
- Injectar Dependencias : Dagger 2
- La app debe funcionar offline
- -Pruebas Unitarias
Desarrollado en java android MVVM, RxAndroid, Dagger 2, RxJava , ButterKnife, api desde https://developers.themoviedb.org proceso de consumo de respuestas JSON
#Consideraciones Basado en patron de diseño MVVM y programacion reactiva se realizo aplicacion online, la implementacion o sincronizacion de archivos de manera offline se implementaria MoviesREpository esta tendria los observadores necesarios para la sincronizacion con persistencia de datos DAO la clase MovieDataBase (Extiende de RoomDatabase) Sincroniza los datos traidos desde la api y estos estarian disponibles para ser injectados en los viewmodels correspondientes interface MovileDao contendria las sentencias SQLite pertinentes para: insercion de datos, consulta y actualizacion
-
Android studio Artic Fox
*def butterversion="10.2.3" implementation "com.jakewharton:butterknife-annotations:$butterversion"
annotationProcessor "com.jakewharton:butterknife-compiler:$butterversion"
implementation "com.jakewharton:butterknife:$butterversion"
//Dagger
def dagger = "2.40"//"2.23.2"
implementation "com.google.dagger:dagger:$dagger"
annotationProcessor "com.google.dagger:dagger-compiler:$dagger"// ViewModel and LiveData
def lifecycle_version = "2.2.0"
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"/// Room implementation "android.arch.persistence.room:runtime:$lifecycle_version"
annotationProcessor "android.arch.persistence.room:compiler:$lifecycle_version"///Retrofit
def retrofit = "2.9.0"
implementation "com.squareup.retrofit2:retrofit:$retrofit"
implementation "com.squareup.retrofit2:converter-gson:$retrofit"
implementation "com.squareup.retrofit2:adapter-rxjava2:$retrofit"//Gson Google
implementation 'com.google.code.gson:gson:2.8.9'//Rxjava
def rxandroid = "2.1.1"
def rxjava = "2.2.9"
implementation "io.reactivex.rxjava2:rxandroid:$rxandroid"
implementation "io.reactivex.rxjava2:rxjava:$rxjava"//picasso
implementation "com.squareup.picasso:picasso:2.71828@aar"//wipelayout
implementation "com.github.omadahealth:swipy:1.2.3@aar"//youtube player
implementation 'com.pierfrancescosoffritti.androidyoutubeplayer:core:10.0.5'
- Archivo de configuracion de api_key y url util.Constants
- Any modifications needed to be made to files/folders
- 0.1
- Initial Release
Este proyecto fue realizado para prueba practica de programacion en patron de diseño MVVM, RxJava, RXAndroid,Inyeccion de dependencia con Dagger2