Giter VIP home page Giter VIP logo

travelapp's Introduction

Android Clean Architecture - Share Your Experience

Esta aplicaci贸n es un ejemplo donde podemos registrarnos con una cuenta propia, y ya logueado, poder compartir nuestras experiencias de viajes, por nuestro "Per煤".

Bienvenido 馃憢, espero que este repositorio te sea de mucha ayuda para comprender acerca de la Arquitectura Limpia y el uso de Principios S贸lidos.

隆Capturas de Pantalla!

隆Razones por las que deber铆as de darte un tiempo en revisarlo!

  1. Modularizaci贸n de Aplicaciones
  2. Uso de componentes de Jetpack Android
  3. Uso de Firebase 馃敟
  4. Uso de una base de datos interna
  5. Uso de coroutines para gestionar los procesos
  6. Uso de MVVM como patr贸n de arquitectura de presentaci贸n
  7. Uso de Work Manager
  8. Uso de un inyector de dependencias
  9. Y no est谩 m谩s decir que esta hecho el 100% en Kotlin <3

Dependencies

Arquitectura

La arquitectura del proyecto sigue los principios de la Arquitectura Limpia y as铆 como los Principios S贸lidos. Las capas est谩n modularizadas de la siguiente manera:

App - Presentaci贸n - Framework

En esta capa estamos uniendo 2 capas que bien podr铆an ir separadas, la de Datos (Retrofit, Firebase, Room) y la capa de Presentaci贸n.

La sub capa interna de Presentaci贸n, hace uso del Framework de Android, este tiene la responsabilidad de gestionar los eventos y mostrar la UI, as铆 mismo hacemos uso del patr贸n de presentaci贸n MVVM, dicho patr贸n est谩 incluido como una biblioteca de Architecture Components, que permite gestionar el ciclo de vida de las Actividades y recuperando los datos al comunicarse con los UseCases (Interactors)

La sub capa de Framework o Data, tiene la responsabilidad de recuperar los datos de fuentes externas o internas como Firebase, un Servicio de Backend, Room, u otros.

Interactors

La capa de Interactors tiene la responsabilidad de contener los casos de uso de la Aplicaci贸n, estos se comunicar谩n con los distintos repositorios para obtener los datos.

Data

La capa de Datos es nuestro punto de comunicaci贸n entre las capas de Interactors y la capa de Datos externos (Firebase, Room, etc). Dentro se contienen los repositorios que implementan las distintas fuentes de datos ya mencionados anteriormente, obteniendo de esta manera los datos de origen externo u interno.

Domain

La capa de Domain tiene la responsabilidad de modelar la aplicaci贸n, dentro est谩n los modelos que regir谩n a los casos de uso y la UI.

Conclusi贸n

El uso de una Arquitectura Limpia da grandes ventajas, como hacer del proyecto escalable y mantenible en el tiempo.

Pero tener en cuenta que antes de comenzar un proyecto debemos de evaluar la mejor opci贸n, ya que a una mayor arquitectura, mayor la inversi贸n del tiempo en el desarrollo.

Podr铆as optar por usar MVVM o MVP para modelar la capa de presentaci贸n y en un futuro, implementar Clean Architecture.

Gracias

Un especial agradecimiento a los autores de estos repositorios, ya que me apoyaron durante mi aprendizaje.

Autor

travelapp's People

Contributors

deved20m avatar

Watchers

James Cloos 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.