Добрый день, Михаил.
Для начала немного разберемся с технологиями.
Cordova собирает мобильное приложение которое содержит внутри себя статические файлы веб приложения и отображает их в WebView. Также существуют встроенные и community- плагины, которые “пробрасывают” нативные API для доступа из JavaScript.
PWA - это просто набор техник которые позволяют обычному веб приложению быть в определённой степени похожим на нативное. По сути всё сводится к возможности создать на рабочем столе ярлык для запуска (браузера) со своей иконкой и открытие(браузера) в отдельном окне с кастомной заставкой и без элементов управления (адресной строки и т.д.).
Различия этих подходов следующие:
- Для сборки приложения на Cordova нужны соответствующие (Android/iOS) SDK. Либо можно воспользоваться облачным сервисом PhoneGap. В любом случае настройка сборки и публикация довольно трудоёмкий процесс.
- Публикация приложений на Cordova как правило происходит через AppStore / PlayStore. Это означает доступ естественному каналу распространения приложений. Однако это также означает прохождение review, что накладывает дополнительные требования, в том числе и к качеству UI.
- Возможности по работе в оффлайн и использование нативных API в Cordova выше благодаря плагинам. Однако, исходя из нашего опыта, экосистема плагинов довольно проблемная - многие из них со временем забрасываются авторами, либо не успевают за развитием платформ. В PWA использование нативных API ограничено возможностями браузера, которые лимитированны но постепенно улучшаются (пример: Geolocation API). Оффлайн и быстрый отклик частично обеспечивается при помощи Service Workers.
Вебинар содержит демонстрацию и примерный принцип упаковки клиента на Polymer при помощи Cordova и PhoneGap в мобильное приложение, при этом какой-то специальной (встроенной) поддержки со стороны CUBA для этого нет. React UI так же можно самостоятельно собрать в гибридное приложение при помощи Cordova (стоит однако помнить про недостатки, описанные выше).
Что касается PWA, в React UI есть базовая подготовка в виде manifest.json
. Service workers можно довольно легко включить, однако с ними также есть определённые сложности (описаны в ссылке).