Vou me apresentar, Malyugin Platon Android, líder da Dejavoo Systems. Esta história é sobre a nossa “dor” com a qual lutamos há um ano e a evolução da nossa arquitetura. O perfil principal são os terminais de caixa para varejistas e restaurantes, portanto, muito está ligado às especificidades do setor.
Em qualquer caso, mudar a arquitetura de um aplicativo não apenas o complica, mas aumenta a quantidade de documentação e requer suporte. Portanto, vale a pena considerar se é necessário fazer isso agora? Você tem experiência suficiente e o número de tarefas de bloqueio?
Porque agora? Você pode continuar sofrendo e tocar o mínimo possível nessa tela, já que funciona, por que quebrar o que está funcionando agora? Tudo é simples, acumulou-se um grande número de tarefas de bloqueio, para as quais é necessário refazer a estrutura de pedidos atual para outra mais complexa, mas flexível. Você não pode fazer sem alterações.
Descrição do problema
Usamos uma atividade para pedidos, que suporta as versões para tablet e telefone. É mais fácil para nós trabalhar com diálogos (nossos diálogos são Activity), e há muitos deles nesta tela e não queremos duplicá-los.
Esta é a aparência da versão para tablet:
Coletamos a versão para telefones dos mesmos elementos, mas com um navegador diferente.
Descreverei em que consiste a tela:
- Itens - fragmento
- Departamentos - fragmento
- Itens de linha e quantidade - fragmento
- Parâmetros do pedido é uma visão separada
50, , , OrderPresenter .
, Use case, . . , , , .
, , , , , . , ( Use case).
:
- ,
- ,
- , ,
- ,
- , , ""
- ,
" " — , 2- . :
- "" ( )
- ,
- ,
, , , , .
, , . :
- ( 2 ) ,
- UI
- Rx
, "" , , ( ), . .
Agora, se o usuário vai "martelar" na tela muito rapidamente. então seremos capazes de processar todas as operações, embora com um pequeno atraso (embora para o olho isso seja menos perceptível do que o "congelamento" da tela)
Breve diagrama UML do repositório:
Resultado
Podemos ter inventado uma bicicleta, mas a arquitetura, na minha opinião, simplifica o trabalho e permite dar suporte a casos mais complexos. Continuamos trabalhando nisso.