Я мобільний розробник, який витратив чимало часу на розгляд цього питання.
Чому Ви запитуєте?
Швидше за все, ви сподіваєтесь зменшити витрати на розробку додатків за рахунок:
- Використання існуючих навичок розробки HTML5 / Javascript
- Націлювання на декілька платформ без написання декількох додатків з нуля
- Не потрібно підтримувати кілька баз коду в майбутньому
Причини можуть також включати:
- Розробка HTML5 / Javascript сприймається як "легше", ніж розробка нативного платформи
- Уникаючи сплати плати за реєстрацію програми розробника
- Уникання обмежень щодо вмісту додатків (азартні ігри тощо)
- Уникання придбання обладнання для розробки (наприклад, Mac для iPhone)
Визначення
Давайте встановимо, що саме ми маємо на увазі під кожним із трьох згаданих підходів:
Native
Додаток, який встановлюється на пристрої, як правило, з його магазину додатків (хоча іноді може бути завантаженим). Для цілей цієї дискусії інтерфейс власного додатка зазвичай не складається тільки з повноекранного веб-перегляду.
Мобільний Інтернет
Це насправді може бути взагалі будь-яка веб-сторінка, однак для цього обговорення розглянемо односторінковий веб-додаток, який намагається наслідувати зовнішній вигляд нативного додатка. Це не нативна програма, вона працює в браузері пристрою.
Гібридний
гібридний instanceof
рідний додаток.
Більшість людей, напевно, розуміють, що гібридний додаток є односторінковим мобільним веб-додатком (знову ж, швидше за все, імітує зовнішній вигляд нативного додатка), але упакований як нативний додаток з доступом до власних послуг (à la Phonegap).
Однак насправді існує спектр між моделлю Phonegap і цілком рідною, про яку я пізніше пізніше.
Мобільний Інтернет
Технічні обмеження
Давайте перелічимо спочатку деякі технічні обмеження для мобільних веб-додатків, які самі по собі можуть бути вимикачами, залежно від того, що ви робите:
- Тільки HTML / полотно інтерфейсу користувача
- Немає доступу до певних подій та послуг пристрою (вони широко документально підтверджені)
- Не можна вказати у магазинах додатків (це впливає на відкриття)
- Може перетворитись на повний екран і мати значок домашнього екрану в iOS, однак це незвичне та незнайоме враження для більшості користувачів
Якщо ви можете жити з усім вищепереліченим, тоді читайте докладніше про проблеми односторінкових веб-додатків у рідному стилі. Однак цей розділ не буде повним без посилання на додаток FT.
Financial Times веб - додаток FT є відомим прикладом цього стилю додатки. Ось цікава особливість газети UK Guardian про це.
Це, безумовно, неабиякий подвиг техніки. Зауважте, що наразі він доступний лише на iOS - це говорить про те, що вони вважають, що вирішити проблеми вдосконаленої розробки крос-браузерів дуже важко.
Односторінкові веб-програми в рідному стилі
Цей розділ стосується як мобільних веб, так і додатків у стилі Phonegap.
Зовнішній вигляд і побут у веб-додатку, як правило, досягається за допомогою такої структури, як Sencha Touch, яка забезпечує набір компонентів інтерфейсу, які ви можете використовувати.
Такі рамки чудово підходять для дуже простих інтерфейсів. Однак їм не вистачає гнучкості. Ви не зможете реалізувати будь-який власний дизайн додатків за допомогою Sencha, вам потрібно буде адаптувати свій дизайн до того, що може вмістити рамки.
Основний спосіб, через який ці рамки страждають, - це намагання наслідувати власні тонкощі інтерфейсу користувача. Який приємний маленький підстрибуючий ефект, який ви отримуєте, коли прокручуєте до кінця списку iPhone? Ваша рамка повинна наслідувати це в JavaScript. Відтворити його повністю неможливо, він буде схильний до уповільнення, і ваші користувачі будуть застрявати в "дивовижній долині" додатка, який виглядає начебто як рідний, але, очевидно, не є і нетехнічним Користувач не зможе покласти пальця на те, чому саме.
Міф "HTML5 / Javascript - це легко"
Фрагментація пристроїв у веб-переглядачах є достатньою, і коли ви вийдете за межі найосновніших HTML та CSS, ви помітите, що речі не так працюють, як ви очікували. Ви можете виявити, що витрачаєте більше часу на вирішення проблем із користувальницьким інтерфейсом, ніж ви б заощадили, роблячи це натисно вдвічі. Якщо ви перебуваєте на нашому веб-сайті , зауважте, що веб-перегляди нативної програми не збігаються з веб-переглядачами пристроїв і мають свої проблеми з фрагментацією.
Оскільки ваш додаток стає більш функціонально складним, ви виявите, що вам потрібно більше, ніж основні навички jquery, щоб зберегти Javascript чистим і доступним.
Однак, за допомогою цього підходу цілком можливо створити прості, функціональні додатки досить швидко. Але це досить очевидно, коли це робить додаток.
Далі по спектру
Таким чином, ми хочемо запропонувати кращі UX, ніж можуть запропонувати програми в стилі Phonegap, не записуючи абсолютно все з нуля кілька разів. Що ми можемо зробити?
Поділитися кодом, який не використовується UI
Існує цілий ряд методів для обміну бізнес-логікою на декількох нативних платформах. Google запустив J2ObjC, що переводить Java в Objective-C. При ретельному розбитті коду бібліотеку Java можна використовувати як на Android, так і на iOS.
Бібліотеки, такі як Калатрава і Кірін, дозволяють кодованим базам, написаним на Javascript (а отже, будь-чим, що може бути скомпільовано в Javascript), маніпулювати з рідного коду. Відмова: Я працюю на майбутніх платформах, які створили Кірін; ми мали великий успіх, використовуючи його на iOS з Javascript, згенерованого на Java з GWT, причому код Java також запускається на Android на Android.
Використовуйте веб-перегляди ... де це доречно
Повноекранні веб-перегляди мають зробити багато роботи, щоб мати змогу імітувати переходи екрану та ефекти відмов. Але веб-перегляд всередині нативного хрому додатка може бути невідрізним від рідного.
Існують стандартні та добре задокументовані методи для спілкування з власними програмами та веб-переглядами.
Списки та таблиці можуть працювати особливо добре, якщо це зроблено таким чином, проте введення тексту є прикладом чогось найкраще керованого в домашніх умовах (для повного контролю над клавіатурою).
Підводячи підсумок
Підхід, який підходить саме вам, залежить від того, наскільки складним є ваш додаток, і яким рівнем користувальницького інтерфейсу ви будете задоволені.
Мій девіз: використовуйте веб-перегляди, де тільки можете, але переконайтеся, що ваші користувачі не можуть цього сказати .