Desenvolvimento

Ξ Deixe um comentário

Desenvolvimento de apps mobile – Parte II

publicado por Cezar Taurion

No post anterior discutimos alguns aspectos diferenciados do desenvolvimento de apps em relação aos aplicativos em desktop. Um dos itens importantes de diferenciação é a diversidade de opções de dispositivos e os tipos de aplicação que podemos desenolver. Basicamente temos três tipos, cada um com suas potencialidades, mas também com restrições e cuidados especiais: os apps nativos, os apps web e os hibridos. Um app nativo é focado em uma plataforma ou conjunto de dispositivos especificos e desenvolvido pelo modelo de programação desta plataforma.

Os apps web são entregues via browser e os modelos hibridos agrupam caracteristicas dos apps nativos com as da web.

Desenvolver um app nativo, ou seja, focado em uma plataforma especifica como iOS ou Android, significa que podemos explorar ao máximo a potencialidade da plataforma e de seus dispositivos. O app é um executável que é baixado e executado no dispositivo e como resultado não pode ser executado em outro. De maneira geral é obtido de um marketplace ou app store como a App Store da Aple ou Google Play para Android. Como o app tem acesso direto aos recursos da plataforma como cameras, compasso, acelerometro, calendario e lista de contatos, etc, consegue tirar o maximo dos aparelhos. Também utiliza os componentes basico de UI (user interface) da plataforma, como botões e ícones, bem como seus interfaces gestuais. Por outro lado, aumenta a complexidade (e os custos) dos esforços de desenvolvimento, pois a empresa tem que desenvolver apps nativos para diversas plataformas. Isto demanda ferramentas e skills especificos. Um desenvolvedor que conhece profundamente iOS nem sempre terá a mesma proficência em Android. Provavelmente a empresa deverá ter mais de uma equipe para desenvolver seus apps, sincronizando-os uns com os outros, para que a experiência do usuario em uma plataforma seja a mais proxima possivel das outras plataformas. O volume de trabalho em manutenção, correção de bugs, atualizações, etc também aumenta à medida que mais plataformas são inseridas no contexto.

Os apps web são entregues via browsers, como muitas aplicações web do nosso velho conhecido desktop. Mas um app web móvel não é apenas pegar a aplicação que roda na web tradicional e deixa-lo rodar no smartphone ou tablet. O app deve reconhecer o ambiente em que ele está operando e se ajustar de forma adequada. A tela que vai aparecer um um desktop deve ser diferente do que deve aparecer no tablet. Entre os aspectos positivos temos a facilidade de desenvolvimento, uma vez que não demanda codigos únicos por plataforma, dado que é inerentemente cross-platform (reduz custos, naturalmente), e como é acessado via URL pode ser integrado a sistemas web como Twitter e Facebook, além de ter seu conteudo acesssado por motores de busca. Também bypassa as app stores, não precisando que o usuário faça downloads.

Com o HTML5, podemos fazer apps web bem próximos dos apps nativos em termos de exploração de potencialidades de recursos. O HTML5 permite implementar interfaces gestuais, usar a memória interna do dispositivo, minimizando o acesso às nuvens, obtém informações contextuais como geolocalização e permite implementar uma experiência visual bastante rica. Muitas empresas estão adotando HTML5 como seu padrão de mobilidade. Vale a pena ler o case do Finacial Times, quando anunciou sua entrada no mundo HTML5, e mais recentemente, analisando o resultado dois anos após. Um ambiente cross-platform acelera o desenvolvimento, mas a diversidade de dispositivos faz com que a etapa de testes em cada um deles ainda seja uma das grandes barreiras no processo. O padrão HTML5 é um work in progress e, é claro, que muitas questões de segurança ainda não estão completamente endereçadas. Mas, a segurança em praticamente todos os ambientes móveis ainda está na infância, com os erros e tropeços da sua imaturidade. Quanto à segurança em HTML5 recomendo ler um relatório de 2011, da Trend Micro, “HTML5 Overview: a Look at HTML5 Attack Scenarios”.
Quanto ao uso de HTML5 recomendo dar uma olhada no marketplace de apps HTML5  bem como para ter uma melhor do visão do status dos principais browsers com relação ao suporte HTML5.A terceira alternativa são os apps híbridos. Basicamente contém dois elementos: um componente web, baseado em HTML5 e um container ou “bridge” nativo que permite acessar os recursos intrinsecos da plataforma e dispositivos. O container mais usado é o projeto Open Source Apache Cordova e se constitui em um conjunto de APIs que permite o app HTML5 acessar os recursos nativos do smartphone ou tablet. O app híbrido tem seu codigo principal desenvolvido em HTML5 e é envelopado em um container, que o faz ser empacotado como um app nativo e portanto residindo em uma app store. Uma vantagem significativa é que as empresas podem usar o HTML5 para diminuir o custos de desenvolvimento cross-platform, deixando apenas parte do código que explora a funcionalidade especifica da plataforma ser escrita no modelo de programação da própria plataforma. E, como HTML5 é um work in progress a cada funcionalidade que ele for incorporando nos próximos anos é menos código especifico nativo que o app precisará conter. Um paper sobre escrever apps híbridas que vale a pena ler é “Writing a Hybrid Mobile Application with PhoneGap and the Dojo Toolkit.

Portanto, desenolver apps móveis não é só começar a escrever código. É necessário uma estratégia que defina entre outros aspectos que tipo de aplicações serão desenvolvidas. Para esta decisão uma série de variaveis devem ser consideradas como expertise interna da equipe de desenvolvimento, disponibilidade de terceiros com expertise nas plataformas necessarias, existência de planos de monetarização dos apps (uma app store facilita isso…), budget disponivel para desenvolvimento e evolução contínua, necessidade de cross-platform, etc. Também avalie a possibilidade de dispor de tecnologias adequadas como um MEAP (Mobile Enterprise Application Platform) como o Worklight da IBM. Um MEAP é hoje um componente indispensavel em uma estrategia de mobilidade. E considere que escolher apps a serem implementados pode ser uma ação tática, como aproveitar uma janela de oportunidade de mercado, mas a escolha do tipo de aplicação deve ter um viés estratégico.

Autor

Cezar Taurion é head de Digital Transformation da Kick Ventures e autor de nove livros sobre Transformação Digital, Inovação, Open Source, Cloud Computing e Big Data.

Cezar Taurion

Comentários

You must be logged in to post a comment.

Busca

Patrocínio

Publicidade



Siga-nos!

Newsletter: Inscreva-se

Para se inscrever em nossa newsletter preencha o formulário.

Artigos Recentes