Javafree

Guia de auxílio na tomada de decisão para desenvolvimento de aplicativos utilizando o framework LWUIT

Publicado por equipejavafree em 07/12/2010 - 2.615 visualizações

Durante o desenvolvimento de aplicativos Java ME utilizando-se do framework LWUIT foram enfrentados diversos problemas, tais como: exagerado tamanho do arquivo final da aplicação, exagerado consumo de memória e lentidão na execução. Desse modo este guia vem ajudar o desenvolvedor que tem por objetivo desenvolver interfaces gráficas com esta tecnologia.
Assim foram formadas perguntas que podem e devem ser feitas antes e durante o desenvolvimento de interfaces gráficas com o framework LWUIT.

1- O aplicativo vai rodar em aparelhos com grande diferença de processamento? (tanto celulares antigos e comuns quanto smartphones?)
2- Pretende-se utilizar muitas imagens nas telas do aplicativo a ser desenvolvido?
3- Pretende-se acessar grande quantidade de dados?
4- Pretende-se acessar dados de Web Services?
5- Pretende-se utilizar efeitos de transição para troca de telas?
6- Necessita-se que o tamanho do instalador do aplicativo fique pequeno?
7- Necessita-se que durante a execução do aplicativo o mesmo ocupe menos espaço em memória?
8- Pretende-se utilizar tema para a aplicação?
9- O que posso fazer para verificar como está a execução de meu aplicativo?

Respostas para as dúvidas acima:

1 ? Visto que um aplicativo construído utilizando LWUIT é pesado e consome bastante recurso ao ser executado deve se levar em consideração se o mesmo será portado para aparelhos mais antigos (com menos recursos) e também para aparelhos com potencial computacional maior (Smartphones).
Se for o caso de se utilizar LWUIT para desenvolvimento em Smartphones porque são nos mesmos onde se tem uma execução melhor de aplicativos desenvolvidos com a mesma, deve-se levar em conta que se utilizar SO?s (Sistemas Operacionais) como Android, é mais vantajoso desenvolver com o SDK próprio disponibilizado porque se tem maior quantidade de efeitos, menor peso na execução e maior interatividade com o usuário. Isso ocorre porque sistemas como Android tem vindo instalados em muitos aparelhos atualmente e, dessa forma, é grande a quantidade de Smartphones que o trazem e acaba sendo inviável utilizar LWUIT porque as vantagens são muito maiores. É importante levar em conta que todos os componentes da LWUIT suportam eventos Touch Screen, então uma aplicação desenvolvida com a mesma irá rodar em aparelhos com este tipo de tela sem problemas.

2 ? Deve se levar em conta que quanto maior a quantidade de imagens inseridas no aplicativo maior será o arquivo final do mesmo e, conseqüentemente, pior será a execução visto que bastante memória deverá ser alocada para instanciar todas as imagens que forem inseridas na aplicação. Deve-se tomar cuidado com isto e ter em mente a idéia de que a LWUIT por si só já é pesada ao executar em alguns dispositivos e a inserção de imagens pode acarretar estouro de memória ou lentidão ao executar o aplicativo. Pode-se optar por não inserir imagens ou inserir apenas aquelas que forem realmente necessárias para a interface do aplicativo e etc.

3 ? Uma aplicação que necessita acessar muitos dados deve ter bastante memória disponível para que se possa armazenar tanta informação. Em aparelhos com menos memória para execução de aplicativos pode-se contornar o problema realizando paginação para os dados fazendo com que somente sejam carregados os dados realmente essenciais naquele momento.

4 ? São necessárias algumas bibliotecas para acesso de Web Services (SOAP) que são o padrão, em Java ME. O que acontece é o seguinte: como o tamanho final de uma aplicação desenvolvida com LWUIT fica muito grande, cerca de 550 ~ 700 KB devido ao alto tamanho da biblioteca do framework, inserir mais bibliotecas para acesso a Web Services (KSOAP e KXML) fica um tanto inviável visto que o .JAR final da aplicação irá crescer pelo menos mais 300 KB. Dessa forma pode-se utilizar serviços criados em páginas PHP ou JSP que retornem os dados separados por vírgula e, assim, criar os objetos no momento do recebimento da resposta. Além de ser mais rápido a aplicação fica com tamanho final menor. Deve-se analisar o uso de diferentes formas de acesso a dados como por exemplo as citadas acima que podem ajudar em muito na execução do aplicativo.

5 ? A utilização de efeitos de transição de telas dá ao usuário uma experiência interessante. Porém efeitos de transição devem ser usados com cautela se a aplicação for rodar em aparelhos com menos capacidade porque estes efeitos utilizam bastante memória e processamento e podem prejudicar em muito a execução do aplicativo. É aconselhável não se utilizar esses efeitos quando se for executar um aplicativo em aparelhos menos potentes.

6 ? Se for o caso de se necessitar reduzir o tamanho final do instalador do aplicativo pode-se fazer isto usando ofuscadores de código no momento da compilação do projeto. O mesmo altera nome de variáveis e etc e torna o aplicativo final cerca de 60% menor. Deve-se levar isto em conta visto que uma aplicação qualquer desenvolvida com LWUIT tem um tamanho em média de 500 até 700 KB porque a biblioteca do framework é grande (cerca de 400 KB). Atualmente isto não é um problema grande visto que os aparelhos móveis tem aumentado sua memória tanto de armazenamento quanto para instalação de aplicativos Java. Um problema que tem diminuído ao longo dos anos, mas ainda pode preocupar muita gente é o preço de plano de dados brasileiro. Fica inviável ter que realizar o download de um aplicativo com 700 KB em vários aparelhos devido ao alto custo e também à baixa velocidade de transferência que se tem em algumas formas de acesso a Internet.
Por isso deve ser considerada a hipótese de utilizar ofuscadores de código para redução do tamanho final do arquivo de instalação do aplicativo.

7 ? Aplicativos LWUIT possuem componentes que ocupam muita memória durante a execução. Isto pode ser contornado mantendo-se em memória somente os objetos necessários a execução do mesmo, bem como o uso de somente um formulário que troque ou reutilize alguns de seus componentes toda vez que uma nova tela necessite ser desenhada. Dessa forma pode-se perceber que haverá grande ajuda na redução do uso de memória e velocidade de execução.

8 ? O uso de um tema criado com Resource Editor pode aumentar o tamanho final da aplicação e, talvez, piorar um pouco a execução da mesma. Porém isto não influencia muito e é um ponto que deve ser levado em conta visto que o framework LWUIT disponibiliza seus componentes próprios com o mínimo possível de efeitos gráficos e, assim, os mesmos não dão uma experiência boa ao usuário. Deve-se levar em conta a adoção de um tema para a aplicação porque o desenvolvimento e uso do mesmo é feito de forma rápida e transforma a interface da aplicação que fica atrativa e intuitiva.

9 ? Este é um ponto muito importante. É, de qualquer forma, necessário o uso de Java Profiler?s durante o desenvolvimento da aplicação. Java Profiler?s retornam muitos dados sobre o aplicativo que está sendo executado, tais como: quantidade de memória usada, picos de uso de memória, quantidade de classes carregadas no momento e até o momento juntamente com os pacotes que as mesmas fazem parte, quantidade de objetos instanciados, possibilidade de uso do Garbage Collector(Coletor de lixo da memória) em qualquer momento e, também, é traçado um gráfico em tempo real durante a execução dando a noção de consumo de memória. Dessa forma pode-se verificar exatamente onde está ocorrendo o problema no aplicativo que está o deixando lento e também, dessa forma, pode-se verificar a possibilidade de melhorar em muito o aplicativo desenvolvido.

Considerações Finais
Através do presente guia desenvolvido sob inúmeros testes realizados com protótipos de aplicativos desenvolvidos com LWUIT pode-se chegar a algumas conclusões. Inicialmente, uma análise criteriosa deve ser feita também sobre alternativas para o desenvolvimento de interfaces gráficas para aplicativos Java ME. Depois disto feito, caso a LWUIT for a melhor opção para o projeto em questão, há a necessidade de se utilizar este guia para, através do mesmo, conseguir melhorar o desenvolvimento e desempenho de aplicativos desenvolvidos com o framework. Fica a cargo dos desenvolvedores o uso ou não do mesmo porém através deste a tarefa de desenvolvimento com LWUIT fica mais fácil e organizada.

Autoria: Lucas Oleksinki - Para saber mais sobre o autor e seus artigos acesse: http://www.devmedia.com.br/autor.asp?id=243613

comentários: 0