Использование Phonegap для разработки собственных приложений [закрыто]

97

Недавно я наткнулся на Phonegap . Кто-нибудь из вас пробовал это. Это невероятный инструмент, который утверждает, что разработчики могут использовать фреймворк на основе HTML 5, такой как Sencha touch и Jquery, одновременно имея доступ к встроенным функциям на телефоне. Также код переносится с Android на Iphone с некоторыми усилиями. Прежде чем я окунусь в это, я хочу знать, какой опыт форума с Phonegap. Каковы болевые точки и действительно ли он масштабируется для разработки приложений корпоративного уровня.

SaKet
источник

Ответы:

95

Я создал пару приложений с использованием 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. С небольшими изменениями в кодовой базе для каждого.

TNC
источник
2
Похоже, что по Phonegap разработчики разделились.
SaKet 02
8
Если, в конце концов, у вас есть время и деньги, чтобы изучить разные языки для создания собственных приложений для Android и iOS - тогда непременно сделайте это :) Но для большинства из нас, используя то, что мы знаем, для создания приложений, которые работают действительно хорошо на нескольких устройствах, ежу понятно.
TNC
easyapns предназначен только для уведомлений iPhone (не Android) и использует сеть уведомлений Apple, не знаю, откуда вы взяли, что это нарушает соглашение разработчика ..
Traveling_Monk
хорошее объяснение .. Спасибо :)
Mrunal 03
Хороший отладчик - ваш лучший друг. Проверьте это для удаленной отладки iOS: stackoverflow.com/questions/7242997/…
JoshuaDavid
52

Вот все лучшие руководства по производительности, которые я читал для PhoneGap ... есть много чего опасаться, чтобы обеспечить надежную, стабильную производительность ... но вы можете получить все это всего за один вечер чтения.

Вот лучшие самородки:

Советы по производительности PhoneGap / Mobile Web

Включение новых функций

Архитектура

Создание архитектуры вашего приложения на Ext JS 4: http://www.sencha.com/learn/architecting-your-app-in-ext-js-4-part-2

ATSiem
источник
1
Отличная коллекция документации .. Действительно полезное спасибо :)
Mrunal
29

Прежде чем высказать свое мнение о Phonegap, мне нужно сделать небольшой отказ от ответственности, в котором говорится, что я ни в коем случае не являюсь веб-разработчиком. Для меня написание JavaScript и CSS похоже на вырывание зубов. Тем не менее, мне не нравится Phonegap.

Есть несколько очень привлекательных аспектов фреймворка, в основном апелляция «Запиши-раз-запусти-в любом случае» и «Мне-не-нужно-учиться-цель-С?». обращение. Платформа может даже предоставить вам доступ к некоторым аппаратным функциям, таким как акселерометр. Все это в определенной степени справедливо.

Тем не менее, ни одно из великих приложений для iOS не построено с использованием какой-либо кроссплатформенной структуры. Существует так много тонких и элегантных взаимодействий пользовательского интерфейса, которые обрабатываются за вас с помощью собственных элементов управления UIKit, которые многие пользователи и разработчики считают само собой разумеющимся, пока они не отсутствуют, например, множество невероятно подробных кривых анимации просмотра и отказов прокрутки, которых нет в пользовательском интерфейсе на основе веб-просмотра. Вы могли бы потрудиться, чтобы воспроизвести их идеально, но за это время почему бы просто не пойти на родной язык?

Второй момент, на который следует обратить внимание, это то, что сообщество поддержки приложений iOS, созданных с помощью Phonegap, значительно меньше, чем приложений, разработанных изначально. Если вы полагаетесь на сообщество во время проектов, это также должно заставить вас задуматься.

В конце концов, все сводится к качеству опыта, который вы хотите доставить. Верхняя граница ниже с Phonegap. Если вы готовы согласиться с менее чем отличным пользовательским интерфейсом в обмен на сокращение времени разработки и повышенную переносимость, то это очень жизнеспособный фреймворк.

В качестве подтекста для всех, кому интересно, Марко Армент и Дэн Бенджамин недавно обсуждали эту тему. Вы можете послушать это здесь .

Мэтт Уилдинг
источник
5
+1 Замечательный пункт о размере сообщества.
Дэвид Тан
5
+1 Отличный отзыв о пользовательском опыте. Это действительно важно в iOS.
1
вы также можете создать такой же пользовательский опыт и в телефонном разговоре. Я не думаю, что это просто вопрос изучения цели c. по мере того, как становятся популярными другие мобильные ОС: Androi, давайте посмотрим, что произойдет с Windows Mobile и Firefox OS ... кроссплатформенное решение будет ЭТОМ решением, если вы не хотите быть ограниченными x% доли рынка, которую тогда будет иметь iOS.
мемический
1
@memical, например, команда разработчиков Facebook не согласится с вами. Я не говорю, что это не имеет смысла с точки зрения охвата рынка, я говорю, что это не так эффективно, как нативное. Несмотря на то, что вы говорите, это факт.
Мэтт Уилдинг,
4

Процедура установки включает в себя ряд пакетов (Java, Apache Ant, Ruby, iOS SDK, Android SDK и сам PhoneGap), которые необходимо правильно установить и настроить. Это может потребовать больших усилий. Честно говоря, у них есть бета-версия под названием PhoneGap Build, которая должна сделать это намного проще.

Мы используем его с NS Basic / App Studio для создания приложений, подходящих для магазинов приложений.

Ghenne
источник
PhoneGap Build все еще находится в стадии бета-тестирования год спустя, более чем через шесть месяцев после того, как Adobe купила первоначального разработчика, Nitobi.
DOK
2

Если вы не делаете игры и не виджет, а просто красивое приложение, тогда телефонный разрыв - ваш выбор.

Но вы должны позаботиться о своем JS, избегать чего-либо в JS, например, если вы хотите делать какую-либо анимацию, избегайте установки таймера с небольшими интервалами (например, 100 мс), избегайте jquery и подобных анимаций. Например, вместо анимации затухания путем установки таймера с коротким периодом, уменьшающего непрозрачность в каждой точке шаг за шагом (так работает jquery fade), вы должны использовать переходы css3 от непрозрачности 1 к непрозрачности 0.

Мой совет - использовать что-то вроде zeptojs.com, в конце концов, телефонный разговор не будет запускать ie6 :-)

Посмотрите руководство о том, как сделать ваш JS более легким

http://bcksp.blogspot.com/

Муайяд Альсади
источник
на самом деле теперь вы также можете создавать игры
memical
1

Если вам не нужны какие-либо аппаратные функции или производительность, помимо того, что предоставляют HTML5 и Phonegap, инкапсулированное веб-приложение (плюс некоторый ограниченный доступ к другим функциям) - отличное решение.

Многие предприятия развертывают крупномасштабные веб-приложения. Phonegap (или простой элемент управления веб-представлением со встроенным контентом) позволит вам запускать эти веб-приложения в автономном режиме (за исключением, конечно, любых необходимых онлайн-данных).

hotpaw2
источник
0

Одна «проблема», не упоминаемая при развертывании между несколькими различными устройствами: чем больше устройств, тем больше кривая обучения. Для развертывания на устройствах iOS с помощью PhoneGap вам необходимо изучить основы Xcode на Mac. Для развертывания на Android вам необходимо установить и изучить Eclipse, Android SDK и т. Д. Другие платформы требуют использования собственных SDK. Изучение элементарного Xcode, Javascript и Java помогает мне понимать ошибки и общий синтаксис.

«Создавай один раз, развертывай везде» оставляет МНОГО шагов!

Стив
источник