Борьба между родной и phonegap, простые требования к приложению


Я собираюсь сделать родной (смысл; не в браузере) мобильное приложение. Поскольку я веб-разработчик, я изо всех сил пытаюсь решить, следует ли мне попробовать Phonegap или просто создать собственное приложение на java или objective-c.

требования к приложению просты. GPS / wifi местоположение, интеграция с Facebook, и я думаю, мне понадобится база данных для обработки некоторых конкретных приложений Facebook-friend relations. Как рекорды в игре, например-такие вещи, как что.

Я веб-разработчик, и пока не знаю ни java, ни objective-C. Я никогда раньше не использовал Phonegap, поэтому я не знаю, способен ли он выполнить мои требования.

Итак, мой вопрос заключается в следующем; Могу ли я использовать Phonegap для своего приложения или мне нужно погрузиться в новый язык?

10 75

10 ответов:

по теме:

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

гибридные и родные приложения

гибридные приложения:

Pro:

  • более быстрое развитие, особенно если вы являетесь давним веб-разработчиком.
  • 1 язык можно использовать на каждой доступной платформе. Это, конечно, требует обертки Phonegap. Вы не необходимо изучить Objective C, Java или C# для выполнения любой разработки. Вам нужно только понять основы реализации Phonegap. Вам нужно будет немного поиграть с вышеупомянутыми языками, но вам не нужно их понимать.
  • Phonegap может предложить некоторые собственные возможности, такие как iOS native tab bar или Android native tab bar и многое другое.
  • снижение бюджетных расходов и огромное сообщество сторонников и разработчиков.
  • гибридное приложение предлагает многие из преимущества обоих подходов доступ к наиболее распространенным API-интерфейсам устройств и широкий охват устройств, не требуя специальных навыков, больших бюджетов и более длительного времени на рынок, которые более типичны для полностью родных приложений.

плюсы:

  • вы будете мочиться кровью через некоторое время, буквально и метафорически.
  • мобильные телефоны (даже сегодняшние планшеты) недостаточно быстры, чтобы плавно запускать гибридное приложение, Мобильный JavaScript возможности кровати в лучшем случае. Платформа Android-это кошмар, переходы страниц не работают гладко, не говоря уже об отсутствии реализации CSS/CSS3. Если вы думаете, родной Android 2.X и 4.X есть различия взгляните на Android 2.X плохая реализация JavaScript / CSS. iOS тарифы лучше, но все еще имеет недостающую реализацию CSS3 ты гораздо лучше страницы переходы. Чтобы сделать это короткое родное приложение всегда будет иметь лучший пользовательский опыт и общее чувство.
  • вы потратите много больше времени на исправление приложения, а затем его создание. Создание приложений для каждой платформы-это боль в шее. Браузеры на разных платформах не всегда поддерживают все последние функции HTML и API, что может сделать разработку и тестирование сложной задачей.
  • если у вас нет хорошего дизайнера, даже не пытайтесь создать приложение; выглядит все.
  • если вы не знаете, что вы делаете, есть хороший шанс, что ваше приложение не получит разрешения для Apple app store. Даже магазин Google забанит ваш приложения, если они обнаруживают, что 3-й партии по PhoneGap плагин платежной системы PayPal.

приложения:

Pro:

  • родное мобильное приложение может обеспечить лучший пользовательский интерфейс-быстрый и гибкий, может дать вам лучший доступ к функциям устройства и может быть обнаружен в магазинах приложений.
  • без сомнения, нативные приложения имеют полный доступ к базовой мобильной платформе. Родные приложения, как правило, очень быстро и полированный, что делает их отлично подходит для высокопроизводительных приложений или игр. Этого более чем достаточно.

плюсы:

  • больший бюджет, вам понадобится по крайней мере человек/ы с Java и объективными знаниями C, даже C#, если вы хотите приложение для Windows mobile. Да, вы можете научиться этому сами, но не живите под иллюзией, что вы сделаете это за короткое время. Если вы никогда не делали никаких разработок, выберите Objective C (iOS все еще лучше платформа.) в других случаях выберите Java. Java имеет синтаксис, подобный другим доступным языкам, поэтому легко перейти от C# к Java и наоборот. Цель С-это собственный мир. Он имеет довольно необычный синтаксис.
  • это может занять у вас больше времени, чтобы разработать все из них, и время-это деньги. Это зависит от сложности приложения.

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

гибридные приложения

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

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

есть одна последняя вещь, при создании гибридных приложений, разработка приложений займет у вас около 30% -50% вашего времени, остальное идет на конкретную отладку платформы и обучение. Поверьте, даже после нескольких лет мобильной разработки иногда я сталкиваюсь проблемы, которые я не могу решить в одиночку или достаточно быстро.

ссылки

вот несколько ссылок, которые помогут вам решить:

PhoneGap + jQuery Mobile 1.4 tutorial - это пошаговое руководство для PhoneGap и последней версии jQuery Mobile

PhoneGap + jQuery Mobile 1.4 учебник-MacOS версия - это пошаговое руководство для развертывания PhoneGap на MacOS. jQuery мобильная часть рассматривается в предыдущей статье, нет смысла повторять вещи.

jQuery Mobile vs Sencha Touch - jQuery Mobile Sencha Touch сравнение

jQuery Mobile vs Kendo UI - jQuery Mobile Kendo UI сравнение

7 самых известных мобильных фреймворков HTML5 - Имя говорит все

7 менее известных мобильных фреймворков HTML5 - название говорит все

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

даже если вы разрабатываете в webview (Phonegap) вам нужно узнать некоторые основные шаги в Android и iOS

как Phonegap работает в устройствах

Ios Этот анимация и просмотр загрузки в ios webview является многожильным и хорошим, анимационные эффекты могут наблюдатель четко

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

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

в последний раз я смотрел в него PhoneGap был весь html,css и javascript. Таким образом, вы можете чувствовать себя как дома. PhoneGap может обрабатывать местоположение GPS, см. эта статья из документации PhoneGap. хотите ли вы забрать Objective C, будет зависеть от того, как быстро вы подбираете новые языки, поскольку это немного отходит от веб-разработки.

это полностью зависит от ваших потребностей

после публикации моего первого приложения несколько месяцев (родной Android, управляемый базой данных, restful connecting app), я решил переписать свое приложение с помощью phonegap (так как я хочу клонировать приложение на iOS, поэтому вместо того, чтобы делать это в ObjC, почему бы не javascript ?)

когда на Android, это стоило мне, разработчик Java, 3 недели, чтобы узнать и кодировать все с нуля. Ударившись головой о стену несколько раз, как сделать синхронизацию ListAdapter с помощью Restful Service с моего сервера, как тема приложения (довольно сложно, на мой взгляд, особенно когда речь заходит о специальных эффектах, таких как прозрачный, граница,...), а также, как эффективно структурировать свою базу кода (если вы знакомы с Java, вы обнаружите, что все классы очень связаны друг с другом, так как именно об этом пишут большинство учебников)

когда на Phonegap, все делается в течение 1 недели. Css, html, с onsenui и angular сделать графический интерфейс разработка так же, как и задание студента 1-го курса, и тематизация-это просто кусок пирога. Мне не нужно запускать его на реальном устройстве, просто используйте браузер во время разработки, измените код и обновите его. Angular обеспечивает привязку 2 путей с DOM, и это делает огромную удивительность собирая и показывая данные. Например:

<ul ng-each="for sentence in sentences" >
   <li>{{ sentence.title }} </li>
</ul>

если переменная sentences изменяется (извлекается из сервера), DOM также автоматически изменяется. Однако javascript-это только javascript. Я обнаружил, что много раз борюсь при отладке приложения, особенно при выполнении функций MapReduce с помощью PouchDB (большая ошибка, нужно вернуться к cordova-sqlite-plugin сегодня вечером) и большую часть времени я должен прочитать журнал, чтобы выяснить проблему (инструменты Chrome и Firebug не могут поймать точку останова). Кроме того, трудно реструктурировать ваше приложение (javascript, снова), поэтому, если вы не организуете тщательно свою базу кода при первом знаке, вы можете столкнуться с беспорядком (и отладка-это настоящая боль, опять же). PhoneGap также основан на интернете, поэтому иногда вы услышите, что "потому что на этой платформе он не поддерживает это bla bla bla" (например,localStorage) и вы должны стоять за это, если вы не можете найти хороший плагин.

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

проверьте с помощью ионных, опираясь на угловой.js, чтобы компенсировать некоторые из минусов, упомянутых в принятом ответе. Учебник по запуску приложения каталога сотрудников: http://coenraets.org/blog/2014/02/sample-mobile-application-with-ionic-and-angularjs/

@Gajotres написал отличный ответ, но производительность гибридного приложения прошла долгий путь с 2012 года. Я ответил вопрос это покрывает разницу между гибридной и родной разработкой приложений в 2017 году.

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

С такими инструментами, как Ionic (впервые выпущен в ) и реагировать Родной (впервые выпущен в 2015) проще, чем когда-либо, создавать гибридные приложения с нативными компонентами. Гибридные приложения теперь быстрее, менее багги и способны более глубоко взаимодействовать с собственным пользовательским интерфейсом.

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

Оригинальный Ответ:

да, общее мнение заключается в том, что гибридные приложения уступают родным приложения. Хотя это может быть неприятно для разработчиков, знакомых с веб-технологии, это происходит по уважительной причине:

  1. невозможность взаимодействия с собственными компонентами: хотя плагины, такие как cordova-plugin-statusbar существуют, есть ограничения взаимодействие с собственными компонентами и управление ими с помощью web технологии. Одна большая (и разочаровывающая) проблема, которую я лично запустил в это невозможность иметь вход в верхней части клавиатуры, как клавиатура анимируется. Это звучит как снята с повестки дня, пока вы не смотрите в приложении, где это является важной функцией, например, в приложении чата как Слэк.
  2. 300мс задержки: хотя современные браузеры начинают фаза это вон, доля секунды задержки, присутствующая в гибридных приложениях, делает приложение чувствуйте себя медленным и неродным. Эта проблема становится все менее важным фактором, как больше пользователей принимают обходные пути, такие как FastClick.js и некоторые фреймворки, такие как ионных устранить это по умолчанию.
  3. ненавистники правы (вроде): в то время как гибридная разработка приложений прошла долгий путь, есть еще незначительные глюки и лаги функции, которые просто не присутствуют в родном приложении. Экран переходы, переключение приложений и время автономной работы по-прежнему являются общими областями для ошибок появится и, вероятно, будет в течение некоторого времени, даже если они начинает становиться менее и менее заметным.
  4. есть некоторые большие родные решения: С новыми языками, такими как Apple Свифт становится легче код на родном языке. Это, как говорится, инструменты, такие как реагировать Уроженца попадаем в серый область между собственным и гибридным, позволяя разработчикам кодировать в дружественные технологии, такие как JavaScript, но компилируются в машинный код.

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

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

есть также стероиды AppGyver, которые очень хорошо объединяют PhoneGap и родной пользовательский интерфейс.

с стероидами вы можете добавить такие вещи, как родные вкладки, родная панель навигации, родные анимации и переходы, родные модальные окна, родной ящик/панель (боковое меню Facebook) и т. д. к вашему приложению PhoneGap. В принципе, везде, где CSS + JS не режут его, стероиды достигают собственного слоя для выполнения действия.

также, с стероидами, вы можете (хотя вы не должны) использовать мульти-страницу архитектура (несколько веб-просмотров), а не один. С одностраничными приложениями все такие вещи, как переходы, - это просто обходные пути CSS, и, как сказал Мани, даже современные планшеты и телефоны недостаточно быстры, чтобы сделать их гладкими. Это всегда очевидно, когда это приложение phonegap, особенно когда у вас есть куча процессов, или если вы прокручиваете, так как JS-процессы перевозятся (фиксируются в iOS 8).

использование многостраничной архитектуры означает, что вы получаете 100% собственную производительность (потому что эти части на самом деле are родном). И в отличие от phonegap, вы получите согласованное поведение пользовательского интерфейса и более простую отладку (с помощью одностраничного приложения часто трудно воссоздать определенное состояние в вашем приложении). Многостраничный делает его гораздо проще разрабатывать и поддерживать свои приложения, так как ваша кодовая база остается чище.

Проверьте демо: http://youtu.be/oXWwDMdoTCk?t=20m17s

Я также нахожу здесь каждую хорошую статью http://www.comentum.com/phonegap-vs-native-app-development.html, он сравнивает эти два способа в разных категориях.

резюме выглядит следующим образом:

  1. Дизайн интерфейсов (то же самое)
  2. стоимостью (гибрид имеет преимущество)
  3. Хронология Развития (гибрид имеет преимущество)
  4. пользовательский опыт и Производительность (родной имеет преимущество)
  5. ремонтопригодность (то же самое)
  6. Без Ограничений (родной имеет преимущество)
  7. безопасность (то же самое)
  8. поддержка и ресурсы (родной имеет преимущество)
  9. инструменты и отладки (родной имеет преимущество)
  10. Независимая Платформа (гибрид Преимущество)
  11. популярность (то же самое)

одним из замечательных вариантов здесь является разработка с Xamarin.

хотя это не помогает использовать навыки веб-разработчика OP, у него есть много плюсов по сравнению с PhoneGap и почти нет минусов.

Xamarin vs PhoneGap Pros:

  • зрелая структура, обеспечивающая доступ к большинству (если не всем) родным особенности мобильных устройств.
  • выучить только один язык (C# для большинства разработчиков) для всех мобильный платформы.
  • есть производительность нативных приложений на iOS / Windows Mobile (так как приложение компилируется в нативный код) и очень близкий на Android (он по-прежнему компилируется в нативный APK, но должен иметь тонкую оболочку, которая переводит API библиотеки классов .NET в API классов Android во время выполнения).
  • поддерживается Microsoft, которая поддерживает общее щедрое качество сама платформа и инструменты разработки. Например, вы будете использовать Visual Studio и это вероятно, лучшая среда IDE вокруг и теперь имеет бесплатную версию сообщества с каждой доступной функцией, которая вам понадобится для разработки Xamarin.

Xamarin vs PhoneGap минусы:

  • требуется некоторое время инвестиций для чистых веб-разработчиков, чтобы перейти на C# и API библиотеки классов Xamarin.

таким образом, Xamarin является очень надежным вариантом для кросс-платформенной разработки в настоящее время.