Todos os dias surgem novos aplicativos nas lojas de aplicativos das plataformas existentes e com a popularização dos smartphones a demanda por clientes buscando soluções para dispositivos móveis também aumenta. Porém muitos desconhecem o processo de construção de um app e o que é necessário para desenvolver e publicar.

O questionamento mais importante é:

multiplataforma1.fw

Neste cenário temos que avaliar algumas variáveis e necessidades. Alguns exemplos:

Plataforma Ferramenta Linguagem
iOS Xcode Objetive-C, Swift
Android Eclipse ou Android Studio Java
Windows Phone Visual Studio .Net

Problemas de desenvolvimento do mesmo aplicativo para várias plataformas:

  • Tempo; e
  • Equipe de desenvolvimento especializada em cada plataforma.

O mundo ideal:

  • Desenvolver um único aplicativo que rode em várias plataformas.

Dependendo na necessidade do cliente, ou da ideia que se tem para um novo app, a solução é simples: Web Apps

multiplataforma2.fw

Web Apps são sites com versão própria para aplicativos, onde sua interface fornece uma melhor interação com usuário quando acessados por smartphones ou dispositivos móveis. Podem tanto ser acessados via browser do smartphone ou um aplicativo que apenas aponta para uma URL.

O ponto negativo de Web Apps é que estes não permitem acesso ao hardware do dispositivo, como por exemplo a câmera do smartphone ou tablet. Quando há necessidade de acesso a recursos de hardware os web apps não atendem.

Aqui entramos num ponto importante sobre a definição de Apps Nativos: permitem acesso direto a API do dispositivo para acesso ao hardware através da plataforma em execução.

Agora que sabemos a definição de Apps Nativos e Web Apps podemos fazer a seguinte análise: Para que um aplicativo possa ser feito usando tecnologia Web mas que permita acesso ao hardware é necessário uma tecnologia que tenha um pouco de Nativo e um pouco de Web. Estas são chamadas Apps Híbridas.

multiplataforma3.fw

Uma App Híbrida reune o melhor dos dois mundos. É aqui que chegamos ao PhoneGap.

multiplataforma4.fw

O Phonegap é um framework multiplataforma que possibilita a criação de aplicativos móveis utilizando tecnologia web (HTML + CSS + Javascript) para serem executados em diversas plataformas como Android, iOS, Windows Phone,  BlackBerry, Firefox OS, entre outros.

Ele funciona como um empacotador de código que através de uma WebView permite utilização de código HTML5 no desenvolvimento do app e permite acesso as APIs nativas de cada plataforma.

Pensando neste modelo em forma de camadas, teremos o seguinte:

multiplataforma5.fw

Através da API do PhoneGap é possível acessar:

  • Câmera
  • Acelerômetro
  • Bússola
  • Contatos
  • Arquivos
  • Geolocalização
  • Mídias
  • Rede
  • Notificações
  • Armazenamento do próprio browser

No site oficial do Phonegap é possível consultar as plataformas suportadas e as APIs passíveis de utilização em cada uma delas.

ScreenShot129

Fonte: http://phonegap.com/about/feature/

Um detalhe importante é que o PhoneGap por si só não possui recursos visuais, pois esta não é sua função. Para isso existem outros frameworks web que podem ser utilizados junto ao PhoneGap para criar interfaces de apps.

Alguns dos frameworks existentes são:

multiplataforma6.fw

Alguns tem complexidade maiores, outros menores, mas todos utilizam tecnologia Web, portanto basta que tenha conhecimento de HTML5 para que consiga utilizar estes frameworks.

Outra discussão muito comum nos estudos de frameworks multiplataformas é a diferença entre PhoneGap X Cordova.

multiplataforma7.fw

Analisando através de uma sequência de fatos, temos o seguinte para ilustrar a definição e diferença entre PhoneGap e Cordova.

  • PhoneGap foi criado pela Nitobi
  • Adobe comprou o PhoneGap
  • PhoneGap virou produto da Adobe
  • Adobe doou o código fonte para a Apache
  • Nasceu o Apache Cordova
  • Adobe manteve o PhoneGap como produto

Em questão de código, a codificação é a mesma.

Ferramentas extras do PhoneGap: PhoneGap Build e PhoneGap Emulator

Este foi um resumo rápido sobre o PhoneGap que aproveitei para fazer após ministrar um Workshop na FAI – Centro de Ensino Superior em Gestão, Tecnologia e Educação sobre PhoneGap na Prática abordando estes frameworks apresentados aqui. Em um próximo artigo irei explicar o processo de instalação e alguns outros pontos para quem está iniciando. Fique ligado!