La historia del "dolor" y cómo lo solucionamos

Me presentaré, Malyugin Platon Android Lead en Dejavoo Systems. Esta historia trata sobre nuestro "dolor" con el que llevamos un año luchando y la evolución de nuestra arquitectura. El perfil principal son las terminales de efectivo para minoristas y restaurantes, por lo que mucho está ligado a las características específicas de la industria.



En cualquier caso, cambiar la arquitectura de una aplicación no solo lo complica, sino que aumenta la cantidad de documentación y requiere soporte. Por lo tanto, ¿vale la pena considerar si es necesario hacer esto ahora? ¿Tiene suficiente experiencia y la cantidad de tareas de bloqueo?



¿Porqué ahora? Puedes seguir sufriendo y tocar esta pantalla lo menos posible, ya que funciona, ¿por qué romper lo que funciona ahora? Todo es simple, se han acumulado una gran cantidad de tareas de bloqueo, para lo cual es necesario rehacer la estructura de pedidos actual por una más compleja pero flexible. No puede prescindir de modificaciones.



Descripción del problema



Usamos una Actividad para realizar pedidos, que admite versiones para tabletas y teléfonos. Es más fácil para nosotros trabajar con diálogos (nuestros diálogos son Actividad), y hay muchos de ellos en esta pantalla y no querríamos duplicarlos.



Así es como se ve la versión para tableta:



Versión para tableta



Recopilamos la versión para teléfonos de los mismos elementos, pero con un navegador diferente.



Versión del teléfono



Describiré en qué consiste la pantalla:



  • Objetos - fragmento
  • Departamentos - fragmento
  • Elementos de línea y cantidad: fragmento
  • Los parámetros de pedido son una vista separada


50, , , OrderPresenter .





Arquitectura actual



, Use case, . . , , , .



, , , , , . , ( Use case).



:



  • ,
  • ,
  • , ,
  • ,
  • , , ""
  • ,




" " — , 2- . :



  • "" ( )
  • ,
  • ,


, , , , .



, , . :







  • ( 2 ) ,
  • UI
  • Rx




Nueva arquitectura



, "" , , ( ), . .



Ahora, si el usuario "martilla" en la pantalla muy rápidamente. entonces podremos procesar todas las operaciones, aunque con un ligero retraso (aunque para el ojo esto será menos notorio que el "congelamiento" de la pantalla)



Breve diagrama UML del repositorio:



Breve diagrama UML del repositorio



Salir



Puede que hayamos inventado una bicicleta, pero la arquitectura, en mi opinión, simplifica el trabajo y permite soportar casos más complejos. Seguimos trabajando en ello.




All Articles