Saya akan memperkenalkan diri saya, Pimpinan Android Malyugin Platon di Dejavoo Systems. Kisah ini tentang "rasa sakit" yang telah kita perjuangkan selama setahun dan evolusi arsitektur kita. Profil utamanya adalah terminal uang tunai untuk pengecer dan restoran, jadi banyak yang terkait dengan spesifikasi industri.
Dalam kasus apa pun, mengubah arsitektur aplikasi tidak hanya memperumitnya, tetapi juga meningkatkan jumlah dokumentasi dan membutuhkan dukungan. Oleh karena itu, perlu dipertimbangkan apakah perlu melakukan ini sekarang? Apakah Anda memiliki cukup pengalaman dan jumlah tugas pemblokiran?
Kenapa sekarang? Anda dapat terus menderita dan menyentuh layar ini sesedikit mungkin, karena itu berfungsi, mengapa merusak apa yang berfungsi sekarang? Semuanya sederhana, sejumlah besar tugas pemblokiran telah terakumulasi, untuk itu perlu membuat ulang struktur pesanan saat ini untuk yang lebih kompleks tetapi fleksibel. Anda tidak dapat melakukannya tanpa perubahan.
Deskripsi masalah
Kami menggunakan satu Aktivitas untuk memesan, yang mendukung versi tablet dan ponsel. Lebih mudah bagi kami untuk bekerja dengan dialog (dialog kami adalah Aktivitas), dan ada banyak dialog di layar ini dan kami tidak ingin menduplikasinya.
Seperti inilah tampilan versi tablet:

Kami mengumpulkan versi untuk ponsel dari elemen yang sama, tetapi dengan navigator yang berbeda.

Saya akan menjelaskan terdiri dari apa layar itu:
- Item - fragmen
- Departemen - fragmen
- Item Baris dan Jumlah - Fragmen
- Parameter Pesanan adalah tampilan terpisah
50, , , OrderPresenter .

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

, "" , , ( ), . .
Sekarang, jika pengguna akan "memalu" di layar dengan sangat cepat. maka kami akan dapat memproses semua operasi, meskipun dengan sedikit penundaan (meskipun untuk mata ini akan kurang terlihat daripada "pembekuan" layar)
Diagram UML singkat dari repositori:

Hasil
Kami mungkin telah menemukan sepeda, tetapi arsitekturnya, menurut saya, menyederhanakan pekerjaan dan memungkinkan Anda mendukung kasus yang lebih kompleks. Kami terus mengerjakannya.