Структурирование мобильного приложения PhoneGap jQuery

#javascript #jquery-mobile #cordova

#javascript #jquery-мобильный #кордова

Вопрос:

В настоящее время я создаю игру в phonegap, используя фреймворк jQuery Mobile. В итоге я получил множество спагетти-кода с одним html и несколькими js-классами.

Мне было интересно узнать, есть ли какие-либо хорошие руководства по созданию структурированного мобильного приложения jQuery, которое следует шаблону MVC.

Я нашел хорошее руководство по созданию MVC-приложения с помощью Sencha Touch. Я искал что-то подобное с jQuery Mobile.

Ответ №1:

У меня довольно большое приложение, и вот как я его структурировал

 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
  

в сторону для моего index.html файл, все остальные html-файлы являются заглушками. Они содержат только <div data-role='page'></div> и другие необходимые html-элементы, которые определяют страницу и ее предполагаемую функциональность.

Я разрабатываю приложение на VS2010, используя Chrome в качестве отладчика. Когда я доволен своим прогрессом, я копирую все на свой Mac в папку в проекте Eclipse (для устройств Android), которая также является связанной ссылкой в моем проекте xCode (для устройств iOS).

Я работаю над этим проектом уже около 3-4 месяцев, и как только я преодолел кривую обучения jQM и PhoneGap, я добился очень хорошего прогресса в этой структуре.

Комментарии:

1. Также я упомяну, что я никогда не планировал объединять это приложение в одну страницу (хотя мог бы) просто потому, что знал, что с ним было бы легче работать и отслеживать, если бы оно было разбито на файлы меньшего размера. Изначально у меня был отдельный файл .js для каждого отдельного объекта (~ 18 объектов), но при объединении файлов я обнаружил увеличение использования памяти (во всяком случае, в Chrome).

2. Я использую почти ту же структуру, и она действительно отлично работает. Но однажды я прочитал комментарий: «Каждая страница должна работать сама по себе, потому что когда-нибудь ее обязательно вызовут напрямую». Вот почему все мои страницы являются полными HTML-страницами.

3. Как вы обрабатываете фрагменты на своих страницах? У вас может быть один и тот же верхний / колонтитул, который вы хотите показывать на каждой странице. Возможно ли сохранить только одну полную HTML-страницу и динамически включать все остальное содержимое через ajax со стандартными функциями jQuery mobile?

4. Это отличный вопрос, на который мы с Мичом пока не нашли ответа (хотя я уверен, что его можно было бы создать). На данный момент заголовки всех наших страниц в основном отличаются, поскольку здесь мы размещаем инструменты значки, относящиеся к конкретной странице. Нижние колонтитулы почти всех наших страниц в значительной степени статичны. Конечно, мы на самом деле не добавляем новые значки в наш нижний колонтитул, поэтому управление нижним колонтитулом было нулевым уже более 2 лет.

Ответ №2:

Вы видели запись в вики?

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

и чтобы увидеть некоторый код, взгляните @

Пример приложения, использующего jQuery Mobile и PhoneGap http://coenraets.org/blog/2011/10/sample-application-with-jquery-mobile-and-phonegap

Комментарии:

1. Да, я прошел через оба из них, и они являются хорошими руководствами для начала работы с jQuery Mobile. Но когда приложение очень сложное, написание всего приложения в одном html и js не кажется хорошим вариантом. Мне было интересно узнать, как написать более структурированное приложение. т.е. разделить Javascripts как модели (с данными) и представления (которые изменяют DOM).

2. @Nithin: фреймворк, такой как Durandal, может помочь с организацией вашего более крупного сайта. Он делает это, позволяя вам использовать композицию (сборку логических фрагментов представлений и т.д.). Это означает, что вы можете использовать структуру папок, подобную mvc, на стороне клиента и поддерживать управляемость.