Usando Phonegap para desenvolvimento de aplicativos nativos [fechado]

97

Recentemente encontrei o Phonegap . Alguém de vocês já experimentou. É uma ferramenta incrível que afirma que os desenvolvedores podem usar estruturas baseadas em HTML 5, como Sencha touch e Jquery, ao mesmo tempo que têm acesso a recursos nativos no telefone. Além disso, o código é portátil do Android para o iPhone com algum esforço. Antes de me aprofundar, quero saber qual é a experiência do fórum com o Phonegap. Quais são os pontos fracos e é realmente escalonável para o desenvolvimento de aplicativos de nível empresarial.

SaKet
fonte

Respostas:

95

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 PhoneGapSe 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.

TNC
fonte
2
Parece que os desenvolvedores estão divididos no Phonegap.
SaKet
8
Se no final do dia, você tem tempo e dinheiro para aprender os diferentes idiomas para construir aplicativos nativos para Android e iOS - então faça isso :) Mas para a maioria de nós, usar o que sabemos para construir aplicativos que rodam muito bem em vários dispositivos, é um acéfalo.
TNC
easyapns é apenas para notificação do iPhone (não android) e usa a rede de notificação da Apple, não tenho certeza de onde você tirou a ideia de que isso quebra o acordo do desenvolvedor.
Traveling_Monk
boa explicação .. Obrigado :)
Mrunal
Um bom depurador é seu melhor amigo. Verifique isto para depuração remota do iOS: stackoverflow.com/questions/7242997/…
JoshuaDavid
52

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

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

ATSiem
fonte
1
Grande coleção de documentação. Muito obrigado :)
Mrunal
29

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 .

Matt Wilding
fonte
5
+1 Grande ponto sobre o tamanho da comunidade.
David Tang
5
1 Excelente ponto na experiência do usuário. Isso realmente importa no iOS.
1
você também pode criar a mesma experiência do usuário no phonegap. Não creio que seja apenas uma questão de aprender o objetivo c. à medida que outros sistemas operacionais móveis se tornam populares: Androi agora, vamos ver o que acontece com o Windows Mobile e o Firefox OS ... a solução crossplatform será A solução se você quiser não se limitar à quota de mercado de x% que o iOS terá.
memical de
1
@memical, a equipe de desenvolvimento do Facebook discordaria de você, por exemplo. Não estou dizendo que não faz sentido do ponto de vista da cobertura de mercado, estou dizendo que não tem tanto desempenho quanto o nativo. Apesar do que você diz, isso é um fato.
Matt Wilding
4

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.

ghenne
fonte
O PhoneGap Build ainda está em beta um ano depois, mais de seis meses depois que a Adobe comprou o desenvolvedor original, Nitobi.
DOK de
2

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/

Muayyad Alsadi
fonte
na verdade, agora você pode criar jogos também
memical
1

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).

hotpaw2
fonte
0

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!

Steve
fonte