arquitectura de ANDROID .pdf
Document Details
Tags
Full Transcript
Programación Android -Arquitectura Docente: Ing. Rocío Lucio Introducción a Clean Arquitectura Definición: Una arquitectura de software que busca separar el código en capas, cada una con responsabilidades bien definidas, para mejorar la mantenibilidad y escalabilida...
Programación Android -Arquitectura Docente: Ing. Rocío Lucio Introducción a Clean Arquitectura Definición: Una arquitectura de software que busca separar el código en capas, cada una con responsabilidades bien definidas, para mejorar la mantenibilidad y escalabilidad. Tienes que saber Independencia de la UI: La lógica de negocio debe estar desacoplada de la interfaz de usuario. Independencia de la infraestructura: El código de la aplicación no debe depender de detalles concretos como bases de datos o servicios externos. Capas de Clean Arquitectura Capa de Entidades: Contiene las entidades del dominio, que son objetos de negocio y reglas de dominio. Capa de Casos de Uso: Contiene la lógica de negocio específica de la aplicación, ejecuta operaciones y coordina el flujo de datos entre entidades. Capa de Interfaz: Interactúa con la capa de UI y expone casos de uso para ser consumidos. Capa de Datos: Accede a la fuente de datos (base de datos, red, etc.) y proporciona datos a la capa de casos de uso. Capa de Entidades Propósito: Contiene las entidades del dominio, que representan los objetos principales de negocio y las reglas del dominio. Responsabilidades: Definir las entidades que modelan el negocio y las reglas de la aplicación. No deben tener dependencias de otras capas. Esta capa es completamente independiente. Capa de Casos de Uso Propósito: Contiene la lógica de negocio específica para realizar tareas que el usuario requiere. Coordina las operaciones de las entidades. Responsabilidades: Ejecutar casos de uso específicos de la aplicación, como "Registrar Usuario", "Realizar Pedido", etc. Orquestar la interacción entre entidades y repositorios. Debe estar desacoplada de la capa de interfaz y la capa de datos, pero puede depender de la capa de entidades. Capa de Interfaz Capa de Datos Propósito: Maneja la comunicación entre Propósito: Accede a la fuente de datos (bases la interfaz de usuario (UI) y la lógica de de datos, servicios web, etc.) y proporciona los negocio. Expuesta a través de datos necesarios a la capa de casos de uso. presentadores, controladores o view Responsabilidades: Implementar la lógica para almacenar y models. recuperar datos. Responsabilidades: Implementar repositorios que Proporcionar la interfaz necesaria para que la abstraigan las fuentes de datos capa de casos de uso pueda ser invocada por concretas. la UI. Puede depender de la capa de Transformar los datos y coordinar la entidades, pero no debería depender visualización de información. de otras capas fuera de esta. No debe tener lógica de negocio, sino solo lógica de presentación. Comunicación entre capas Capa de Interfaz y Capa de Datos: Capa de Casos de Uso y Capa de Capa de Datos y Capa de Capa de Entidades y Capa de Casos La capa de casos de uso invoca Interfaz: La capa de interfaz invoca Entidades: La capa de datos de Uso: La capa de casos de uso métodos en la capa de datos para casos de uso para realizar trabaja con las entidades para leer utiliza las entidades para aplicar la acceder a información. La capa de acciones. Los casos de uso no y escribir información. Debe lógica de negocio. Las entidades datos provee información a la capa deben conocer la capa de interfaz, conocer las entidades, pero las no deben conocer a la capa de de casos de uso sin preocuparse solo reciben comandos y entidades no deben conocer la casos de uso. de cómo se presenta esa devuelven resultados capa de datos. información. Beneficios de Clean Arquitectura Mantenibilidad: Al estar cada capa desacoplada, los cambios en una capa tienen un impacto mínimo en las demás. Escalabilidad: Permite añadir nuevas funcionalidades sin afectar la estructura existente. Testabilidad: Facilita la escritura de pruebas unitarias, ya que cada capa puede ser probada de forma aislada. Reusabilidad: Las entidades y casos de uso pueden ser reutilizados en diferentes partes de la aplicación o en diferentes aplicaciones https://www.youtube.com/watch?v=hhhSMXi0R3E&list=PL8ie0 4dqq7_MvhtWlcIFS9L3_4EWatd-V