Utilizzo di Phonegap per lo sviluppo di applicazioni native [chiuso]


97

Recentemente mi sono imbattuto in Phonegap . Qualcuno di voi l'ha provato. È uno strumento incredibile che afferma che gli sviluppatori possono utilizzare framework basato su HTML 5 come Sencha touch e Jquery allo stesso tempo avendo accesso alle funzionalità native sul telefono. Inoltre il codice è portatile da Android a Iphone con un certo sforzo. Prima di immergermi, voglio sapere qual è l'esperienza del forum con Phonegap. Quali sono i punti deboli ed è davvero scalabile per lo sviluppo di applicazioni a livello aziendale.

Risposte:


95

Ho creato un paio di applicazioni utilizzando PhoneGap e, per quello che fornisce, è fantastico. Ci sono un paio di brevi note che vorrei sottolineare, che potrebbero aiutarti.

Disable device-based features you're not using L'accelerometro e le funzioni di geolocalizzazione sono attivate per impostazione predefinita. Se non li usi, li disattiverò, poiché la tua app verrà caricata più velocemente (inizializzata) e funzionerà in modo più fluido.

onDeviceReady- Questo è il metodo che viene chiamato una volta che phonegap è stato caricato ed è pronto. $ (documento) .ready o qualunque cosa a cui sei abituato, non si applica qui, a meno che tu non stia solo facendo cose HTML hard-coded di interfaccia. Se stai interagendo con le funzionalità di iPhone, come GeoLocation, dovrai fare tutto dopo che onDeviceReady è stato chiamato.

Pick a UI/library Ci sono un sacco di opzioni per l'interfaccia / librerie, jquery-mobile, sencha touch, jqtouch, ecc. Ognuna offre un approccio unico e un set di funzionalità. Fai qualche ricerca e usane uno, ma evita di combinare. Puoi leggere altre opzioni, strumenti qui: http://www.phonegap.com/tool (collegamento aggiornato)

Also, more on just mobile development in general, with PhoneGapSe stai cercando di creare app distribuite attraverso il mercato Android e l'App Store di iPhone, leggerei i loro elenchi esaustivi per le linee guida su come sviluppare la tua app. Ad esempio, nel collegamento strumenti sopra, c'è uno "strumento / plugin" chiamato Easy APNS - mentre questo è utile per Android - e tecnicamente fattibile su iPhone, viola l'accordo di sviluppo, in quanto afferma che devi usare la notifica Apple rete, ecc. Questo è solo un esempio, ma leggere su quella roba ti farà risparmiare un sacco di mal di testa, se questo è il tuo obiettivo finale.

Tutto sommato, è ottimo per app leggere, soprattutto se provieni da un background di sviluppo web. LocalStorage, GeoLocation, ecc. Funziona davvero bene. Spero che questo aiuti un po '... e mi sento di fare domande.

Modifica aggiuntiva:

Penso davvero che dipenda da quello che vuoi fare e da quello che sai come fare. Matt ha sottolineato che lo sviluppo di app native, per iOS è migliore, ecc. Sì, se hai il tempo e le conoscenze per impararlo, ovviamente nativo sarà migliore. Ma PhoneGap è fatto per gli sviluppatori web che possono utilizzare il loro set di competenze esistente e creare app. Inoltre, PhoneGap ti consente di creare app rapidamente, per iOS, Android, Symbian, Palm, Blackberry. Con piccole modifiche al codice base per ciascuno.


2
Sembra che gli sviluppatori siano divisi su Phonegap.
SaKet

8
Se alla fine della giornata, hai tempo e denaro per imparare le diverse lingue per creare app native per Android e iOS, allora fallo assolutamente :) Ma per la maggior parte di noi, usando ciò che sappiamo per creare app che funzionano molto bene su più dispositivi, è un gioco da ragazzi.
TNC

easyapns è solo per le notifiche di iPhone (non Android) e utilizza la rete di notifiche Apple, non sai da dove ti viene l'idea che infrange l'accordo con lo sviluppatore ..
Travelling_Monk

bella spiegazione .. Grazie :)
Mrunal

Un buon debugger è il tuo migliore amico. Dai un'occhiata a questo a iOS debug remoto: stackoverflow.com/questions/7242997/...
JoshuaDavid

52

Ecco tutte le migliori guide sulle prestazioni che ho letto per PhoneGap ... c'è molto da diffidare per assicurarti di avere prestazioni solide e stabili ... ma puoi raccogliere tutto in una sola sera di lettura.

Ecco le migliori pepite:

PhoneGap / Suggerimenti sulle prestazioni del Web mobile

Abilitazione di nuove funzioni

Architettura

Progettazione della tua app in Ext JS 4: http://www.sencha.com/learn/architecting-your-app-in-ext-js-4-part-2


1
Grande raccolta di documentazione .. Grazie davvero utili :)
Mrunal

29

Prima di esprimere la mia opinione su Phonegap, devo rilasciare un piccolo disclaimer dicendo che non sono, in alcun modo, uno sviluppatore web. Per me, scrivere JavaScript e CSS è come tirare i denti. Detto questo, non mi piace Phonegap.

Ci sono alcuni aspetti molto interessanti del framework, principalmente l'appello "Write-Once-Run-Anywere" e il "I-Don't-Have-To-Learn-Object-C?" appello. Il framework può persino darti accesso ad alcune delle funzionalità hardware come l'accelerometro. Tutti questi sono validi, in una certa misura.

Detto questo, nessuna delle fantastiche app iOS è costruita utilizzando alcun tipo di framework multipiattaforma. Ci sono così tante interazioni dell'interfaccia utente sottili ed eleganti che vengono gestite per te dai controlli UIKit nativi che molti utenti e sviluppatori danno per scontati finché non mancano, come la sfilza di curve di animazione della vista incredibilmente dettagliate e rimbalzi di scorrimento che non ci sono nell'interfaccia utente basata sulla visualizzazione Web. Potresti sforzarti di riprodurli perfettamente, ma per questo investimento di tempo, perché non diventare nativo?

Un secondo punto da notare è che la comunità di supporto per le applicazioni iOS costruite da Phonegap è drasticamente più piccola delle applicazioni sviluppate in modo nativo. Se vuoi fare affidamento sulla comunità durante i progetti, anche questo dovrebbe darti una pausa.

Alla fine si tratta della qualità dell'esperienza che vuoi offrire. Il limite superiore è inferiore con Phonegap. Se sei pronto ad accettare un'esperienza utente non eccellente in cambio di tempi di sviluppo ridotti e maggiore portabilità, allora si tratta di un framework molto praticabile.

Come sottotesto per chiunque sia interessato, Marco Arment e Dan Benjamin hanno recentemente discusso questo argomento. Puoi ascoltarlo qui .


5
+1 Ottimo punto sulle dimensioni della comunità.
David Tang

5
+1 Ottimo punto sull'esperienza utente. È davvero importante in iOS.

1
puoi creare la stessa esperienza utente anche in phonegap. Non credo sia solo questione di apprendimento obiettivo c. mentre altri sistemi operativi mobili diventano popolari: Androi ora, vediamo cosa succede a Windows Mobile e Firefox OS ... la soluzione multipiattaforma sarà LA soluzione se non vuoi essere limitato alla quota di mercato x% che iOS avrà allora.
memical

1
@memical, il team di sviluppo di Facebook non sarebbe d'accordo con te, per esempio. Non sto dicendo che non ha senso dal punto di vista della copertura del mercato, sto dicendo che non è performante come il nativo. Nonostante quello che dici, è un dato di fatto.
Matt Wilding

4

La procedura di installazione prevede una serie di pacchetti (Java, Apache Ant, Ruby, iOS SDK, Android SDK e lo stesso PhoneGap), che devono essere installati e configurati correttamente. Questo può essere un grande sforzo. Per essere onesti, hanno qualcosa chiamato PhoneGap Build in beta che dovrebbe renderlo molto più semplice.

Lo usiamo con NS Basic / App Studio per produrre app idonee per gli app store.


PhoneGap Build è ancora in beta un anno dopo, più di sei mesi dopo che Adobe ha acquistato lo sviluppatore originale, Nitobi.
DOK

2

se non stai creando un gioco o un widget, solo un'app di bell'aspetto, allora phonegap è la tua scelta.

Ma dovresti fare attenzione con il tuo JS, evitare di fare qualsiasi cosa in JS ad esempio se vuoi fare qualsiasi animazione evita di impostare un timer con piccoli intervalli (es. 100 ms), evita jquery e animazioni simili. Ad esempio, invece di animare la dissolvenza impostando un timer a breve termine che diminuisce l'opacità in ogni punto passo dopo passo (questo è il modo in cui funziona jquery fade), dovresti usare le transizioni css3 da opacità 1 a opacità 0.

Il mio consiglio è di andare con qualcosa come zeptojs.com, dopotutto phonegap non funzionerà ie6 :-)

Guarda alcuni tutorial su come rendere il tuo JS più leggero

http://bcksp.blogspot.com/


in realtà ora puoi anche creare giochi
memico

1

Se non hai bisogno di nessuna delle funzionalità hardware o delle prestazioni oltre a quelle fornite da HTML5 e Phonegap, un'app web incapsulata (oltre ad un accesso limitato ad altre funzionalità) è un'ottima soluzione.

Molte aziende distribuiscono app Web su larga scala. Phonegap (o solo un semplice controllo della visualizzazione Web con contenuto incorporato) ti consentirà di eseguire queste app Web offline (ad eccezione, ovviamente, di eventuali dati online richiesti).


0

Un "problema" non menzionato durante la distribuzione tra diversi dispositivi diversi: più dispositivi, maggiore è la curva di apprendimento. Per distribuire su dispositivi iOS con PhoneGap, dovrai imparare le basi di Xcode su un Mac. Per eseguire la distribuzione su Android, è necessario installare e apprendere Eclipse, Android SDK, ecc. Le altre piattaforme richiedono l'utilizzo dei propri SDK. Imparare alcuni rudimentali Xcode, Javascript e Java mi aiuta a capire gli errori e la sintassi generale.

"Crea una volta, distribuisci ovunque" esclude molti passaggi!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.