Ich werde mich vorstellen, Malyugin Platon Android Lead bei Dejavoo Systems. Diese Geschichte handelt von unserem "Schmerz", mit dem wir seit einem Jahr kämpfen, und der Entwicklung unserer Architektur. Das Hauptprofil sind Kassenterminals für Einzelhändler und Restaurants, daher hängt vieles von den Besonderheiten der Branche ab.
In jedem Fall erschwert das Ändern der Architektur für eine Anwendung nicht nur die Architektur, sondern erhöht auch den Dokumentationsaufwand und erfordert Unterstützung. Es lohnt sich daher zu überlegen, ob dies jetzt erforderlich ist. Haben Sie genug Erfahrung und die Anzahl der Blockierungsaufgaben?
Warum jetzt? Sie können weiterhin leiden und diesen Bildschirm so wenig wie möglich berühren, da er funktioniert. Warum sollten Sie das, was jetzt funktioniert, unterbrechen? Alles ist einfach, es hat sich eine Vielzahl von Blockierungsaufgaben angesammelt, für die es notwendig ist, die aktuelle Auftragsstruktur für eine komplexere, aber flexiblere neu zu gestalten. Auf Änderungen kann man nicht verzichten.
Beschreibung des Problems
Für die Bestellung verwenden wir eine Aktivität, die sowohl Tablet- als auch Telefonversionen unterstützt. Es ist einfacher für uns, mit Dialogen zu arbeiten (unsere Dialoge sind Aktivitäten), und es gibt viele davon auf diesem Bildschirm, und wir möchten sie nicht duplizieren.
So sieht die Tablet-Version aus:

Wir sammeln die Version für Telefone aus denselben Elementen, jedoch mit einem anderen Navigator.

Ich werde beschreiben, woraus der Bildschirm besteht:
- Gegenstände - Fragment
- Abteilungen - Fragment
- Werbebuchungen und Betrag - Fragment
- Bestellparameter ist eine separate Ansicht
50, , , OrderPresenter .

, Use case, . . , , , .
, , , , , . , ( Use case).
:
- ,
- ,
- , ,
- ,
- , , ""
- ,
" " — , 2- . :
- "" ( )
- ,
- ,
, , , , .
, , . :
- ( 2 ) ,
- UI
- Rx

, "" , , ( ), . .
Nun, wenn der Benutzer sehr schnell auf den Bildschirm "hämmert". dann können wir alle Operationen verarbeiten, wenn auch mit einer leichten Verzögerung (obwohl dies für das Auge weniger auffällig ist als das "Einfrieren" des Bildschirms).
Kurzes UML-Diagramm des Repositorys:

Ergebnis
Wir haben vielleicht ein Fahrrad erfunden, aber die Architektur vereinfacht meiner Meinung nach die Arbeit und ermöglicht es Ihnen, komplexere Fälle zu unterstützen. Wir arbeiten weiter daran.