Generalidades

MVP de Android | MVP | Presentador de vista de modelo | Patrón de arquitectura de Android

Rajendra Darby

En el desarrollo de aplicaciones de Android, puede seguir muchos patrones para diseñar la arquitectura de la aplicación, como MVVM, MVC y MVP.

El patrón MVP supera los desafíos de MVC y proporciona una manera fácil de crear código de proyecto. La razón por la que MVP es ampliamente aceptado es que proporciona modularidad, capacidad de prueba y una base de código más limpia y fácil de mantener. Consta de las siguientes tres partes:

  • Modelo: La capa utilizada para almacenar datos. Es responsable de manejar la lógica del dominio (reglas comerciales del mundo real) y la comunicación con la base de datos y la capa de red.
  • vista: Capa UI (interfaz de usuario). Proporciona visualización de datos y realiza un seguimiento de las acciones del usuario para notificar a los presentadores.
  • anfitrión: Obtenga datos del modelo y aplique la lógica de la interfaz de usuario para decidir qué mostrar. Gestiona el estado de la vista y realiza acciones en función de las notificaciones de entrada del usuario desde la vista.

Primero debe crear una interfaz para el método que desea utilizar

MainActivityPresenterContract (interfaz)

Esta interfaz tiene los métodos necesarios para manejar la interfaz de usuario y administrar la lógica empresarial.

interface MainActivityPresenterContract interface  View 
//define methods that you need to use in your View
fun validationError(msg:String)
fun LoginSuccess(msg:String)
fun LoginError(msg: String)

interface Presenter //define business logic methods here
fun doLogin(userName:String,password:String)

anfitrión:

Presentador del evento principal

esta La clase contendrá todos los métodos e implementaciones relacionados con la lógica empresarial.

class MainActivityPresenter:MainActivityPresenterContract.Presenter 
var view:MainActivityPresenterContract.View

constructor(view: MainActivityPresenterContract.View)
this.view = view

override fun doLogin(userName:String,password:String)
//define your business logic here and call ui method to handle ui

Actividades / fragmentos

Aquí debe implementar devoluciones de llamada relacionadas con la interfaz de usuario y crear una instancia del presentador.

Aquí puede administrar la devolución de llamada del presentador y mostrar la interfaz de usuario en consecuencia.

class MainActivity : AppCompatActivity(),MainActivityPresenterContract.View 

lateinit var binding:ActivityMainBinding
lateinit var presenter: MainActivityPresenter

override fun onCreate(savedInstanceState: Bundle?)
super.onCreate(savedInstanceState)
binding= ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
presenter= MainActivityPresenter(this) //initialized

binding.btnLogin.setOnClickListener
val userName=binding.editTextTextPersonName.text.toString().trim()
val password=binding.editTextTextPassword.text.toString().trim()
presenter.doLogin(userName,password)//called presenter method

// Handling the callback of views from presenter
override fun validationError(msg:String)
showToast(msg)// show validation error here

override fun LoginSuccess(msg:String)
showToast(msg) //do something on success

override fun LoginError(msg:String)
showToast(msg) //show login error to user

fun showToast(msg:String)
Toast.makeText(this,msg,Toast.LENGTH_LONG).show()

Eso es todo.Codificación feliz

LEER  Emulador de PC Megadrive - Consejos prácticos

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba