Aplicações móveis nativas x híbridas

Author Photo
2:15 pm - 25 de agosto de 2011

Um salve a todos.

É indiscutível o crescimento de aplicações móveis. Houve um grande ?bum? no que tange esse tipo de aplicação e elas não param de surgir.

Acontece que os desenvolvedores e as empresas precisam lidar com uma  grande questão, os dispositivos móveis possuem sistemas diferentes.

Bem, por mais óbvio que isso pareça, a adversidade de aparelhos, sejam celulares ou tablets e a diferença entre os sitemas são grandes problemas.

Imaginemos a seguinte situação. Um cliente contrata uma empresa para desenvolver um aplicativo para tablet e celular. O cliente, como é de se esperar atualmente, exige que o aplicativo rode em iOS, Android e RIM. Nem citarei outros sistemas para não complicar ainda mais.

A empresa, por sua vez, deverá ter 3 equipes, cada uma especializada em uma plataforma.

Já pararam para pensar o custo disso? Manter 3 equipes, com profissionais especializados em cada uma? E se por um acaso, e.g. Lei de Murphy, grande parte da sua equipe de iOS fica doente, muda de empresa ou se demite? O que o gerente de projeto faz? Acho que a primeira resposta que vem a mente é querer se matar!

Sem ir muito longe, imaginem que a empresa fez o aplicativo para cada plataforma. Não seria espantoso que a aplicação tivesse um bug no Android que não existe no RIM ou outro problema do tipo. Alguém consegue imaginar o problema de gerenciar e se certificar que a aplicação foi feita da mesma forma, atendendo a todos os requistos, sem bugs para 3 ambientes diferentes, com devices de tamanhos, hardware, processador e especificações diversos, além de ter 3 equipes completamente diferentes?

 

Pensem no custo, tempo e problemas para se homologar cada aplicação em cada ambiente. Também não seria estranho se uma equipe acabasse um aplicativo antes de outra. E se o cliente quiser lançar todas juntas, o que se faz, atrasa-se o lançamento? E o tempo que se perde de venda de uma aplicação que já está pronta? Além disso, é comum haver uma parte do pagamento que é entregue no fim do projeto. Bem, como o projeto pode ser as 3 aplicações, a empresa também deixa de receber uma parte do pagamento quando precisa.

Os problemas tendem a infinito. Poderia ficar aqui um bom tempo enumerando?

Mas e daí? Depois de todos esses problemas, alguns devem estar se perguntando, qual a solução?

A primeira resposta que posso dar é, como de padrão, não há bala de prata, entretanto, existem soluções que podem diminuir muito esses e outros problemas.

Há frameworks no mercado que trabalham com soluções ?híbridas?. A idéia, é que você faça um código único e no final, gere uma aplicação para iOS, outra para Android e assim por diante, sem alterar seu código ou com alterações realmente mínimas. Algumas, possibilitam inclusive gerar aplicações desktop e sistemas web. Qualquer similaridade com a idéia básica de java é simples coincidência.

É claro, antes que possam falar, a performance em geral não é a mesma. O dia que fizerem algo que gera código para diversas plataformas com a mesma performance ou até melhor de um código nativo, há algo de errado com o nativo. Porém, é como dizem popularmente, o ótimo é inimigo do bom.

As soluções atuais estão bem maduras e melhorando exponencialmente. É possível fazer aplicações hoje para vários ambientes sem ter o trabalho de codificar para cada uma. Há ainda, a possibilidade se usar código nativo junto, caso haja algo que exija tal solução, aumentando ainda mais a flexibilidade.

Alguns que podem ser citados são o Titanium, Corona e a Adobe tem trabalhado nesse sentido com o Flex SDK 4.5 e com o Air.

Eu optei pela dobradinha Sencha Touch com Phonegap. Posso dizer de antemão que ela tem suprido bem essa necessidade e que a performance não deixa nada a desejar sobre aplicações nativas.

Breve escreverei artigos técnicos, com exemplos sobre os dois e mostrando como programar uma vez e gerar aplicações para ambientes diferentes. Aguardem.

Grande abraço e até breve!

Atualizado as 14h18 do dia 25 de agosto

*Zaedy Sayão trabalha com ExtJS desde antes de sua versão 1, há 4 anos é especialista em aplicações RIA com uso do Ext, utilizando também o Sencha Touch em seus projetos. Graduando em Ciência da Computação pela UFRJ, é aderente aos movimentos ágeis e de modelos como o Mps.Br, trabalhando com PHP há mais de 4 anos e com Java há cerca de 9. Sócio-diretor da empresa Manufato Marketing e Design, atua também dando consultoria de ExtJS e Sencha Touch e colabora com o fórum nacional de ExtJS.

**As opiniões dos artigos/colunistas aqui publicadas refletem unicamente a posição de seu autor, não caracterizando endosso, recomendação ou favorecimento por parte da IT Mídia ou quaisquer outros envolvidos nesta publicação

ð      Você tem Twitter? Então, siga http://twitter.com/IT_Web e fique por dentro das principais notícias de TI e telecom.


 

Newsletter de tecnologia para você

Os melhores conteúdos do IT Forum na sua caixa de entrada.