/GreatMovies

Mvvm retrofit2, dagger2,RxAndroid

Primary LanguageJava

GreatMovies

Simple overview of use/purpose.

Description

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
-Requerimientos no Completados
  • 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

Dependencies

  • 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'

Installing

  • Archivo de configuracion de api_key y url util.Constants
  • Any modifications needed to be made to files/folders

Descargar Apk de prueba

Joaquin Martinez Marulanda

Version History

  • 0.1
    • Initial Release

License

Este proyecto fue realizado para prueba practica de programacion en patron de diseño MVVM, RxJava, RXAndroid,Inyeccion de dependencia con Dagger2

Acknowledgments