Приветствую. Допустим имеется сайт веб-приложения на yii2 для работы с некоторым типом данных, небольшими расчетами, хранением в базе. После этого приходит мысль сделать мобильное приложение. Каким путем лучше идти?
1)Делать этот сайт в webview-контейнере. Правильно ли я понимаю, что Cordova/PhoneGap позволят сделать это? Но смогу ли я в данном случае изменить для мобильных устройств расположение определенных блоков? Там возможно подключение локальных скриптов и стилей для каждой из платформ? Или же придется через media-запросы как для мобильных устройств прописывать, но уже на сайте, что в прочем тогда этот пункт отгоняет, ибо хотелось бы более менее стандартного вида для каждой из систем, но при этом с отдельным видом сайта.
2)Сделать отдельное web-mobile-приложение и взаимодействовать с backend-частью сайта, с базой и т.п.. В данном случае я так понимаю Cordova/PhoneGap тоже поможет, да?
3)Или же написать нативные приложения и также взаимодействовать с бэкендом лишь для синхронизации в редких случаях. Тогда чем лучше воспользоваться, чтоб можно было писать более или менее один раз, но для всех платформ? Приложение в общем и целом не особо сложное. Xamarin в этом помог бы? Или как лучше быть?
Понятное дело, что настоящее нативное приложение для каждой из платформ будет еще лучше, но приложение не настолько будет использовать все нативные плюшки каждой из систем, поэтому я и думаю о чем-то, что поможет писать для всех платформ.
И да, в случае взаимодействия с сайтом/базой/контентом из приложения, в какую сторону смотреть? Какие понятия изучать, читать?
PhoneGap поможет только в случае, если делать GUI на HTML+CSS+JS. PhoneGap очень кривой, сырой, но все-таки можно с помощью какой-то матери заставить его сбилдить проект. И если реально много наработок по GUI на HTML+CSS+JS, то в итоге получится быстрее, чем нативный GUI.
Если GUI не на HTML+CSS+JS, то он не только не помогает с бек-ендом, он вообще так не может.
Естественно, можно все заменять. Что через webview, что как отдельное приложение, стили и скрипты можно хранить локально и менять расположение элементов как на обычном сайте. Я бы выбрал вариант с WebView, с ним проще в итоге работать.
По третьему пункту не соглашусь с VZVZ насчет того, что GUI не на HTML+CSS+JS не может работать с бэкендом. Это обычные запросы к серверу. Обращения к серверу можно делать так же часто, как и при разработке с использованием PhoneGap.
В общем, если приложение простое и вы хорошо знаете фронтенд - делайте на PhoneGap. Билдится он нормально, а в случае варианта с WebView - вы по факту получите нативное приложение, где PhoneGap будет занимать одно окошко. Понадобится нативный функционал - добавите прямо в этом же приложении :)
1) Далеко не факт что получится или будет нормально работать+пилить и тестить!
2)Вполне реальная система,я на Ionic(это тот же Cordova,только получше) пилю - вроде неплохо.
3)Xamarin круто-но надо смотреть сколько вы готовы тратить- лицензии дорогие,разработчики дорогие и вьюхи для каждой платформы свои,а ядро это фактически api может быть.
Смотрите бюджет и задачи)