Criei alguns aplicativos usando o PhoneGap e, pelo que ele oferece, é ótimo. Há algumas notas rápidas que gostaria de destacar, que podem ajudá-lo.
Disable device-based features you're not using
O acelerômetro e os recursos de geolocalização estão ativados por padrão. Se você não os estiver usando, eu os desligaria, pois seu aplicativo carregará mais rápido (inicializará) e executará de maneira mais suave.
onDeviceReady
- Este é o método que é chamado assim que o phonegap é carregado e está pronto. $ (document) .ready ou com o que você está acostumado, não se aplica aqui - a menos que você esteja apenas fazendo interface / coisas HTML embutidas em código. Se estiver interagindo com os recursos do iPhone, como GeoLocation, você precisará fazer tudo depois que onDeviceReady for chamado.
Pick a UI/library
Existem inúmeras opções para a interface / bibliotecas, jquery-mobile, sencha touch, jqtouch, etc. Cada uma delas oferece uma abordagem única e conjunto de recursos. Faça alguma pesquisa e use um, mas evite combinar. Você pode ler sobre mais algumas opções e ferramentas aqui: http://www.phonegap.com/tool (link atualizado)
Also, more on just mobile development in general, with PhoneGap
Se você está procurando construir aplicativos, que são distribuídos através do Android Market e iPhone App Store, eu leria suas listas exaustivas para obter orientações sobre como desenvolver seu aplicativo. Por exemplo, no link de ferramentas acima, há uma "ferramenta / plugin" chamado Easy APNS - embora seja útil para Android - e tecnicamente viável no iPhone, ele viola o acordo de desenvolvimento, pois afirma que você deve usar a notificação da Apple rede, etc. Este é apenas um exemplo, mas ler sobre essas coisas vai lhe poupar muitas dores de cabeça, se esse for o seu objetivo final.
Resumindo, é ótimo para aplicativos leves, especialmente se você tiver experiência em desenvolvimento web. LocalStorage, GeoLocation, etc. funcionam muito bem. Espero que ajude um pouco ... e sinta vontade de fazer perguntas.
Edição adicional:
Realmente acho que tudo se resume ao que você quer fazer e o que sabe fazer. Matt destacou que desenvolver aplicativos nativos, para iOS, é melhor, etc. Sim, se você tiver tempo e conhecimento para aprender isso - é claro que os nativos serão melhores. Mas o PhoneGap é feito para desenvolvedores da web que podem pegar seu conjunto de habilidades existente e construir aplicativos. Além disso, o PhoneGap permite que você crie aplicativos rapidamente, para iOS, Android, Symbian, Palm, Blackberry. Com pequenos ajustes em sua base de código para cada um.
Aqui estão os melhores guias de desempenho que li para o PhoneGap ... há muito que se preocupar para garantir que você tenha um desempenho sólido e estável ... mas você pode aprender tudo em apenas uma noite de leitura.
Aqui estão as melhores pepitas:
PhoneGap / Dicas de desempenho da Web móvel
http://forum.jquery.com/topic/ontouch-instead-of-onclick-event
http://wiki.phonegap.com/w/page/16494809/Performance-tips-for-device/
Dicas de desempenho de VÍDEO para Sencha Touch: http://vimeo.com/17882927
Delegação de eventos no Sencha Touch: como projetar listas com um único ouvinte, e não um em cada linha. http://www.sencha.com/blog/event-delegation-in-sencha-touch/
Habilitando novas funções
Arquitetura
Arquitetando seu aplicativo em Ext JS 4: http://www.sencha.com/learn/architecting-your-app-in-ext-js-4-part-2
fonte
Antes de expressar minha opinião sobre o Phonegap, preciso deixar um pequeno aviso dizendo que não sou, de forma alguma, um desenvolvedor web. Para mim, escrever JavaScript e CSS é como arrancar dentes. Dito isso, não gosto do Phonegap.
Existem alguns aspectos muito atraentes da estrutura, principalmente o recurso "Write-Once-Run-Anywere" e "Eu-Não-Tenho-que-Aprender-Objective-C?" recurso. A estrutura pode até dar acesso a alguns dos recursos de hardware, como o acelerômetro. Todos estes são válidos, até certo ponto.
Dito isso, nenhum dos grandes aplicativos iOS é construído usando qualquer tipo de estrutura de plataforma cruzada. Existem tantas interações de IU sutis e elegantes que são manipuladas para você pelos controles UIKit nativos que muitos usuários e desenvolvedores consideram óbvio até que eles estejam ausentes, como a grande quantidade de curvas de animação de visualização incrivelmente detalhadas e saltos de rolagem que não existem na IU baseada na visualização da web. Você poderia trabalhar duro para reproduzi-los perfeitamente, mas para esse investimento de tempo, por que não se tornar um nativo?
Um segundo ponto a ser observado é que a comunidade de suporte para aplicativos iOS desenvolvidos pelo Phonegap é drasticamente menor do que os aplicativos desenvolvidos nativamente. Se você é do tipo que confia na comunidade durante os projetos, isso também deve causar uma pausa.
No final, tudo se resume à qualidade da experiência que você deseja oferecer. O limite superior é inferior com Phonegap. Se você está pronto para aceitar uma experiência de usuário menos que excelente em troca de tempos de desenvolvimento reduzidos e maior portabilidade, então é uma estrutura muito viável.
Como subtexto para qualquer pessoa interessada, Marco Arment e Dan Benjamin discutiram recentemente esse tópico. Você pode ouvir aqui .
fonte
O procedimento de instalação envolve uma série de pacotes (Java, Apache Ant, Ruby, iOS SDK, Android SDK e o próprio PhoneGap), que devem ser instalados e configurados corretamente. Isso pode ser um grande esforço. Para ser justo, eles têm algo chamado PhoneGap Build em beta que deve tornar isso muito mais fácil.
Nós o usamos com NS Basic / App Studio para produzir aplicativos qualificados para lojas de aplicativos.
fonte
se você não está fazendo um jogo ou widget, apenas um aplicativo bonito, então o phonegap é sua escolha.
Mas você deve ter cuidado com o seu JS, evite fazer qualquer coisa em JS por exemplo, se você quiser fazer qualquer animação, evite definir um cronômetro com pequenos intervalos (por exemplo, 100 ms), evite jquery e animações semelhantes. Por exemplo, em vez de animar o fade definindo um temporizador de curto período diminuindo a opacidade em cada ponto passo a passo (é assim que o jquery fade funciona), você deve usar transições css3 da opacidade 1 para a opacidade 0.
Meu conselho é usar algo como zeptojs.com, afinal o phonegap não executará o ie6 :-)
Confira algum tutorial sobre como tornar seu JS mais leve
http://bcksp.blogspot.com/
fonte
Se você não precisa de nenhum dos recursos de hardware ou desempenho além do que HTML5 e Phonegap fornecem, um aplicativo da web encapsulado (mais algum acesso limitado a outros recursos) é uma ótima solução.
Muitas empresas implantam aplicativos da web em grande escala. Phonegap (ou apenas um controle de visualização simples da web com conteúdo incorporado) permitirá que você execute esses aplicativos da web offline (exceto, é claro, para quaisquer dados online necessários).
fonte
Uma "dor" não mencionada ao implantar entre vários dispositivos diferentes: quanto mais dispositivos, maior será a curva de aprendizado. Para implantar em dispositivos iOS com PhoneGap, você precisará aprender o básico do Xcode em um Mac. Para implementar no Android, você precisará instalar e aprender o Eclipse, o Android SDK, etc. As outras plataformas exigem que seus próprios SDKs sejam usados. Aprender um pouco de Xcode, Javascript e Java rudimentar me ajuda a entender os erros e a sintaxe geral.
"Crie uma vez, implante em todos os lugares" omite MUITAS etapas!
fonte