@MoonMaster
Программист и этим все сказано

Гибридные мобильные приложения. За ними будущее?

Добрый день!
Вчера смотрел презентацию одного человека, который рассказывал о том, что сейчас на рынке появляется молодая, но динамично развивающиеся направление - гибридные мобильные приложения. Он рассказывал о том, что имея фреймворк вы можете разрабатывать мобильные приложения без знания таких языков как:
Java
Object C
C#

Суть этой разработки заключается в том, что необходимо иметь человека, который знает HTML, CSS, JavaScript. До вчерашнего вечера я не знал даже о таком направлении. И решил задать сюда вопрос, есть ли тут люди, которые занимаются в данном направлении и где они черпают информацию.
  • Вопрос задан
  • 6358 просмотров
Решения вопроса 1
@Shannon
Это не серебряная пуля, но в принципе решает часть задач, иногда можно полностью отказаться от нативной разработки. Хоть тема и не нова, но обсуждать имеет смысл только решения, которые появились относительно недавно (crosswalk, intel xdk, framework7). До этого всё было тормознуто и html5-приложения в итоге заработали дурную славу.

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

Есть тонкости. Многие думают, что Cordova/PhoneGap это и есть тот самый фрейморк в котором и кроется секрет производительности или тормозов итогового приложения. На самом деле есть 2 разные по сути вещи:
Cordova/PhoneGap - это фрейворк, который соберет html5 приложение в apk и т.д. По сути это просто конструктор, никак не влияющий на производительность итогового приложения. Он позволяет взять html5 приложение, добавить плагины, для работы с камерой/gps/рекламой, и в итоге получить аналог нативного. Но так сложилось, что почти все публичные примеры из коллекции phonegap тормознутые, и поэтому многие так и думают, что html5 тормознутые.

Дело в том, что есть фреймворки вроде cordova, а есть html5 фреймворки и это разные вещи, и их нельзя ставить в один ряд. Сама по себе cordova не тормозная и не быстрая, она работает так и только так, как работает html5-приложение (которое запросто можно запустить просто в браузере, и нажав в браузере "добавить на рабочий стол", оно будет работать как автономное приложение). Соотвественно, если html5 фреймворк быстр и отзывчив, то разница с нативным приложением будет незначительна.

Второй момент. Так как html5 приложение, это лишь html+js, и запускается он внутри webview, то скорость приложения так же зависит от скорости движка webview. Допустим, на ios с этим все хорошо, а вот на андроид с этим хорошо только начиная с 5.х версий. На старых версиях андроида очень тормозной webview.
Эту проблему с тормозным webview вполне успешно решила Intel представив проект crosswalk. При использовании crosswalk стандартный webview заменяется на последнюю версию chromium, что означает поддержку новым фич, больше плавности, скорости и т.д.
Само собой, чем свежее crosswalk, тем быстрее и стабильнее работает итоговое html5 приложение.

Таким образом, решив проблему с производительностью движка html5, всё еще можно наткнулся на проблему тормознутой реализации самого фреймворка html5.
По сути, проблема в том, что большую часть html5 приложений на phonegap делают на jquery mobile, очень тормознутом фрейморке, но очень распространенном, из-за этого все видят в представленных html5 приложениях очень тормознутых монстров.

Есть 2 очень быстрых html5 фреймворка (по субъективным тестам, framework7 выигрывает в скорости и плавности), это framework7 и ionic - они решают многие проблемы тормозов, задержек, залипаний присущих стандартному использованию js.
Соотвественно, например, используя framework7, время отклика нажатий, реакции на свайпы и т.д. будет аналогично тому, что и в нативном приложении. Оба вреймворка содержут набор фич, реакций на типичные для приложений событий, а так же набор всех стандартных и расширенных компонентов, которые потребуются при разработке, и которые подключаются парой строчек в html файле в нужном месте. Они уже имеют встроенные стили, в итоге все компоненты и приложение в целом выглядит как нативное (один в один) ios8 или material design, никакой инородности. При этом их легко настроить через css.

Чуть подробнее можно посмотреть в статье "Быстрое кроссплатформенное HTML5 приложение на Framework7" - habrahabr.ru/post/257889 или аналогичных (про ionic например) там же
В итоге, на момент написания статьи, на гаджетах 5 летней давности всё работает примерно на 10-15% хуже чем аналогичное нативное решение. Если сейчас перекомпилировать со свежим crosswalk (в intel xdk, кстати, это делает даже совсем просто, достаточно нажать build и выбрать crosswalk), то разница будет еще менее заметна.

Так что, сходу отмахиваться от этого направления не обязательно, нужно лишь быть готовым к немного другим проблемам, чем при разработке нативного приложения.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 7
@Wheelie
Это направление совсем не молодое. И за то время которое существует так и "выстрелило". Для прототипов самое оно. Я использовал для изучения интереса. За короткое время было сделано простенькое приложение на (HTML, CSS, JavaScript), народ заинтересовало, все было переписано на java.
Ответ написан
gadfi
@gadfi
https://gamega.org
они будут жить, ведь всегда найдется кто то кто поведется на возможность сэкономить и по цене одного приложения сделать под все платформы.
по факту так оно когда то и будет, но не в эту пятилетку и не факт что именно js/html(хотя кто знает) ─ на android это все жутко тупит и лагает, на aple все гораздо лучше, но если делать под одну платформу, то нативно разработать быстрее.
презентации для того и нужны чтобы заинтересовать, а слова молодая и тд просто маркетинг
Ответ написан
konstantin_berkow
@konstantin_berkow
Начинающий разработчик
Я понимаю если бы речь шла о ReactNative, но Phonegap или Cordova это просто тихий ужас.
Ответ написан
Dit81
@Dit81
Security researcher, pentester, internet-marketer
Посмотрите в сторону PhoneGap например. Может есть и более новые разработки...
Сейчас даже виджеты в Windows, Mac OS делают на HTML5 + JavaScript, а Вы про мобильные приложения...
Ответ написан
deksden
@deksden
Enterpreneur
За такими приложениями далекое прошлое - гуглить facebook переходит на native
Ответ написан
Комментировать
@ProstoAndrei
Удостойте вниманием эти:
https://www.nativescript.org/
https://www.nativescript.org/

Все остальное тормозит. И это не тоже самое что PhoneGap и Cordova.
Игры на этом писать не стоит, но приложения можно вполне. И оно не будет тормозящим ***ном.
Ответ написан
Комментировать
sni10
@sni10
FS Dev
Попробую привести простое сравнение с велосипедом(который уже изобретен).

Cordova - это как гибридный китайский ашан-двухподвес. Вроде бы и едет, вроде и привлекательный. Но проблем больше чем пользы.
Натив - это надежная крепкая брендовая марка типа CUBE или Bianchi.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы