Ответ 1
TL; DR - По состоянию на февраль 2017 года Progressive Web Apps - достаточно мощная платформа, которая Twitter переместил весь свой мобильный веб-трафик на React PWA.
По состоянию на август 2016 года прогрессивные веб-приложения фактически предлагают больше аппаратного доступа, чем обычно думают. Вот скриншот whatwebcando.today из моей стабильной версии Chrome 52 на Android:
Доступ к оборудованию включает
- geolocation - поддерживается в подавляющем большинстве браузеров
- камера и микрофон через getUserMedia/Stream и предстоящий MediaStream Image Capture API
- устройство vibration
- экран ориентация и акселерометр, включая компас и гироскоп
- состояние аккумулятора
Предстоящий доступ к оборудованию
Эти функции реализуются или уже работают в некоторых браузерах:
- Bluetooth через Веб-интерфейс Bluetooth
- NFC
- датчик окружающего освещения (работает в Firefox 48+ )
- датчик приближения (работает в Firefox 48+)
- accelerometer, magnetometer и gyroscope доступ к датчику
- API определения формы
Еще один важный момент, который следует отметить, заключается в том, что Origin Trials Framework (реализован в Chrome) позволяет производителям подвергать и тестировать аппаратные средства (или программное обеспечение) без необходимости проходить процесс стандартизации. Например, производитель телефонов может выставить API для считывания значений датчика давления, уточнить его, а затем отправить его на рассмотрение W3C.
Помимо аппаратного доступа, есть также программные функции, традиционно используемые в собственных приложениях, которые теперь доступны для веб-приложений.
Традиционно собственные функции, которые PWA могут также использовать
- push-уведомления
- работает в автономном режиме
- добавление значка на главный экран
- появляется в списке приложений благодаря WebAPKs - Прогрессивные веб-приложения теперь могут быть упакованы в реальные устанавливаемые пакеты Android!
- запуск полноэкранный режим
- доступ к буферам обмена
-
аппаратно-ускоренная 2D/3D графика через HTML5 Canvas или WebGL - проверьте некоторые демонстрации HTML5 Canvas, WebGL или library.js. Ориентир 2014 года Unity кросс-платформенный игровой движок сравнил собственную производительность рендеринга WebGL и заключил, что
"Самый важный взнос - в то время как все еще существуют области, где WebGL значительно медленнее, чем собственный код, в целом вы можете ожидать, что ожидаете очень приличную производительность, и это может только улучшиться в будущем".
- чтение выбранных пользователем файлов в любом браузере
- гладкие, плавные пользовательские интерфейсы с 60fps анимация
Эти функции охватывают множество вариантов использования, и многие популярные популярные приложения в настоящее время могут быть переписаны как PWA. Например, возьмите Slack. Его альтернатива с открытым исходным кодом, Rocket.Chat, создает версию PWA. Дополнительные примеры PWA см. https://pwa.rocks.
Родные функции, поступающие в PWA
- обработка намерений- например, совместное использование страницы в другом приложении или share target, например приложение чата PWA, которое получает изображение для установки в качестве аватара пользователя
Основные функции Android, которые в настоящее время отсутствуют в PWA
- доступ к контактам, календарю и браузеру (отсутствие доступа к ним можно рассматривать как функцию
- linkability - любая страница/экран может иметь прямую ссылку, которая может быть легко доступна.