# PhoneGap

PhoneGap é um framework para desenvolvimento de aplicativos móveis em código aberto. Ele se utiliza da tecnologia Apache Cordova para acessar a funções dos aparelhos móveis como acelerômetro, câmera e geolocalização, e permite que os desenvolvedores criem aplicações utilizando HTML5, CSS3 e JavaScript sem a necessidade de depender de APIs específicas. Os aplicativos criados são compatíveis com iOS, Windows Phone e Android.
Os aplicativos resultantes são híbridos, no sentido de que não são nem aplicativos móveis nativos nem puramente web-based. Em vez de utilizar a UI nativa de cada plataforma toda renderização do layout é feita por meio de webviews, por outro lado não se trata simplesmente de apps webs pois estes aplicativos tem acesso as API's nativas de cada dispositivo e podem ser empacotados para distribuição.

## Histórico

Inicialmente desenvolvido no iPhoneDevCamp, evento ocorrido em São Francisco em 2009, por Rob Ellis, Eric Oesterle e Brock Whitten, todos da Nitobi Software. Já em 2009 levou o o prêmio People's Choice Award durante o Web 2.0 Conference promovido pela O'Reilly Media.
A Apple Inc. confirmou em 2010 que a plataforma está de acordo com os parâmetros da licença para desenvolvedores iOS. Além disso, o PhoneGap ja é usado por muitas aplicações para plataformas móveis entre elas, Asial's Monaca, ViziApps, Worklight, Convertigo, e appMobi como a espinha dorsal do funcionamento de seus aplicativos.
Em 2011 a Adobe anunciou a compra do software da Nitobi Software. Na mesma época o código fonte do projeto foi doado pela Adobe para a fundação Apache e desde então virou um projeto totalmente aberto com uma comunidade crescente.

### Phonegap Build

As primeiras versões do PhoneGap exigiam que, para se criar aplicativos para o iOS, este deveriam ser criado em um computador da Apple e para desenvolver para Windows Phone, fossem criados em um computador rodando Windows. A partir de setembro de 2012, a Adobe lançou o PhoneGap Build , um serviço integrado com outras ferramentas da empresa. Trata-se de uma plataforma web para empacotamento e criação de aplicativos utilizando a tecnologia PhoneGap. Com ela, ao invés de você configurar seu ambiente com o SDK de cada plataforma, você pode enviar seu código que é então armazenado em nuvem e com ele pode gerar os pacotes de instalação dos aplicativos para cada sistema operacional.

## Funcionamento

Os aplicativos feitos com PhoneGap utilizam HTML5 e CSS3 para implementar a interface de usuário e Javascript para compor sua lógica. Apesar do HTML5 permitir acesso a alguns a recursos do hardware, como acelerômetro, câmera e GPS, estes recursos ainda não são suportados por todos os browsers móveis, particularmente pelas versões mais antigas do Android. Para superar esta limitação o PhoneGap inclui funções dentro das WebViews nativas de cada aparelho e para acessar recursos nativos.
Por outro lado o uso de tecnologias web faz com que muitos aplicativos do PhoneGap sejam mais lentos do que aplicativos nativos com funcionalidades similares. Adobe Systems alerta ainda que aplicativos feitos com o PhoneGap podem ser rejeitados pela Apple caso sejam lentos demais ou não tenham a mesma aparência e consistência de layout dos aplicativos nativos.

## Plataformas suportadas

Atualmente o PhoneGap permite o desenvolvimento de aplicativos para Apple iOS, BlackBerry, Google Android, LG webOS, Microsoft Windows Phone (7 e 8), Nokia Symbian OS, Tizen (SDK 2.x), Bada, Firefox OS e Ubuntu Touch. A tabela abaixo lista os recursos de hardware suportados por cada sistema operacional
| Recurso | iPhone /iPhone 3G | iPhone 3GS e mais novos | Android 1.0 – 4.4 | Windows Phone | BlackBerry 10 and PlayBook OS | BlackBerry OS 4.6–4.7 | BlackBerry OS 5.0-6.0+ | Bada | Symbian | webOS | Tizen | Ubuntu Touch | Firefox OS |
| Acelerômetro | Sim | Sim | Sim | Sim | Sim | — | Sim | Sim | Sim | Sim | Sim | Sim | Sim |
| Câmera | Sim | Sim | Sim | Sim | Sim | — | Sim | Sim | Sim | Sim | Sim | Sim | Sim |
| Bússola | — | Sim | Sim | Sim | Sim | — | — | Sim | — | Sim | Sim | Sim | Sim |
| Lista de Contato | Sim | Sim | Sim | Sim | Sim | — | Sim | Sim | Sim | — | Sim | — | Sim |
| Arquivos | Sim | Sim | Sim | Sim | Sim | — | Sim | — | — | — | Sim | Sim | — |
| Geolocalização | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim |
| Mídia | Sim | Sim | Sim | Sim | Sim | — | — | — | — | — | Sim | Sim | — |
| Rede | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim |
| Notificação (alerta, som, vibração) | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim | Sim |
| Gravar na memória | Sim | Sim | Sim | Sim | Sim | — | Sim | — | Sim | Sim | Sim | Sim | Sim |