... | ... | @@ -15,14 +15,24 @@ Nesta página você encontra a lista de bugs mapeados ou limitações conhecidas |
|
|
|
|
|
## É inviável implementar os pins com Flutter
|
|
|
|
|
|
Foi constatado, durante o desenvolvimento, a inviabilidade de desenvolvimento da task "US10 - Adicionar descrição a áreas específicas das fotos" e em razão disto a mesma foi descontinuada. Contudo, foi constatado que há sim a possibilidade de implementação desta em uma futura versão do projeto e em razão disto descreveremos agora os problemas encontrados durante a implementação e única rota encontrada para implementação da task.
|
|
|
Foi constatado, durante o desenvolvimento, a inviabilidade de desenvolvimento da task "US10 - Adicionar descrição a áreas específicas das fotos" e em razão disto a mesma foi descontinuada. Contudo, foi constatado que há sim a possibilidade de implementação desta em uma futura versão do projeto e em razão disto descreveremos agora os problemas encontrados durante a implementação e a única rota encontrada para implementação da task, juntamente com a justificativa para a inviabilidade desta.
|
|
|
|
|
|
### Forma de implementação descontinua, mas que era viável ao projeto:
|
|
|
|
|
|
### Forma de implementação inviável para o projeto, mas que funcionaria:
|
|
|
#### Implementação crua, julgada como insuficiente:
|
|
|
Para posicionamento de "pins" em uma imagem em Flutter é necessário que se dê a posição (localização) em que este será desenhado. Utilizando das "posições absolutas da tela" foi possível implementação da anotações, mas devido à necessidade da imagem necessariamente aparecer por inteira na tela, a qualidade da imagem caiu muito, devido ao zoom inverso que por vezes era necessário, e por não existir a capacidade de expandir ou aproximar a imagem, a precisão do toque do usuário era extremamente baixa. A implementação crua, apesar de efetiva, mostrou-se insatisfatória.
|
|
|
|
|
|
### Por que julgamos esta implementação como inviável?
|
|
|
#### Por que julgamos que sem o uso de plugins seria inviável:
|
|
|
Para que fosse resolvido a pendências da "implementação crua", se tornou necessário a implementação das funcionalidades de *pinch* (dar zoom na imagem, utilizando o movimento de pinça), *double tap zoom* (zoom na imagem, pressionando duas vezes) e *drag* (dado zoom na imagem, que seja possível ao usuário "navegar" pela imagem, arrastando-a).
|
|
|
A implementação manual das *features* acima, além da alta complexidade das mesmas, levaria muito tempo para serem feitas, muito tempo para serem testadas e muito tempo para que pudéssemos garantir com certeza sua qualidade, precisão e performance. Por isso, o uso de *plugins* que as implementassem foi julgado como indispensável.
|
|
|
|
|
|
Plugin utilizado para os movimentos: https://pub.dev/packages/photo_view
|
|
|
|
|
|
#### Problemas no uso de plugin em relação aos pins:
|
|
|
Durante a implementação do *plugin* foi constatado que, para renderização correta dos pins, seria necessário que houvesse uma conversão do "posicionamento global" para o "posicionamento local", isto é, o posicionamento dos pins não deveria ser feito utilizando as coordenadas da tela, mas sim as coordenadas da imagem. A utilização das coordenadas da tela faria com que os pins estivessem presos à tela e por isso não serem afetados pelos movimentos de *pinch* e/ou *drag*.
|
|
|
|
|
|
#### Problema final:
|
|
|
Não foi possível encontrar uma forma utilizando aquele *plugin* de gerar e/ou converter de forma precisa as coordenadas da imagem, fazendo com que não fosse possível a renderização dos pins dentro da imagem de forma que os movimentos realizados pelo usuários fossem respeitos pela renderização, que fosse peita a atualização da posição dos pins de acordo com os movimentos do usuário. Os mesmos testes foram realizados em outros *plugins* e não foi possível encontrar nenhum outro *plugin* que realizasse as ações necessária de interação com a imagem, mas que possibilidade a conversão das coordenadas. Levando em consideração que a "implementação crua" utilizada anteriormente não demonstrava usabilidade para o usuário final devida à baixa qualidade, dificuldade de visualização e imprecisão de localização do toque, o time decidiu por descontinuar esta task.
|
|
|
|
|
|
## O OCR pode interromper a execução do aplicativo
|
|
|
|
... | ... | |