2011-11-08 29 views
13

Actualmente estoy creando un juego en phonegap usando el trabajo de marcos de jQuery Mobile. Lo que he terminado es un montón de código de espagueti con un html y varias clases de js.Estructuración de una aplicación móvil jQuery de PhoneGap

Me interesó saber si hay algunas buenas guías para crear una aplicación móvil jQuery estructurada que siga el patrón MVC.

Encontré un good guide para crear una aplicación MVC con Sencha Touch. Estaba buscando algo similar con jQuery Mobile.

Respuesta

19

tengo una bastante grande aplicación y así es como lo tengo estructurado

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 un lado para mi archivo index.html, todos los demás archivos .html s son stubs. Solo contienen el <div data-role='page'></div> y otros elementos html necesarios que definen la página y su funcionalidad prevista.

Desarrollo la aplicación en VS2010, usando Chrome como mi depurador. Cuando me siento bien con mi progreso, copio todo en mi mac a una carpeta en un proyecto de Eclipse (para dispositivos Android) que también es una referencia vinculada en mi proyecto xCode (para dispositivos iOS).

He estado trabajando en este proyecto durante aproximadamente 3-4 meses y una vez que supere la curva de aprendizaje de jQM y PhoneGap, he estado haciendo un buen progreso con esta estructura.

+0

Además, mencionaré, que nunca había planeado crear esta aplicación en una página (aunque podría haberlo hecho) simplemente porque sabía que sería más fácil trabajar con ella y realizar un seguimiento de si estaba dividida en archivos más pequeños. Originalmente tenía un archivo .js por separado para cada objeto individual (~ 18 objetos), pero encontré una ganancia de utilización de memoria (en cromo de todos modos) cuando combiné archivos. – Sage

+0

Uso casi la misma estructura y realmente funciona muy bien. Pero una vez que leí un comentario: "Cada página debería funcionar por sí misma, porque algún día definitivamente se llamará directamente". Es por eso que todas mis páginas son páginas html completas. – JNM

+0

¿Cómo maneja los parciales en sus páginas? Puede tener el mismo encabezado/pie de página que desea mostrar en cada página. ¿Es posible mantener solo una página HTML completa e incluir dinámicamente todos los demás contenidos a través de ajax con las funciones móviles estándar de jQuery? –

3

¿Has visto la entrada de la wiki?

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

y para ver algo de código a echar un vistazo @ Aplicación

la muestra usando jQuery Mobile y PhoneGap http://coenraets.org/blog/2011/10/sample-application-with-jquery-mobile-and-phonegap/

+0

Sí, los he examinado a ambos y son buenas guías para comenzar con jQuery Mobile. Pero cuando la aplicación es muy compleja, escribir toda la aplicación en un solo html y js no parece una buena opción. Me interesaba saber cómo escribir una aplicación más estructurada. es decir, dividir los Javascripts como modelos (con datos) y vistas (que alteran el DOM). – Nithin

+0

@Nithin: un marco como Durandal puede ayudar con la organización de su sitio más grande. Hace esto al permitirle usar la composición (el conjunto de bits lógicos de vistas, etc.). Esto significa que puede tener una estructura de carpeta similar a mvc en el lado del cliente y mantener las cosas manejables. –

Cuestiones relacionadas