domingo, 27 de maio de 2012

Problemas e mais problemas...


Entreguei a versão 1.1.1 da aplicação e decidi iniciar um refactoring e uma limpeza de código para seguir para as próximas etapas. Adicionei também um comportamento de deslizar para baixo para trazer o calendário na página do dia, e uma animação da transição. Então, ao realizar um teste de integridade com o que eu havia feito, um problema sério apareceu.

O problema ocorreu quando eu mudei a versão o apk. O dialog que eu uso para definir as Metas de Pontos aparecia assim no APK 7:


e ficou desse jeito depois de trocar para o APK 13:



E isso já estava publicado em produção faz um dia. É claro que eu deveria ter testado isso, e é claro que esse comportamento não mudaria, não é mesmo? Nunca lance nada com pressa, é nesse momento que os grandes bugs nascem!

O que aconteceu não foi bem um bug da APK 13, muito pelo contrário. Eu já estava definindo a largura e altura do dialog usando o método dialog.getWindow().setLayout(200,300). O que ocorre é que estas dimensões simplesmente não eram respeitadas no APK 7. Qualquer valor que eu colocasse, a Dialog apareceria da mesma forma! Em algum momento entre a APK 7 e a 13, isso foi corrigido, e as dimensões começaram a ser respeitadas. E a lei de Murphy, por sua vez, fez com que as dimensões que eu estava utilizando fossem muito pequenas, truncando o Dialog. Isso só foi aparecer na versão corrigida da APK!

Depois de descobrir que o problema foi esse, tive de ajustar o tamnho do Dialog. Isso levou a outro problema, pois os botões de + e - ficaram descentralizados no Dialog mais largo. Aparentemente, as imagens estavam descentralizadas de forma imperceptível na imagem original, e com o aumento largura do botão, isso foi exacerbado. Tive no final de trocar as imagens por outras.

Lancei a versão 1.1.5 no market:
- Adição do gesto de deslizar para baixo para pular da listagem do dia para o calendário.
- Adição de animação ao se mudar da listagem do dia para o calendário.
- Refactoring das classes do projeto. Estou separando o comportamento dos gestos e dos intents em classes estanques, para depois ter comportamentos diferenciados quando adicionar os fragments.
- Correção do erro de layout dos Dialogs de definição de Metas de Pontos.
- Correção do erro de refresh das Metas de Pontos do dia.

Nenhum comentário:

Postar um comentário