Потерянные в гибридных инфраструктурах приложений, таких как Ionic, Cordova,

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

Может кто-нибудь объяснить их мне или предоставить мне большие ресурсы, особенно о случаях использования?

Я знаю об этом: Apache Cordova, Ionic, PhoneGap, Steroids (AppGyver), Supersonic (AppGyver), React Native и новый Microsoft Ace (http://microsoft.github.io/ace/).

Отказ от ответственности: возможно, что я полностью их смешиваю, и они не имеют никакого отношения друг к другу, потому что я так потерялся.

Ответ 1

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

Три класса гибридных приложений

  • Гибрид через Webview
  • Гибрид через кросс-компилированный
  • Гибрид через ядро ​​JavaScript

ПРИМЕЧАНИЕ. Я уверен, что для вышеупомянутых названий есть лучшие имена, но это лучше всего я придумаю в данный момент.


Гибрид через Webview

Как правило, это те приложения, которые вы упомянули выше, например, Ionic, TouchstoneJS, Meteor и Стероиды AppGyver. На самом деле, Стероиды построены на вершине Иона, если я правильно помню. Эти приложения пытаются решить гибридную проблему, имитируя компоненты, подобные натурам (кнопки, виды списков, макеты ящиков, представления табуляции и т.д.) С использованием стандартных веб-технологий (html, css, javascript). Чтобы получить доступ к собственным компонентам устройств, они используют мост под названием cordova, который предоставляет javascript api для собственных компонентов, таких как камера, gps, местоположение, вибрация и т.д. Это надежное сообщество, и если вам нужен доступ к родному компоненту, вы вероятно, найдет плагин cordova, который будет отвечать вашим потребностям. Задача для этих типов приложений - это и всегда была производительность. Поскольку они отображают все приложение в WebView (в основном полноэкранное окно браузера без хрома), он имеет только один поток для рендеринга всей страницы и выполнения любых анимации и т.д. В конце концов, поскольку компоненты близки, но не совсем как родные компоненты, а потому, что производительность близка, но не такая гладкая, как собственная производительность, эти приложения, как правило, падают где-то в сверхъестественной долине. Они выглядят так же хорошо, но на самом деле они никогда не бывают.

Гибрид через кросс-компиляцию

Примерами могут быть Appcelerator Titanium и Xamarin. Эти приложения решают проблему гибридов, абстрагируя родной apis на общий язык. Для Titanium этот язык является JavaScript. Для Xamarin этот язык является С#. Итак, чтобы написать приложение для Android, iOS, Windows и Desktop в Xamarin, вы должны написать весь свой код на С#, используя свои абстракции (API), а затем перечислить их в настоящие собственные приложения. Эти подходы имеют правильную идею, но многие скажут, что они не соответствуют действительности. Хотя личный опыт работы с Titanium, я обнаружил, что на самом деле создание приложения было довольно болезненным, потому что вы зависите от их абстракции. Если в слое абстракции есть ошибка, вы застряли... пока они не исправят это.

Гибрид через ядро ​​JavaScript

Есть только два примера этого, о которых я знаю, Facebook React Native и Telerik NativeScript. Это будущее развития мобильных приложений, на мой взгляд, и если бы я был вами, я бы сосредоточил свою энергию. Обе эти попытки аналогичным образом разрешают гибридную проблему, поскольку разработчик в конечном итоге пишет JavaScript для создания собственных компонентов, но каждый из них использует совершенно другой подход. React Native переводит ваш JavaScript на Native через RCTBridgeModule, тогда как Native Script дает вам прямой доступ к native apis через некоторые хитроумные трюки в JavaScript Virtual Machines. Я еще не работал с NativeScript, поэтому не знаю, насколько зрелым или совершенным он является. Я установил их пример приложения, и это показалось мне немного вялым. Я думаю, что одним из самых крутых предложений о ценности является то, что он буквально дает вам 100% доступ к собственным API (разумеется!). В прошлом году я активно работал с React Native, и меня впечатлило большое впечатление. Оба еще очень молоды и, безусловно, созреют.

Полезные ресурсы

Ответ 2

Мой личный опыт работы с гибридными фреймворками, такими как реакция-родной, заключается в том, что, честно говоря, они замечательные, но...

  • Пользовательский интерфейс очень близок, но не равен сравнению с native
  • Обновления и функции собственных плат будут ждать обновления фреймов
  • Если вам нужно продлить, в большинстве случаев может быть боль

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

Для получения дополнительной информации посетите https://github.com/bfortunato/aj-framework Это полностью открытый источник.

Ответ 3

Гибридное приложение, которое выполняется через Webview, встроено в:

Внешние компоненты

(HTML/CSS/JavaScript), который позволяет вам писать приложение HTML5, которое выглядит как родное приложение. Также называется HTML5 Mobile UI Framework

Разработчики используют технологию, которую вы уже знаете, HTM5, CSS и JavaScript.

примеры

Ионный

  • поставляется с высокомобильной оптимизированной библиотекой CSS HTML и js-компонентов и использует Angularjs

  • дизайн материальной поддержки

  • использует Cordova, чтобы перейти на iOS, Android, Windows Phone и другие платформы.

Framework 7:

  • ведет среди гибридных инфраструктур приложений в пространстве разработки мобильных приложений iOS

  • Framework 7 не поддерживает поддержку кросс-платформенных гибридных приложений

  • Элементы пользовательского интерфейса и транзакция близки к встроенной IOS

JQuery Mobile

  • Дедушка всех мобильных фреймворков

  • jQuery Mobile не пытается создавать приложения, которые выглядят как Android или iOS. Вместо этого его целью является помощь в разработке веб-приложений, которые будут одинаково хорошо работать на всех мобильных браузерах.

Внешние компоненты

Кордова (ранее PhoneGap)