Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • C cupertino-wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Cupertino
  • cupertino-wiki
  • Wiki
  • problemas conhecidos

Last edited by João Octavio Freitas Bitelo Nov 17, 2020
Page history

problemas conhecidos

Problemas Conhecidos do Aplicativo

Nesta página você encontra a lista de bugs mapeados ou limitações conhecidas do Projeto Cupertino.

Sumário

  • Aplicativo não funciona no iOS
  • É inviável implementar os pins com Flutter
  • O OCR pode interromper a execução do aplicativo
  • ...

Aplicativo não funciona no iOS

<< inserir explicação aqui >>

É 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 a única rota encontrada para implementação da task, juntamente com a justificativa para a inviabilidade desta.

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 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 feita 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

Durante a chamada do Cloud Vision da Google, API usada no processamento do OCR neste projeto, foi detectado que a tentativa de reprodução do OCR em imagens que não possuem texto pode causar com que a aplicação feche inesperadamente e sem nenhum erro. Este problema é conhecido, com diversos relatos em fóruns e nós não encontramos uma solução definitiva para o mesmo. Foi encontrado o relato deste mesmo erro em diversos projetos e apesar de tentarmos realizar a correção deste erro usando as sugestões que foram apontadas como corretas, não foi possível corrigir o erro nem prevenir o crash do aplicativo em aparelhos Android.

As diretivas recomendadas para controle deste erro são o uso de 'try/catch's durante o trecho de código que faz a transferência da imagem para o Cloud e espera o recebimento da resposta. No nosso projeto, dentro do arquivo "lib/pages/photo_detail.dart", dentro do método "ocrOperation()", o trecho de código "final VisionDocumentText visionDocumentText = await cloudDocumentTextRecognizer.processImage(visionImage);" foi devidamente enclausurado dentro de um 'try/catch', conforme recomendado, contudo a solução não foi eficiente. Nenhuma outra solução foi encontrada para contornar este problema

...

Clone repository
  • Utilizando a wiki
    • adicionando imagens
    • escrevendo em markdown
    • wiki no editor de texto
  • arquitetura
  • backlog
  • banco_dados
  • configuracao
  • configurar_ambiente
  • gp
  • Home
  • horarios
  • instalacao
  • mockups
  • problemas conhecidos
  • sprints