- 1

Patrones de Diseño en Android: Soluciones y Aplicación Práctica
02:01 - 2

Fundamentos de Arquitectura de Software y su Impacto en Proyectos
02:02 - 3

Arquitecturas en Android: MVC y MVVM
02:38 - 4

Desarrollo de una Billetera Virtual con Git y Android Studio
03:20 - 5

Arquitectura MVP: Modelo, Vista y Presentador en Desarrollo de Software
04:01 - 6

Arquitectura MVP: Implementación en Proyectos Android
11:43 - 7

Implementación de Arquitectura MVP en Android
11:49 - 8

Implementación de Loaders en Arquitectura MVP con Android
04:49 - 9

Arquitectura MVVM en Android: Comunicación entre Capas
01:33
Arquitectura MVP: Implementación en Proyectos Android
Clase 6 de 32 • Curso de Patrones de Diseño en Android
Contenido del curso
- 11

Implementación del Patrón Singleton en Kotlin para Android
07:48 - 12
Patrón Singleton en Kotlin para Gestión de Estados en Android
01:03 - 13

Patrón Builder en Android: Creación de Objetos Complejos
02:06 - 14

Implementación del Patrón Builder en Clases de Usuario
07:50 - 15
Funciones de Alcance en Kotlin: Uso de Apply
01:29 - 16

Patrón Factory: Creación y Uso en Desarrollo de Software
10:28
- 20

Patrones de Diseño: Implementación del Patrón Observer en Proyectos
04:25 - 21

Patrón Observer en Android: Implementación y Uso Práctico
08:28 - 22

Patrón Comando: Implementación y Gestión de Comandos en Kotlin
06:17 - 23

Comandos para Guardar y Leer Archivos en Android
09:27 - 24

Ejecución de Comandos y Debugging en Android Studio
03:59
- 25

Componentes de Android Jetpack para Mejora de Aplicaciones
01:25 - 26

Implementación de LiveData en Android para Ciclo de Vida
07:09 - 27

Implementación de Room en Android para Gestión de Base de Datos
03:19 - 28

Creación de Entidades y DAO en Base de Datos con Room en Kotlin
11:44 - 29

Conexión y manejo de transferencias en Room Database
07:33 - 30

Implementación de ViewModel en Arquitectura MVVM en Android
07:17
¿Cómo estructurar un proyecto con arquitectura MVP en Android?
La implementación de una arquitectura como Modelo-Vista-Presentador (MVP) puede parecer abrumadora al principio, pero con una guía clara, puedes lograr un diseño organizado y eficiente en tu aplicación Android. A continuación, exploramos la estructura básica para un proyecto que sigue esta arquitectura.
¿Qué componentes forman la base de la arquitectura MVP?
En una arquitectura MVP, desglosamos la funcionalidad de la aplicación en tres capas principales:
- Modelo: Se encarga de la lógica de acceso a los datos, ya sea desde una base de datos local o una fuente en red.
- Vista: Muestra la información al usuario y lo notifica de sus interacciones.
- Presentador: Actúa como intermediario entre la Vista y el Modelo, manejando la lógica de la aplicación.
¿Cómo organizamos el proyecto en paquetes?
Para mantener nuestro proyecto organizado, utilizamos el siguiente esquema de paquetes:
-
vista (view en inglés): Contiene los fragmentos y actividades responsables de presentar la interfaz gráfica al usuario.
public class HomeFragment extends Fragment { private RecyclerView.Adapter favoriteTransferAdapter; private ProgressBar circularProgressBar; // Configuración de la vista private void setupView() { favoriteTransferAdapter = new FavoriteTransferAdapter(); circularProgressBar = findViewById(R.id.progress_circular); circularProgressBar.setVisibility(View.GONE); } } -
presentador (presenter en inglés): Alojamos aquí la lógica que maneja las interacciones entre la Vista y el Modelo.
public class HomePresenter { private final HomeInteractor interactor; public HomePresenter() { interactor = new HomeInteractor(); } public List<FavoriteTransfer> loadFavoriteTransfers() { return interactor.getFavoriteTransfers(); } } -
interactor: En este paquete colocamos la gestión de comunicaciones con los datos.
public class HomeInteractor { public List<FavoriteTransfer> getFavoriteTransfers() { // Implementación para obtener datos return new ArrayList<>(); } }
¿Cómo asegurar una comunicación eficaz entre las capas?
Para garantizar una comunicación efectiva, definimos contratos (interfaces) para cada capa. Estos contratos especifican las funciones disponibles y se alojan en un paquete compartido.
-
Contrato de Vista y Presentador
public interface HomeContract { interface View { void showProgress(); void hideProgress(); void displayFavoriteTransfers(List<FavoriteTransfer> transfers); } interface Presenter { void fetchFavoriteTransfers(); } }
¿Cómo implementar estos contratos en las clases correspondientes?
Implementamos los contratos en nuestras clases de la Vista y del Presentador. De este modo, aseguramos que cada clase cumple con las expectativas definidas para su función.
-
Implementación en la Vista
public class HomeFragment extends Fragment implements HomeContract.View { @Override public void showProgress() { circularProgressBar.setVisibility(View.VISIBLE); } @Override public void hideProgress() { circularProgressBar.setVisibility(View.GONE); } @Override public void displayFavoriteTransfers(List<FavoriteTransfer> transfers) { favoriteTransferAdapter.setTransfers(transfers); } } -
Implementación en el Presentador
public class HomePresenter implements HomeContract.Presenter { private final HomeContract.View view; public HomePresenter(HomeContract.View view) { this.view = view; } @Override public void fetchFavoriteTransfers() { view.showProgress(); List<FavoriteTransfer> transfers = interactor.getFavoriteTransfers(); view.hideProgress(); view.displayFavoriteTransfers(transfers); } }
Con esta estructura básica, tu proyecto Android con arquitectura MVP estará bien organizado, asegurando una separación clara de responsabilidades y facilidad para el mantenimiento del código. ¡Continúa perfeccionando tus habilidades de arquitectura y verás cómo se fortalecen tus desarrollos móviles!