Giter VIP home page Giter VIP logo

clone-reddit's Introduction

Clone reddit - App


Arquitectura (MVVM - Clean Arquitecture)

-src
--main
---java
    --application
      -App
    --core
      -BaseViewHolder
      -Constants
      -InternetCheck
      -Resource
      -TimeUtlis
    --di
      -ApplicationModule
    --domain
      --local
        -PostEntity
      --remote
        -Child
        -Data
        -Media
        -Post
        -RedditVideo
        -TopResponse
    --data
      -local
        --dao
          -PostDao
        -ApplicationDatabase
      -Remote
        -Service
    --repository
      --post_repository
        -PostRepository
        -PostRepositoryInterface
    --ui
      --home
        --adapter
          -PostAdapter
        -HomeFragment
        -HomeViewModel
      --post_detail
        -PostDetailFragment
      -MainActivity
--test

Pricipos SOLID

Principio de responsabilidad única:

  • El principio de responsabilidad única nos dice que una clase debe tener una sola responsabilidad, esto debido a que si una clase tenemos más de una responsabilidad se hace difícil de leer, testear y mantener.

Clases y sus responsabilidades:

      -src
      --main
      ---java
          --application
            -App // Instala módulo de dependencias
          --core
            -BaseViewHolder // Clase abstracta para definir la base de los view holder
            -Constants // Contiene constantes de la aplicación
            -InternetCheck // Objeto que contiene función para chequear la conexión a internet por medio  de socket
            -Resource // Clase sellada para tipar los procesos del flow
            -TimeUtlis // Clase encargada de manejar utilidades de Time
          --di
            -ApplicationModule // Módulo de dependencias
          --domain
            --local
              -PostEntity // Modelo para base de datos Room
            --remote
              -Child // Modelo para consumo de servicio
              -Data // Modelo para consumo de servicio
              -Media // Modelo para consumo de servicio
              -Post // Modelo para consumo de servicio, aloja funciones de extensión para convertir
              -RedditVideo // Modelo para consumo de servicio
              -TopResponse // Modelo para consumo de servicio
          --data
            -local
              --dao
                -PostDao // Interfase que maneja la tabla Post
              -ApplicationDatabase // Clase que crea y configura la base de datos Room
            -Remote
              -Service // Maneja las peticiones hacia el servicio
          --repository
            --post_repository
              -PostRepository // Encargado de actualizar y comunicar la información de posts
              -PostRepositoryInterface // Contrato de funciones para Postrepository
          --ui
            --home
              --adapter
                -PostAdapter // Adaptar el contenido para el recicler view de posts
              -HomeFragment // Manejar los datos que le retorna el viewModel
              -HomeViewModel // Manejar los datos que le retorna el repository
            --post_detail
              -PostDetailFragment // Recibir y pintar los datos que se envían por medio de safeArgs
            -MainActivity // Punto de partida de la app, gestiona el navigation
      --test

clone-reddit's People

Contributors

argote-dev avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.