Я создал пару приложений с использованием PhoneGap, и с учетом того, что он предоставляет, это здорово. Я хотел бы отметить несколько небольших замечаний, которые могут вам помочь.
Disable device-based features you're not using
Акселерометр, функции геолокации по умолчанию включены. Если вы их не используете, я бы отключил их, так как ваше приложение будет загружаться быстрее (инициализироваться) и работать более плавно.
onDeviceReady
- Это метод, который вызывается после загрузки и готовности телефонного разговора. $ (document) .ready или все, к чему вы привыкли, на самом деле здесь не применимо - если только вы не делаете только интерфейс / жестко закодированный HTML-материал. Если вы взаимодействуете с функциями iPhone, такими как GeoLocation, вам нужно будет сделать все после вызова onDeviceReady.
Pick a UI/library
Существует множество вариантов интерфейса / библиотек, jquery-mobile, sencha touch, jqtouch и т. Д. Каждый из них предлагает уникальный подход и набор функций. Проведите небольшое исследование и используйте один, но избегайте комбинирования. Вы можете прочитать о некоторых дополнительных опциях, инструментах здесь: http://www.phonegap.com/tool (ссылка обновлена)
Also, more on just mobile development in general, with PhoneGap
Если вы хотите создавать приложения, которые распространяются через Android Market и iPhone App Store, я бы прочитал их исчерпывающие списки, чтобы получить рекомендации по разработке вашего приложения. Например, в приведенной выше ссылке на инструменты есть «инструмент / плагин» под названием Easy APNS - хотя это полезно для Android - и технически выполнимо на iPhone, это нарушает соглашение о разработке, поскольку в нем говорится, что вы должны использовать уведомление Apple. сеть и т. д. Это всего лишь пример, но чтение этого материала избавит вас от многих головных болей, если это ваша конечная цель.
В общем, он отлично подходит для легких приложений, особенно если у вас есть опыт веб-разработки. LocalStorage, GeoLocation и т. Д. Работает очень хорошо. Надеюсь, это немного поможет ... и задавать вопросы.
Дополнительное редактирование:
Я действительно думаю, что все сводится к тому, что вы хотите делать и что вы умеете делать. Мэтт отметил, что разработка нативных приложений для iOS лучше и т. Д. Да, если у вас есть время и знания, чтобы научиться этому - конечно, нативные приложения будут лучше. Но PhoneGap создан для веб-разработчиков, которые могут использовать свой существующий набор навыков и создавать приложения. Кроме того, PhoneGap позволяет быстро создавать приложения для iOS, Android, Symbian, Palm, Blackberry. С небольшими изменениями в кодовой базе для каждого.
Вот все лучшие руководства по производительности, которые я читал для PhoneGap ... есть много чего опасаться, чтобы обеспечить надежную, стабильную производительность ... но вы можете получить все это всего за один вечер чтения.
Вот лучшие самородки:
Советы по производительности PhoneGap / Mobile Web
http://forum.jquery.com/topic/ontouch-instead-of-onclick-event
http://wiki.phonegap.com/w/page/16494809/Performance-tips-for-device/
ВИДЕО Советы по производительности для Sencha Touch: http://vimeo.com/17882927
Делегирование событий в Sencha Touch: как создавать списки с одним слушателем, а не по одному на каждой строке. http://www.sencha.com/blog/event-delegation-in-sencha-touch/
Включение новых функций
Архитектура
Создание архитектуры вашего приложения на Ext JS 4: http://www.sencha.com/learn/architecting-your-app-in-ext-js-4-part-2
источник
Прежде чем высказать свое мнение о Phonegap, мне нужно сделать небольшой отказ от ответственности, в котором говорится, что я ни в коем случае не являюсь веб-разработчиком. Для меня написание JavaScript и CSS похоже на вырывание зубов. Тем не менее, мне не нравится Phonegap.
Есть несколько очень привлекательных аспектов фреймворка, в основном апелляция «Запиши-раз-запусти-в любом случае» и «Мне-не-нужно-учиться-цель-С?». обращение. Платформа может даже предоставить вам доступ к некоторым аппаратным функциям, таким как акселерометр. Все это в определенной степени справедливо.
Тем не менее, ни одно из великих приложений для iOS не построено с использованием какой-либо кроссплатформенной структуры. Существует так много тонких и элегантных взаимодействий пользовательского интерфейса, которые обрабатываются за вас с помощью собственных элементов управления UIKit, которые многие пользователи и разработчики считают само собой разумеющимся, пока они не отсутствуют, например, множество невероятно подробных кривых анимации просмотра и отказов прокрутки, которых нет в пользовательском интерфейсе на основе веб-просмотра. Вы могли бы потрудиться, чтобы воспроизвести их идеально, но за это время почему бы просто не пойти на родной язык?
Второй момент, на который следует обратить внимание, это то, что сообщество поддержки приложений iOS, созданных с помощью Phonegap, значительно меньше, чем приложений, разработанных изначально. Если вы полагаетесь на сообщество во время проектов, это также должно заставить вас задуматься.
В конце концов, все сводится к качеству опыта, который вы хотите доставить. Верхняя граница ниже с Phonegap. Если вы готовы согласиться с менее чем отличным пользовательским интерфейсом в обмен на сокращение времени разработки и повышенную переносимость, то это очень жизнеспособный фреймворк.
В качестве подтекста для всех, кому интересно, Марко Армент и Дэн Бенджамин недавно обсуждали эту тему. Вы можете послушать это здесь .
источник
Процедура установки включает в себя ряд пакетов (Java, Apache Ant, Ruby, iOS SDK, Android SDK и сам PhoneGap), которые необходимо правильно установить и настроить. Это может потребовать больших усилий. Честно говоря, у них есть бета-версия под названием PhoneGap Build, которая должна сделать это намного проще.
Мы используем его с NS Basic / App Studio для создания приложений, подходящих для магазинов приложений.
источник
Если вы не делаете игры и не виджет, а просто красивое приложение, тогда телефонный разрыв - ваш выбор.
Но вы должны позаботиться о своем JS, избегать чего-либо в JS, например, если вы хотите делать какую-либо анимацию, избегайте установки таймера с небольшими интервалами (например, 100 мс), избегайте jquery и подобных анимаций. Например, вместо анимации затухания путем установки таймера с коротким периодом, уменьшающего непрозрачность в каждой точке шаг за шагом (так работает jquery fade), вы должны использовать переходы css3 от непрозрачности 1 к непрозрачности 0.
Мой совет - использовать что-то вроде zeptojs.com, в конце концов, телефонный разговор не будет запускать ie6 :-)
Посмотрите руководство о том, как сделать ваш JS более легким
http://bcksp.blogspot.com/
источник
Если вам не нужны какие-либо аппаратные функции или производительность, помимо того, что предоставляют HTML5 и Phonegap, инкапсулированное веб-приложение (плюс некоторый ограниченный доступ к другим функциям) - отличное решение.
Многие предприятия развертывают крупномасштабные веб-приложения. Phonegap (или простой элемент управления веб-представлением со встроенным контентом) позволит вам запускать эти веб-приложения в автономном режиме (за исключением, конечно, любых необходимых онлайн-данных).
источник
Одна «проблема», не упоминаемая при развертывании между несколькими различными устройствами: чем больше устройств, тем больше кривая обучения. Для развертывания на устройствах iOS с помощью PhoneGap вам необходимо изучить основы Xcode на Mac. Для развертывания на Android вам необходимо установить и изучить Eclipse, Android SDK и т. Д. Другие платформы требуют использования собственных SDK. Изучение элементарного Xcode, Javascript и Java помогает мне понимать ошибки и общий синтаксис.
«Создавай один раз, развертывай везде» оставляет МНОГО шагов!
источник