Борьба между родным и телефонным разговором, простое приложение

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

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

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

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

Ответ 1

Связанные:

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

Hybrid vs Native apps

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

Pro:

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

Минусы:

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

Нативные приложения:

Pro:

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

Минусы:

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

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

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

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

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

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

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

Ссылки

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

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

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

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

jQuery Mobile vs Kendo UI - сравнение jQuery для мобильных ПК Kendo

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

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

Ответ 2

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

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

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

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

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

Ответ 3

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

Ответ 4

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

Ответ 5

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

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

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

Когда в Phonegap все делается за 1 неделю. Css, html, с onsenui и angular делают разработку графического интерфейса точно так же, как около 1-го студенческого задания, а тематика - всего лишь кусок торта. Мне не нужно запускать его на реальном устройстве, просто используйте браузер во время разработки, код изменения и обновление достаточно. angular обеспечивает двухстороннюю привязку к 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 отлично работает с простым графическим интерфейсом, основанным на базе данных (в большинстве случаев большинство приложений с поддержкой базы данных имеют простой графический интерфейс). Если вы собираетесь разработать такое приложение, то придерживайтесь его

Ответ 7

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

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

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

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

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

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

  • Невозможность взаимодействия с собственными компонентами. Хотя существуют плагины, такие как cordova-plugin-statusbar, существуют ограничения взаимодействие с собственными компонентами и их использование с помощью веб-интерфейса технологии. Одна большая (и разочаровывающая) проблема, которую я лично выполнял в неспособность иметь вход в верхней части клавиатуры, поскольку клавиатура оживляет. Это звучит как unissue, пока вы не посмотрите в приложении, где это важная функция, например, в приложении чата как Slack.
  • Задержка в 300 мс. Хотя современные браузеры начинают phase this из, доля второй задержки, присутствующей в гибридных приложениях, делает приложение чувствовать себя медленными и не родными. Эта проблема становится менее значимой больше пользователей принимают обходные пути, такие как FastClick.js и некоторые такие как Ionic устранить его по умолчанию.
  • Ненависты правы (вроде). Хотя разработка гибридных приложений прошла долгий путь, все еще есть небольшие сбои и отставание функции, которые просто отсутствуют в приложении Native. экран переходы, переход приложений и время автономной работы - все еще общие области для появления ошибок и, вероятно, будет какое-то время, даже если они начинают становиться все менее заметными.
  • Есть несколько отличных собственных решений. С более новыми языками, такими как Apple Swift, становится все легче в кода на родном языке. При этом инструменты, такие как Реагировать Родные попадают в серый цвет области между Native и Hybrid, позволяя разработчикам дружественные технологии, такие как JavaScript, но компилируются в собственный код.

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

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

Ответ 8

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

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

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

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

Проверьте демонстрацию: http://youtu.be/oXWwDMdoTCk?t=20m17s

Ответ 9

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

Сводка выглядит так:

  • Дизайн интерфейсов (тот же)
  • Стоимость (у Hybrid есть преимущество)
  • Сроки разработки (у Hybrid есть преимущество)
  • Опыт пользователя и производительность (у Native есть преимущество)
  • Поддержание работоспособности (тот же)
  • Без ограничений (у Native есть преимущество)
  • Безопасность (то же)
  • Поддержка и ресурсы (у Native есть преимущество)
  • Инструменты и отладка (у Native есть преимущество)
  • Независимая платформа (у Hybrid есть преимущество)
  • Популярность (Same)

Ответ 10

Один из пропущенных замечательных вариантов здесь - разработка с помощью Xamarin.

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

Xamarin против PhoneGap Плюсы:

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

Xamarin vs PhoneGap Минусы:

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

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