Создание PWA приложения на базе Cuba 7.0, React UI + Cordova

Добрый день. На базе этого видео пытался повторить по шагам. Приложение в Android появилось но оно не проходит дальше страницы Login. Я вводил логин/пароль admin/admin но он оставался на одной странице. Во время сборки была ошибка npm ERR! errno -4048. решил выполнением команды npm install --no-options . Вопросы:

  1. в чем причина того что он дальше страницы с логином не проходил?
  2. возможно ли создать подобное приложение на React UI ?
  3. есть ли документация или ресурсы по теме “создание Progressive Web Application на Cuba 7.0”?

Добрый день, Михаил.

Для начала немного разберемся с технологиями.

Cordova собирает мобильное приложение которое содержит внутри себя статические файлы веб приложения и отображает их в WebView. Также существуют встроенные и community- плагины, которые “пробрасывают” нативные API для доступа из JavaScript.

PWA - это просто набор техник которые позволяют обычному веб приложению быть в определённой степени похожим на нативное. По сути всё сводится к возможности создать на рабочем столе ярлык для запуска (браузера) со своей иконкой и открытие(браузера) в отдельном окне с кастомной заставкой и без элементов управления (адресной строки и т.д.).

Различия этих подходов следующие:

  1. Для сборки приложения на Cordova нужны соответствующие (Android/iOS) SDK. Либо можно воспользоваться облачным сервисом PhoneGap. В любом случае настройка сборки и публикация довольно трудоёмкий процесс.
  2. Публикация приложений на Cordova как правило происходит через AppStore / PlayStore. Это означает доступ естественному каналу распространения приложений. Однако это также означает прохождение review, что накладывает дополнительные требования, в том числе и к качеству UI.
  3. Возможности по работе в оффлайн и использование нативных API в Cordova выше благодаря плагинам. Однако, исходя из нашего опыта, экосистема плагинов довольно проблемная - многие из них со временем забрасываются авторами, либо не успевают за развитием платформ. В PWA использование нативных API ограничено возможностями браузера, которые лимитированны но постепенно улучшаются (пример: Geolocation API). Оффлайн и быстрый отклик частично обеспечивается при помощи Service Workers.

Вебинар содержит демонстрацию и примерный принцип упаковки клиента на Polymer при помощи Cordova и PhoneGap в мобильное приложение, при этом какой-то специальной (встроенной) поддержки со стороны CUBA для этого нет. React UI так же можно самостоятельно собрать в гибридное приложение при помощи Cordova (стоит однако помнить про недостатки, описанные выше).

Что касается PWA, в React UI есть базовая подготовка в виде manifest.json. Service workers можно довольно легко включить, однако с ними также есть определённые сложности (описаны в ссылке).

3 симпатии

PWA не показал себя с лучшей стороны) Использовали Flutter, кстати вопрос у CUBA есть какая либо поддержка Flutter для создания мобильного приложения с бэком на CUBA как это реализованно в Jhipster? Кроме REST API

PWA не показал себя с лучшей стороны

Да, PWA пока сильно лимитированы, но постепенно ситуация улучшается (как пример, взгляните на PWA Instagram и Twitter), также рекомендую вот этот блог с отличными обзорами обновлений поддержки PWA на мобильных OS.

кстати вопрос у CUBA есть какая либо поддержка Flutter для создания мобильного приложения с бэком на CUBA как это реализованно в Jhipster

К сожалению, нет, но есть пример приложения на ReactNative + Generic REST