Боротьба між рідним та фонегапом, прості вимоги до додатків


75

Я збираюся створити власний (тобто; не в браузері) мобільний додаток. Оскільки я веб-розробник, мені важко вирішити, чи варто мені спробувати Phonegap чи просто створити власний додаток у Java або Cilj-C.

Вимоги до програми прості. Місцезнаходження GPS / Wi-Fi, інтеграція з Facebook, і, мабуть, мені знадобиться база даних для обробки деяких стосунків, пов’язаних із додатком Facebook-друг. Наприклад, як рекорди в грі - подібні речі.

Я веб-розробник і поки що не знаю ані Java, ані object-c. Я ніколи раніше не використовував Фонегап, ​​тому не знаю, чи здатний він виконати мої вимоги.

Тож моє запитання таке; Чи можу я використовувати Phonegap для свого додатка, чи мені потрібно зануритися в нову мову?


Час є найважливішим фактором, тому я б використовував фонегап, ​​хоча переходи сторінок не працюють.
iOSAndroidWindowsMobileAppsDev

... або просто побудувати власний додаток у Java або goal-c. для створення цих програм може знадобитися НЕКОТОРИЙ час, якщо у вас немає досвіду роботи на цих платформах.
keune

Це залежить від складності програми. Якщо це, в основному, статичні сторінки з простими функціями, такими як доступ до місцезнаходження GPS або камери для фотозйомки профілю, чудово. Ви все ще будете мати проблеми з продуктивністю на низькоякісних пристроях, на будь-якій платформі (менше на iOS, але все ж). Будь-що середнього / великого розміру з великою кількістю постійного зберігання даних, синтаксичного аналізу, маніпуляцій з файловою системою, тонн сторінок, довгих списків елементів, перейдіть на рідну сторінку. Якщо ви все ще не впевнені, запустіть будь-який магазин додатків на будь-якій платформі та знайдіть HTML5 / гібридні програми та протестуйте їх. Якщо вам подобається, як вони виступають, виходьте за це
Мірко

Відповіді:


158

Пов’язані:

Більшу версію цієї статті також можна знайти ТУТ , для прозорості це мій особистий блог.

Гібридні проти рідних додатків

Гібридні програми:

Про:

  • Швидша розробка, особливо якщо ви давній веб-розробник.
  • На кожній доступній платформі можна використовувати 1 мову. Це, звичайно, вимагає обгортки Phonegap. Вам не потрібно вивчати Objective C, Java або C #, щоб робити будь-які розробки. Вам потрібно лише зрозуміти основи реалізації 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.

Власні програми:

Про:

  • Власна мобільна програма може забезпечити найкращу взаємодію з користувачем - швидку та плавну, може забезпечити найкращий доступ до функцій пристрою та може бути виявлена ​​в магазинах програм.
  • Без сумніву, рідні програми мають повний доступ до базової мобільної платформи. Власні програми, як правило, дуже швидкі та поліровані, що робить їх чудовими для високопродуктивних додатків чи ігор. Цього вже достатньо.

Мінуси:

  • Чим більший бюджет, вам знадобиться принаймні особа (-и) зі знаннями Java та Objective C, навіть C #, якщо вам потрібна мобільна програма Windows. Так, ви можете навчитися самі, але не живіть під ілюзією, що зробите це за короткий час. Якщо ви ніколи не займалися розробкою, виберіть Objective C (iOS все-таки краща платформа). В інших випадках вибирайте Java. Java має синтаксис, подібний до інших доступних мов, тому легко перейти з C # на Java і навпаки. Завдання С - це власний світ. Він має досить рідкісний синтаксис.
  • На їх розробку може знадобитися більше часу, а час - це гроші. Це залежить від складності програм.

Якщо у вас є хороші навички веб-розробки / дизайну та / або хороший дизайнер, вам слід вибрати гібридний додаток. Перейдіть на рідну мову, лише якщо ця програма буде складною. Все, що ви хочете, можна зробити за допомогою гібридного додатка. І ви знайдете чудову спільноту, яка підтримує вас.

Гібридні програми

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

Кожна мобільна платформа має свій власний набір проблем, не кажучи вже про те, що мобільні телефони поводяться по-різному залежно від пристрою. Якщо можливо, завжди створюйте програму, яка працює на повільніших пристроях, оскільки рідна програма буде успішно працювати майже на будь-якому пристрої.

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

Тому будьте обережні, вибираючи мобільний каркас, виберіть 2-3 і витратьте кілька днів, читаючи про них.

Посилання

Ось кілька посилань, які допоможуть вам вирішити:

Підручник з PhoneGap + jQuery Mobile 1.4 - це покроковий посібник для PhoneGap та останньої версії jQuery Mobile

Підручник з PhoneGap + jQuery Mobile 1.4 - версія MacOS - це покроковий посібник із розгортання PhoneGap на MacOS. Частина jQuery Mobile висвітлена в попередній статті, немає сенсу повторювати речі.

jQuery Mobile проти Sencha Touch - порівняння jQuery Mobile Sencha Touch

jQuery Mobile vs Kendo UI - порівняння jQuery Mobile Kendo UI

7 найвідоміших мобільних фреймворків HTML5 - ім'я розповідає все

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


2
Чи можна знайти лише власні програми в AppStore / Market?
Генрік Скогмо

1
Гібридні програми також вітаються в магазині додатків, їх іноді відхиляють, але те ж саме трапляється і з рідними. Мою першу гібридну програму було відхилено, оскільки я використовував сторонній плагін paypal, і Apple це не любить. Тож не хвилюйся.
Gajotres

За останні 10 місяців я створював середньо великий додаток у js та Фонегапі, і хотілося б, щоб ми перейшли на рідну мову. Фонегап, ​​js та HTML5 разом - це неприємність, і навіть коли ви щось працюєте, досвід є прийнятним на останніх телефонах iPhone та Nexus, а на будь-якому іншому пристрої викидаєте пристрій з вікна
Мірко,

Я відчуваю, що багато цих тверджень - особливо з точки зору ефективності - застаріли. Іонічний, схоже, поєднує в собі найкраще з обох світів, з того, що я бачив.
Рамбатіно,

Дякуємо за думку, хороші речі тепер є восьмиядерним процесором на великих мобільних пристроях. Просто великий бюджет, ніж рідний, низький бюджет, ніж PhoneGap. Його Clear залежить від бюджету, але надає можливості в обидва кінці.
Tejas Tank

16

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

навіть якщо ви розробляєте веб-перегляд (Phonegap), вам потрібно навчитися деяким основним крокам в Android та iOS

Як Phonegap працює в пристроях

Ios Анімація та завантаження перегляду в ios webview є багатогранним і хорошим, ефекти анімації можуть чітко спостерігати

Android
Нам слід врахувати версію пристрою та компанію пристрою для Android під час запуску HTML-коду. Деякі пристрої високої конфігурації в Android дають більш чітке та ефективне відображення анімації, але деякі пристрої (переважно стара версія та деякі корпоративні пристрої) не можуть дати хороших анімаційних ефектів , ефект візуалізації різниться від пристрою до пристрою в android,


2
Думаю, я швидко усвідомлюю, що хочу створити власний додаток, використовуючи object-c або java. Якщо "рідною" програмою Phonegap є лише файли Webapp HTML / CSS / JS, скомпільовані для роботи з UIWebView, то я боюся, що програма буде обмежена до звичайних обмежень веб-додатків. Неможливість використати власні API. Дякую за відповідь.
Генрік Скогмо

1
Справа не лише в анімації, інакше вам просто потрібно буде їх вимкнути на низькокласних пристроях / старих платформах. Це загальна стабільність, чуйність інтерфейсу користувача, постійне зберігання даних, проблеми з продуктивністю змусять вас звести з розуму
Мірко

@HenrikSkogmo ви можете взаємодіяти з апаратним забезпеченням, що є основною метою Phonegap / Cordova. Однак є деякі обмеження, це залежить від того, чого ви хочете досягти
Мірко

6

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


1
Я повністю згоден, Phonegap та HTML5 на кілька років позаду стали життєздатним варіантом для розвитку мобільних пристроїв
Мірко,

Ось чому на практиці ви б використовували його в поєднанні з чимось іншим, як Sencha Touch або Kendo UI.
Тоні О'Хеган

3

Востаннє я розглядав це PhoneGap - це всі HTML, CSS та JavaScript. Отже, ви можете почуватись як вдома. PhoneGap може обробляти місцезнаходження GPS, див. Цю статтю в документації PhoneGap. Чи ви хочете взяти Objective C, залежатиме від того, наскільки швидко ви підберете нові мови, оскільки це певний відступ від веб-розробки.


3

Це повністю залежить від ваших потреб

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

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

На Фонегапі все робиться за 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 також заснований на Інтернеті, тому іноді ви почуєте, що "оскільки на цій платформі він не підтримує це бла-бла-бла" (наприклад,localStorage

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


2

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


Ionic не підтримує нічого менше Android 4.2, але ще гірше, що це в бета-версії. Я бачу нічні кошмари з jQuery Mobile та jQuery, які існують протягом багатьох століть, і вони досить стабільні, ви можете собі уявити з бета-фреймворком?
Мірко

не ненавидьте гравця, ненавидите гру
Коннор Ліч

Так, досить справедливо. Я хотів би спробувати Ionic, але залишати 60% користувачів Android на даний момент неможливо
Мірко

о, оснащення! Я навіть не знав про це питання. Схоже, вони повернуться назад, щоб підтримати версію
Коннор Ліч

1
Все ще 20% ... Ми підтримуємо 2.3+, поки він не піде нижче 10%. Я думаю, що на той час рамки будуть досить стабільними;)
Мірко

1

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

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

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

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

Оригінальна відповідь:

Так, загальний настрій полягає в тому, що гібридні програми поступаються рідним. Незважаючи на те, що це може засмутити розробників, які більше знайомі з веб-технологіями, це відбувається з поважних причин:

  1. Неможливість взаємодії з нативними компонентами : Хоча такі плагіни, як cordova-plugin-statusbarіснують, існують обмеження взаємодії з нативними компонентами та керування ними за допомогою веб-технологій. Одне з чудових (і неприємних) питань, з якими я стикався особисто, - це неможливість мати введення у верхній частині клавіатури, коли клавіатура анімується. Це звучить як невипуск, поки ви не подивитесь на додаток, де це є такою важливою функцією, як у чаті, як-от Slack.
  2. Затримка 300 мс . Хоча сучасні браузери починають це поступово припиняти , частка секунди затримки, присутня в гібридних додатках, змушує додаток відчувати себе повільним та незвичним. Ця проблема стає менш чинником, оскільки більша кількість користувачів застосовує такі обхідні шляхи, як FastClick.js та деякі фреймворки, такі як Ionic усунути його за замовчуванням.
  3. Ненависники мають рацію (начебто) : Хоча розробка гібридних додатків пройшла довгий шлях, все ще існують незначні збої та відсталі функції, яких просто немає в рідній програмі. Переходи між екранами, перемикання додатків та час автономної роботи - все ще загальні місця для появи помилок, і, ймовірно, це буде деякий час, навіть якщо вони починають ставати все менш помітними.
  4. Є кілька чудових рішень для рідних мов: з новими мовами, такими як Apple Swift , стає легшим кодування рідною мовою. Сказано, такі інструменти, як React Native потрапляють у сіру зону між Native та Hybrid, дозволяючи розробникам кодувати дружні технології, такі як JavaScript, але компілювати їх у власний код.

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

Загалом, я рекомендую скласти план вашого проекту та визначити, чи потрібна вашій програмі якісь переваги рідної програми. За допомогою таких інструментів, як додаток Ionic View , можна легко скласти базовий макет програми та перевірити на реальному пристрої, чи буде гібридна програма працювати для вас чи ні.


0

Також є стероїди AppGyver, які дуже добре поєднують PhoneGap та Native UI.

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

Крім того, зі стероїдами ви можете (хоча і не обов’язково) використовувати багатосторінкову архітектуру (кілька веб-переглядів), а не одну. З односторінковими додатками всі речі, такі як переходи, є лише обхідними шляхами CSS, і, як сказала Мані, навіть сучасні планшети та телефони недостатньо швидкі, щоб зробити їх гладкими. Завжди очевидно, коли це додаток для фонегапу, особливо коли у вас є купа процесів, або якщо ви прокручуєте, оскільки процеси JS перервані (виправлено в iOS 8).

Використання багатосторінкової архітектури означає, що ви отримуєте 100% нативну продуктивність (оскільки ці частини насправді є рідною). І на відміну від phonegap, ви отримаєте послідовну поведінку інтерфейсу користувача та полегшите налагодження (за допомогою односторінкової програми часто важко відтворити певний стан у вашій програмі). Багатосторінкова програма полегшує розробку та підтримку ваших програм, оскільки ваша кодова база залишається чистішою.

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


0

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

Короткий зміст наведено нижче:

  1. Дизайн інтерфейсів (однаковий)
  2. Вартість (гібрид має перевагу)
  3. Хронологія розробки (гібрид має переваги)
  4. Взаємодія з користувачами та продуктивність (рідна мова має переваги)
  5. Технічне обслуговування (те саме)
  6. Без обмежень (рідна мова має переваги)
  7. Безпека (однакова)
  8. Підтримка та ресурси (рідна мова має переваги)
  9. Інструменти та налагодження (рідна мова має переваги)
  10. Незалежна від платформи (гібрид має переваги)
  11. Популярність (однакова)

0

Тут не враховують чудових варіантів - розробку з Xamarin .

Хоча це не допомагає використовувати навички веб-розробника OP, він має багато плюсів у порівнянні з PhoneGap і майже не має мінусів.

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

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

Xamarin проти PhoneGap мінуси:

  • Потрібні певні інвестиції часу для того, щоб веб-розробники перейшли на API бібліотеки класів C # та Xamarin.

Таким чином, Xamarin є дуже надійним варіантом для крос-платформної розробки в наш час.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.