2016-06-06 2 views
3

Я пытаюсь понять, как все работает, но есть некоторые вопросы по этой теме.Разработка гибридных приложений (PhoneGap, Cordova, Ionic) под капотом

Я объясню, как я это понимаю.

Прежде всего давайте начнем с Cordova это платформа, которая переводит JS, CSS, HTML файлы в родное приложение. Но остановить это не совсем так.
Действительно, он просто помещает все html, css-файлы в папку с ресурсами только для этой платформы, создает пользовательский WebView, специфичный для платформы, настраивает его, привязывает к нему все необходимые плагины и устанавливает открытую страницу по умолчанию.
Все остальное - это просто веб-разработка, за исключением методов крюков, предоставляемых плагинами платформ, которые помогают получить доступ к родным функциям, таким как GPS, Camera через java-вызовы от WebView.
Таким образом, все остальное зависит от конкретного родного веб-ядра для обработки и поддержки таких функций, как , CSS3 ... Если, например, WebKit реализация конкретной версии для Android не поддерживает такие функции, вы не можете что-то сделать, чтобы заставить ее работать а не обновлять ядро ​​низкого уровня Android.

У меня есть следующие вопросы.

  1. Что представляют собой платформы, как Onsen UI, Ionics, Sencha ... Официальные сайты говорят HTML5 Hybrid Mobile App Framework and UI Components for PhoneGap & Cordova. Почему ключевое слово HTML5 используется повсеместно, это просто особенность родного ядра браузера не более, если браузер не поддерживает все эти платформы и рамки бесполезны.

  2. Что такое специальная платформа, она должна быть Mobile-hybrid specific. Я понимаю, что PhoneGAp и Cordova предоставляют плагины и некоторые прокси для связи с родным API, но в случае UI frameworks это всего лишь css, js, html-файлы? Почему я не могу использовать их в браузере ПК по умолчанию?

  3. Какова цель установки таких платформ и фреймворков, например, npm, например npm install onsenui, почему я не могу просто скопировать файлы js в каталог проекта? Я понимаю, что некоторые платформы используют css-preprocessors для компиляции псевдо-CSS-файлов в css-файлы, но в случае отсутствия таких инструментов.

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

ответ

4

1) Все библиотеки/фреймворки, о которых вы упомянули в своем первом вопросе, несколько отличаются.

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

  • Onsen UI - это еще один интерфейс UI, который меньше и немного больше агностик библиотеки, чем ионический. Онсен обеспечивает угловые привязки и сервисы для своего пользовательского интерфейса, но также работает с обычным старым ванильным JS или jQuery. Предстоящая версия также поддерживает привязки React.

  • Я не могу сказать слишком много о Sencha (я его не использовал), но это также интерфейс UI. Однако Snecha использует собственную инфраструктуру JS под названием ExtJS.

Использование ключевого слова HTML5 более вероятно, чтобы рекламировать, что структура пользовательского интерфейса с использованием современных веб-технологий (Flexbox и т.д.). Я (и, пожалуйста, кто-то поправьте меня, если я ошибаюсь) верю, что это может быть просто маркетинговая уловка.

2) Технически, нет Гибрид специфический. Вы верны, полагая, что их можно использовать в среде настольных браузеров. При этом компоненты пользовательского интерфейса предназначены для мобильных устройств и не будут выглядеть привлекательно на рабочем столе. Они лучше всего подходят для гибридных приложений и мобильных веб-приложений. Ionic даже настаивает на прогрессивных веб-приложениях и планах по расширению поддержки рабочего стола (включая электрон).

3) Установка этих фреймворков через менеджера пакетов также является вопросом удобства. Вы легко можете скопировать файлы (веб-сайт Ionics объясняет, что вы можете это сделать). и вручную скомпилировать стили, но это большая работа, чтобы заставить вещи работать правильно. Некоторые, такие как Ionic, имеют CLI, установленную через NPM, но структура обычно устанавливается через bower. Это также упрощает обновление при выпуске новой версии. В целом вы можете спросить, зачем использовать менеджеров пакетов для любого языка/платформы, и это сводится к организации и удобствам.

Надеюсь, я ответил на все ваши вопросы, и если нет, оставьте комментарий.

+0

Спасибо за отличный ответ. У меня есть только один вопрос. Вы упомянули, что некоторые фреймворки предоставляют специальные компоненты UI (frameworks), но во всем все написано с использованием 'css',' js' и 'html' под капотом. Все популярные фреймворки, такие как 'Angular',' ExtJS' и 'React', построены с использованием простого старого JavaScrip (Ecmascript)'. Это связано с тем, что 'js' поддерживает метапрограммирование, но все рассмотренные там есть только три языка (строительные блоки) в Интернете:' css', 'js' и' html'. Все остальное - просто сахар (например, препроцессоры), правильно? – ketazafor

+1

yep в значительной степени. –