Generalidades

Administre la interfaz de usuario con Sosorevgm | clases selladas de Kotlin Mayo de 2021

En este artículo voy a crear otro muy sencillo.ÖAplicación de identificación para mostrarle una manera fácil de administrar la interfaz de usuario con clases selladas de Kotlin. Intenté seguir los principios básicos de Clear Architecture y SOLID, pero algunas cosas como la falta de inyección de dependencia, código repetitivo y otras limitaciones menores que verá aquí en caso de simplificar la aplicación. El objetivo principal de este breve artículo es mostrar cómo podemos usar las clases selladas de Kotlin y administrar nuestra interfaz de usuario de una manera simple y hermosa.

Primero, crea el proyecto y abre la aplicación. build.gradle Archivar y agregar.

Yo uso corrutinas y MVVM, pero puedes elegir RxJava, MVP, etc. Ahora necesitamos crear algunas vistas en el xml de la actividad principal.

Este archivo XML fue creado para mostrar la idea principal y está lejos de ser perfecto. Entonces tenemos tres puntos de vista principales: Success_layout, Indicador de progreso y error_layout. Tu visibilidad es camino Por defecto.

El siguiente paso es crear la clase MainScreenState.

Entonces, todas las subclases de una clase sellada se conocen en tiempo de compilación Cuándo La expresión nos ayuda a escribir código claro y comprensible.

Ahora necesitamos crear clases de datos para probar.

Toda la lógica empresarial está en un modelo de vista. Esta es una clase consciente del ciclo de vida que nos permite almacenar y administrar datos que sobrevivirán a los cambios de configuración, como la rotación de la pantalla.

En la clase MainViewModel tenemos un repositorio. En aplicaciones grandes, a menudo necesitamos una capa intermedia como presentador o caso de uso para separar la lógica y la responsabilidad, pero un repositorio es suficiente para nosotros. Una buena solución es inyectar el repositorio en un modelo de vista con Dolch, Koin u otros marcos de inyección de dependencia.

La siguiente propiedad es una cadena defaultError. No lo hagas en la aplicación real. Una buena idea es incluir una clase de administrador de recursos personalizada que tenga contexto y pueda obtener recursos correctamente en un modelo de vista.

Nuestros propietarios de datos son datos en vivo modificables. Podemos observarlo fácilmente por actividad o fragmentos y mostrar al usuario los datos reales.

Echemos un vistazo a lo principal. Llamar datos Método. Primero, verifico el valor de screenState. Si ya es éxito En nuestro caso, no tenemos que seguir cargando. Realmente es un ejemplo muy simple. De lo contrario, cambiaré el estado de la pantalla cargando el estado para ver el usuario pendiente e intentando obtener datos del repositorio. Casi siempre tenemos que realizar operaciones de bloqueo al solicitar datos del servidor o base de datos. Aquí estoy usando corrutinas y la extensión viewModelScope. En este bloque de código puedo llamar a las funciones de suspensión, la idea principal de las corrutinas. Demora nos ayuda a probar la interfaz de usuario, pero no en una práctica real. Todas las cargas sintéticas y las expectativas son una mala elección. Como desarrolladores, necesitamos mostrar información y datos a nuestros usuarios lo más rápido posible. La mejor solución es guardar los datos de la caché, verlos y descargarlos del servidor al mismo tiempo. El siguiente paso es obvio: cuando obtengamos el resultado, lo mostraremos éxitosi no, lo mostraremos Error.

Eche un vistazo al repositorio.

Deberíamos trabajar con interfaces y ocultar su lógica en implementaciones para crear aplicaciones bien mantenidas. MainApi es una clase de objeto anónimo que realiza la interfaz con un solo método. Puede ser una actualización, una base de datos u otras fuentes.

La Obtener datos El método de MainRepositoryImpl devuelve al usuario de forma aleatoria desde la API o lanza una excepción.

Normalmente uso la función de vinculación de vistas para interactuar con las vistas, pero aquí hay una antigua findViewById Solución. Primero, le preguntamos a ViewModelProvider sobre nuestro modelo de vista principal. Si existe obtendremos nuestro modelo con todos los datos almacenados allí, si no, obtendremos uno nuevo. Después de eso, comienzo a observar datos en vivo de la salud de la pantalla. Dado que el tipo de datos de estado de la pantalla en vivo es nuestra clase sellada, podemos usarlo Cuándo Expresión sin otras ramas. Estamos absolutamente seguros de que solo podemos obtener una de estas tres subclases. Aquí oculto o muestro vistas principales como success_layout, progress_bar y error_layout.

LEER  Rumores de Android 13: fecha de lanzamiento, colores personalizables, privacidad de fotos y más por msyukronfadhillah | marzo de 2022

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