App Productos 5: Sincronización Bidireccional

En la parte 5 veremos el final del proyecto App Productos que comenzamos hace tiempo. Esta consta de: añadir y editar clientes, eliminar clientes, ver detalle de facturas, editar facturas, la sincronización de los dispositivos Android hacia el servidor y viceversa.

Si eres nuevo, puedes ver de que tratan los 4 niveles anteriores aquí:

Primera Sincronización

Al inicio de la app introduje un fragmento de carga que inicia la priemra sincronización de productos, clientes, facturas y sus items.

Pantalla de primera sincronización App Productos
Pantalla de carga inicial

Una vez se lleva a cabo pasamos directamente a las facturas.

Añadir/Editar Clientes

Este caso de uso consiste en la dilegencia de un formulario con los datos propuestos en el escenario de App Productos para el ciente. Al guardarse lo veremos en la lista.

Añadir clientes en App Productos
Pantalla para añadir cliente

Incluso procesaremos los errores de cada campo de texto:

Errores al crear cliente en app productos
Errores en la pantalla de creación de clientes

La edición parte del tap en un item de la lista de clientes. Reciclaremos el formulario para cargar la información y así habilitar cambios:

Pantalla para editar clientes en App Productos
Pantalla para editar clientes

Si por alguna razón se presiona los botones Up o Back y hay cambios, haremos que el usuario confirme su voluntad de descarte del cliente.

Descartar cliente editado en App Productos
Diálogo de confirmación al descartar cliente

Eliminar Clientes

En la misma pantalla de edición, tendremos un action button para eliminación. Detectaremos el evento en la vista para desencadenar y pediremos la confirmación de eliminación.

Eliminar clientes en App Productos
Eliminar cliente

Si se confirma, entonces procederemos a ejecutar el interactor hacia el repositorio de clientes para concretar el borrado de la base de datos.

Detalle De Factura

En la parte 4 ya teníamos lista de facturas y creación. Esta vez procesaremos el tap en los items de lista para ver los detalles:

Detalle de factura en App Productos
Pantalla para detalles de facturas

Presentaremos en forma de documento las operaciones linea a linea de los productos comprados y proyectaremos sus totales.

Editar Factura

Así mismo, podremos editar desde el detalle la factura visualizada. Cargaremos los datos y permitiremos que el usuario haga los cambios correspondientes.

Editar factura en App Productos
Pantalla para editar facturas

Al igual que en la edición de clientes, presentaremos un diálogo de confirmación en el descarte de datos.

Sincronización Bidireccional

Esta vez incluiremos el framework de Sync Adapters de Android para ejecutar un servicio que sostenga nuestras sincronizaciones.

Extenderemos nuestra servicio REST PHP para que procese sincronizaciones locales y remotas a través del nuevo recurso /sync.

Estas dos peticiones nuevas manejadas por el controlador de sincronizaciones dejarán que los dispositivos Android actualicen al servidor, y que el servidor actualice a los disposivos Android; siempre conservando el registro más reciente.

Debido a que tenemos 4 tablas (productos, clientes, facturas e items de factura), usaremos un empaquetado JSON en batch que permita sincronizar los cambios en una sola petición web.

Ejemplo: El siguiente es un video que muestra la inserción, edición y eliminación en la app y paralelamente vemos los cambios en la base de datos del servidor en phpMyAdmin.

Ejemplo de sincronización para clientes

Descargar Tutorial, Proyecto Android Studio Y API PHP

El precio del tutorial completo en sus 5 partes es de $100 USD ($20 USD si ya tienes las 4 primeras partes).

Descargar Gratis

Espero te sea de gran ayuda. Estaré atento a tus impresiones.

¡Saludos!
James

Únete Al Discord De Develou

Si tienes problemas con el código de este tutorial, preguntas, recomendaciones o solo deseas discutir sobre desarrollo Android conmigo y otros desarrolladores, únete a la comunidad de Discord de Develou y siéntete libre de participar como gustes. ¡Te espero!