2011-11-08 18 views
13

Attualmente sto sviluppando un gioco in PhoneGap utilizzando il lavoro con frame jQuery Mobile. Quello che ho finito è un sacco di codice spaghetti con un html e diverse classi js.Strutturazione di un'applicazione PhoneGap jQuery Mobile

Mi interessava sapere se esistono buone guide per creare un'applicazione jQuery Mobile strutturata che segua lo schema MVC.

Ho trovato un good guide per la creazione di un'app MVC con Sencha Touch. Stavo cercando qualcosa di simile con jQuery Mobile.

risposta

19

ho una piuttosto grande applicazione e questo è come ce l'ho strutturato

css 
    -- all css files 
images 
    -- all image files 
js 
    controller.js -- page events and element actions. Also contains PhoneGap specific methods 
    core 
     forms.js -- working with forms, saving info 
     mobile.js -- basic definitions, AJAX communications 
     encrypt.js -- encryption 
     global.js -- helper functions 
     storage.js -- database storage wrapper 
    cw 
     client.js -- a client object, > 400 lines of js code 
     Objects.js -- all other needed objects with <50 lines of js code each 
     question.js -- a question object, > 500 lines of js code 
     service.js -- a service object, > 700 lines of js code 
    jq 
     jquery-ui.min.js 
     jquery.min.js 
     jquery.mobile.min.js 
     phonegap-1.1.0.js 

add_client.html 
clients.html 
client_list.html 
index.html   -- the only file that is structured like a real full html file 
manager.html 
schedule.html 
service.html 

a parte per il mio file index.html, tutti gli altri file .html s sono mozziconi. Contengono solo lo <div data-role='page'></div> e altri elementi html necessari che definiscono la pagina e le funzionalità previste.

Sviluppo l'app su VS2010, utilizzando Chrome come mio debugger. Quando mi sento bene con i miei progressi, copio tutto sul mio mac in una cartella in un progetto Eclipse (per dispositivi Android) che è anche un riferimento collegato nel mio progetto xCode (per dispositivi iOS).

Ho lavorato a questo progetto per circa 3-4 mesi e, una volta superata la curva di apprendimento di jQM e PhoneGap, ho realizzato ottimi progressi con questa struttura.

+0

Inoltre, menzionerò, che non avevo mai pianificato di creare questa app in una pagina (anche se avrei potuto) semplicemente perché sapevo che sarebbe stato più facile lavorare e tenerne traccia se fosse stata suddivisa in file più piccoli. Originariamente avevo un file .js separato per ogni singolo oggetto (~ 18 oggetti), ma ho trovato un guadagno nell'utilizzo della memoria (in chrome comunque) quando ho combinato i file. – Sage

+0

Uso quasi la stessa struttura e funziona davvero alla grande. Ma una volta ho letto un commento: "Ogni pagina dovrebbe funzionare da sola, perché un giorno verrà chiamata direttamente". Ecco perché tutte le mie pagine sono pagine html complete. – JNM

+0

Come gestite i partial sulle vostre pagine? Potresti avere la stessa intestazione/piè di pagina che vuoi mostrare su ogni pagina. È possibile mantenere solo una pagina HTML completa e includere dinamicamente tutti gli altri contenuti tramite ajax con le funzioni standard di jQuery mobile? –

3

Hai visto la voce wiki?

http://wiki.phonegap.com/w/page/36868306/UI%20Development%20using%20jQueryMobile#GettingstartedwithJQueryMobile

e per vedere un po 'di codice di uno sguardo @

Esempio Applicazione che utilizza jQuery Mobile e PhoneGap http://coenraets.org/blog/2011/10/sample-application-with-jquery-mobile-and-phonegap/

+0

Sì, ho esaminato entrambi e sono ottime guide per iniziare con jQuery Mobile. Ma quando l'applicazione è molto complessa, scrivere l'intera applicazione in un singolo html e js non sembra una buona opzione. Mi interessava sapere come scrivere un'applicazione più strutturata. cioè per dividere i Javascripts come modelli (con dati) e viste (che alterano il DOM). – Nithin

+0

@Nithin: un framework come Durandal può aiutare con l'organizzazione del tuo sito più grande. Lo fa consentendo di utilizzare la composizione (l'assemblaggio di parti logiche di viste, ecc.). Ciò significa che puoi avere una struttura di cartelle simile a mvc clientide e mantenere le cose gestibili. –

Problemi correlati