Нативные приложения обречены (часть 1)

Original author: Eric Elliott
  • Translation
image

Отныне я не буду больше создавать нативные приложения. Все мои приложения в дальнейшем будут прогрессивными веб-приложениями (PWA, Progressive Web Apps). Это такие приложения, которые предназначены для еще более органичной работы на мобильных устройствах, чем нативные приложения.

Что я имею ввиду под «более органичной работой»? Большая часть веб-траффика исходит от мобильных устройств и пользователи устанавливают в среднем от 0 до 3 новых приложений в месяц. Это означает, что люди не тратят много времени на поиск новых приложений в App store, но они проводят много времени в сети, где могут найти и использовать ваше приложение.

Прогрессивные веб-приложения начинают свою работу как любое другое веб-приложение, но когда пользователь возвращается в приложение и показывает (фактом использования), что он заинтересован в более регулярном обращении к приложению, браузеры предложат пользователю установить приложение на свой домашний экран. PWA также могут использовать push-уведомления как и нативные приложения.

И тут-то начинается интересная часть. Как и любое нативное приложение, прогрессивное веб-приложение будет обладать собственной иконкой для домашнего экрана и когда вы нажимаете на нее приложение запускается без оболочки браузера Chrome. Это означает отсутствие адресной строки и кнопок навигации. Только обычная строка состояния телефона и ваше приложение во всем своем почти полноэкранном великолепии.

К этому уже давно шло. Ни одна из технологий не является особо новой, за примечательным исключением развивающегося кросс-платформенного стандарта.

Немного истории


На заре iPhone не существовало app store. Стив Джобс хотел, чтобы разработчики создавали приложения для iPhone, используя стандартные веб-технологии.

Иногда мечтатели правы, но они на 10 лет опережают свое время. Оглядываясь назад на 2 года, рекомендация Стива Джобса о создании веб-приложений для iPhone была названа журналом Forbes его “крупнейшей ошибкой”, поскольку нативные приложения приобрели сокрушительный успех.

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

Сейчас десятилетие спустя, мобильные веб-стандарты поддерживают многие функции, которые были нужны разработчикам нативных приложений и первоначальное видение мобильных веб-приложений Стива Джобса теперь воспринимается серьезно всем миром. Практически с самого начала Apple поддерживал “apple-mobile-web-capable” веб-приложения, которые вы можете добавить себе на домашний экран, используя мета тэги, которые помогают устройствам iOS находить такие вещи как подходящие иконки.

Другие производители последовали примеру, каждый создавал свою собственную коллекцию мета тэгов для объявления возможностей мобильных веб-приложений. Но недавно была введена кросс-платформеная спецификация и теперь кросс-платформенные мобильные веб-приложения наконец-то становятся реальностью.

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

Что такое прогрессивные веб-приложения


Прогрессивные веб-приложения являются веб-приложениями, разработанными и адаптированными под мобильные устройства. Если браузер отмечает, что пользователь хочет продолжить использование приложения, то он может предложить ему установить приложение на свой домашний экран. Но для того чтобы он это сделал, приложения должны удовлетворять специфическим критериям:

  • Должны быть HTTPS (смотри let's encrypt)
  • Валидный манифест с обязательными свойствами ( Web Manifest Validator)
  • Должны иметь service worker
  • start_url прописанный в манифесте, должен всегда загружаться даже в offline (используя service worker)
  • Должны предоставлятьсвою собственную навигацию
  • Должны быть отзывчивыми к разным размерам экрана и ориентациям

Конечно, использование HTTPS и service worker для оффлайн пользователей является сегодня рекомендуемой нормой для любого современного приложения.

Что забывают многие создатели приложений так это то, что если вы делаете прогрессивное веб-приложение, то вы должны иметь возможность управлять приложением без браузерной оболочки и навигационных жестов. Мобильные устройства полагают, что вы встроили собственную навигацию в приложение.

Например, если у вас есть страница, то эта страница должна иметь обратную ссылку на пользовательский интерфейс приложения, или пользователям придется закрывать и повторно открывать приложение, чтобы вернуться обратно к главному экрану.

Прогрессивные приложения — инструкция


В сети существует множество информации о создании прогрессивных веб-приложений, но по большей части она устаревшая, а многие источники содержат только фрагменты того, что вам нужно чтобы создать приложение. Давайте исправим это.

Включить HTTPS


Чтобы включить HTTPS вам понадобится:


Манифест


Файл манифеста называется manifest.json и он достаточно простой. Он состоит из имени (short_name для иконки домашнего экрана и опционального name для более полного названия), начального url, большого списка иконок чтобы вы могли поддерживать широкий спектр если для разных платформ нужны разные размеры иконки. Для Android и iOS вам понадобится:

  • 36*36
  • 48*48
  • 60*60 (значок Apple touch на iPhone)
  • 72*72
  • 76*76 (значок Apple touch на iPad)
  • 96*96
  • 120*120 (значок Apple touch на iPhone retina)
  • 152*152 (значок Apple touch на iPad retina)
  • 180*180 (значок Apple touch для iOS 8+ )
  • 192*192
  • 512*512

Я выделил значки Apple touch потому что у них известные имена:

apple-touch-icon-180x180.png

Где 180*180 может быть заменено на любое нужное разрешение. Использование известных имен не обязательно, но если вы забудете включить тэги, iOS все-равно сможет найти иконки, ища их в корневой директории вашего веб-приложения, если вы будете использовать известные имена.

Иконки iOS не поддерживают прозрачность.

Простой manifest.json:


{
  "name": "My Progressive Web Application",
  "short_name": "Progressive",
  "start_url": "/?home=true",
  "icons": [
    {
      "src": "/icons/icon36.png",
      "sizes": "36x36",
      "type": "image/png"
    },
    {
      "src": "/icons/icon48.png",
      "sizes": "48x48",
      "type": "image/png"
    },
    {
      "src": "/icons/icon60.png",
      "sizes": "60x60",
      "type": "image/png"
    },
    {
      "src": "/icons/icon72.png",
      "sizes": "72x72",
      "type": "image/png"
    },
    {
      "src": "/icons/icon76.png",
      "sizes": "76x76",
      "type": "image/png"
    },
    {
      "src": "/icons/icon96.png",
      "sizes": "96x96",
      "type": "image/png"
    },
    {
      "src": "/icons/icon120.png",
      "sizes": "120x120",
      "type": "image/png"
    },
    {
      "src": "/icons/icon152.png",
      "sizes": "152x152",
      "type": "image/png"
    },
    {
      "src": "/icons/icon180.png",
      "sizes": "180x180",
      "type": "image/png"
    },
    {
      "src": "/icons/icon192.png",
      "sizes": "192x192",
      "type": "image/png"
    },
    {
      "src": "/icons/icon512.png",
      "sizes": "512x512",
      "type": "image/png"
    }
  ],
  "theme_color": "#000000",
  "background_color": "#FFFFFF",
  "display": "fullscreen",
  "orientation": "portrait"
}

Существуют некоторые функции, о которых вам следует знать. theme_color устанавливает цвет статусной строки, а заголовок окна используется при переключении между приложениями на Android.

background_color устанавливает цвет заставки. На Android заставка будет состоять из свойства name (длинное имя) и большой иконки поверх background_color.

Манифест есть не везде


Когда с создал первое прогрессивное веб-приложение, я был потрясен тем, что оно работало как и предполагалось в Chrome на Android, но не в Safari /iOS. Причина в том, что мобильный Safari, несмотря на десятилетнюю поддержку этих функций, используя свои специфичные тэги не поддерживает до сих пор спецификацию веб-манифеста.

Поэтому в дополнение к файлу манифеста для поддерживаемых браузеров вам также понадобятся специальные мета тэги для iOS, начиная с этого, который будет запускать приложение без оболочки браузера:



Существует множество тэгов, о которых надо помнить, хотя есть и другой способ. Есть web manifest polyfill, который прочтет ваш manifest.json файл и добавит тэги производителей для более старых мобильных браузеров, iOS и даже для Windows phone и Firefox OS.

Перевод: Ольга Чернопицкая

Продолжение следует

Поддержка публикации — компания Edison, которая разрабатывает автоматическую систему сборки прошивки для сетевой техники, а так же делает перевод ПО на русский для транснациональной промышленной корпорации.
Edison
96.61
Изобретаем успех: софт и стартапы
Support the author
Share post

Comments 181

    +25
    (Про заголовок и первый абзац первоисточника)
    Только ситхи все возводят в абсолют.
      –7

      Моя жена ситха… ситоха… ситиха… тьфу… ситх!

      +9
      Ух ты, здорово) Впервые слышу про PWA, огромное спасибо за статью!
        +6
        Русское «обречены» оптимистично, оно ещё не произошло, просто предсказание.
        А вот «native apps are doomed» из источника для меня звучит, как будто уже произошедшее и скоро похороны.

        Родные приложения никогда не умрут, скорее сотрется грань между нативными и ПВА.
          +35
          Нативные приложения обречены. Отныне я не буду больше создавать нативные приложения

          Ну да, теперь точно обречены. Куди им без автора?
          • UFO just landed and posted this here
              –26
              У Вас адъ в голове творится.
              • UFO just landed and posted this here
                  0
                  Аминь!
                +3
                Кстати говоря, Google Maps в браузере сейчас вполне сносно работает, можете сами проверить :). Это конечно не навигатор, но вполне серьезное приложение.
                  0
                  Ну ок, научите меня пользоваться Google Maps в браузере при отсутствующем интернете (например, я в другой стране, интернет в роуминге не по карману, местность незнакомая — то есть как раз ситуация, когда очень хочется воспользоваться картой). У всех веб-приложений главный недостаток — невозможность работать без интернета. К сожалению возможность иметь 100% времени быстрый интернет пока не достингнута. Когда/если доживём до этого — тогда да, будет всё равно откуда грузить приложение — из локального хранилища или из интернета.
                    +1
                    На самом деле, HTML5 manifest как раз позволяет приложениям работать и без интернета. Но я согласен, что если вы хотите оффлайн-навигацию, то нативное приложение будет явно лучше :). Пока что веб-приложениям не особо разрешают хранить много данных локально на устройстве. На iOS, по-моему, ограничение раньше было 10 Мб, а потом подняли до 50 Мб.
                      0
                      К тому же 3-4G хорошо отъедает батарейку.А вы в другой стране))
                      +1
                      Сносно и нормально/отлично это совсем разные вещи. Меня например не устраивает слово сносно в наше время
                    • UFO just landed and posted this here
                      • UFO just landed and posted this here
                        0
                        Научатся на WebGL держать нормальный FPS для 3D игр и экспортировать из каких-нибудь Unity/UE в веб в один клик, то могут приблизить. А уж если всякие WebAssebly-фишки допилят…
                          +1
                          Осталось только сделать соединение, чтобы 30-гиговые современные монстры игростроя успевали подгружать ресурсы с приемлемой скоростью. Unity и так умеет в веб в один клик.
                            +1
                            А уж если всякие WebAssebly-фишки допилят…

                            Браузерное гавно превращается…
                            Превращается браузерное гавно…
                            В нативное приложение на c/с++!!!
                          +19
                          Про полную победу кросс платформенных приложений начали говорить и писать, как только они появились. Я лично помню это еще с момента приобретения популярности Явой. Помню как мне с восхищением и предвкушением рассказывали как приложения смогут работать везде, от разных ОС до бытовой техники и телефонов. С тех пор каждый новый виток кроссплатформености приводил к подобным предсказаниям и подготовкам похорон нативных приложений. Правда еще ни одна платформа не лишилась своих нативных приложений. А все потому, что универсальность требует общий знаменатель, а значит часть возможностей железа остается незадействованными, и это серьезный минус. Конкретно у ПВА есть еще один минус — привязка к онлайну. Не знаю как кого, а меня с течением времени все больше раздражают приложения которые не могут работать офлайн или на плохом канале. Т.к. именно в такие моменты мне обычно скучно и я думаю как его убить, а оказывается что телефон практически кирпич без интернета. В итоге я удаляю после первого запуска все, что требует интернет, но не является средством потребления интернета(браузер, месенджер, новости...).
                          Возможно это ДМА обречены?
                            +2
                            Они сделают PWA, которые могут работать оффлайн (с помощью сервиса, предоставляющего данные), лишь бы не называться нативными. Т.е. пойти сложным путём, усыпанным граблями.
                              0
                              Чем это будет отличаться от native тогда? Ведь то же самое, просто через «виртуальную машину»-браузер и «виртуальный диск» — сервис, представляющий данные. Это уже не native против web, это native против виртуальной машины, а-ля Java vs native.
                                +2
                                Чем это будет отличаться от native тогда
                                Лишними слоями, большими тормозами, худшей интеграцией, нестандартизованным интерфейсом. Т.е. все плюшки native пропадут (да, мы говорим не о том native, который на уровне системы. а о том, который внутри JVM и уже имеет под собой слои абстракции, т.е. уже получил часть тормозов, но не стоит усугублять).
                                  0
                                  Ну я именно об этом — по функционалу в лучшую сторону ничем, а по косякам, вызванным слоями абстракции — сильно.
                              +2
                              Почему привязка к онлайну? Есть же cache manifest чтобы сохранить весь код и localStorage, чтобы сохранить данные. Насколько я понимаю, и то и то весьма крепкие вещи. По крайней мере первое позволяет мне пользоваться моим простеньким js приложением из хрома уже больше года после того как я нечайно удалил папку с ним на сайте.
                                0

                                Application Cache является устаревшей технологией и, скорее всего, будет со временем удалена поддержка сего в браузерах. Service Worker является ее заменой. localStorage для чего-то более-менее простого, для более сложных вещей — IndexedDB.

                                  0
                                  Выше уже приводили пример: инета нет(в чужой стране, роуминг), нужна карта незнакомого места.
                                  В LocalStorage или в IndexedDB хорошая карта не поместится (у многих броузеров есть ограничения на объём). Тут вебхрень ваша не работает. Другой пример: хранилка паролей к различным сервисам. Хранить пароли на мобильнике — вообще неразумно, а вот хранить те же пароли где-то в интернетах, в кэше какой-то веб-странички… Ну, кхм, кхе...!?"№!??
                                    0
                                    Вы мне? Я лишь возразил на то, что PWA привязаны к интернету. Утверждения, что сайты хорошая замена программам, я не делал.
                                      +1
                                      Простите, я ночером писал, был не в себе, и потому промахнулся веткой.
                                  0
                                  Если я правильно понял, это уже как разработчик сделает. Такое приложение вполне может работать оффлайн, с локальным хранилищем. А при интернет соединении синхронизироваться с сервером (и оно почти наверняка тебе пригодится, в конце концов ведь фишка таких приложений в кроссплатформенности — попользовался на тефелоне/планшете, сел за комп — продолжаешь пользоваться за компом, не потеряв данные, которые наработаны на телефоне/планшете).
                                    0
                                    Конкретно у ПВА есть еще один минус — привязка к онлайну.

                                    Вы ошибаетесь. Одна из ключевых идей PWA, в отличие от классических веб-приложений, — обязательная поддержка работоспособности в оффлайне, это явно указано во всех руководствах по созданию PWA. Как минимум, при отсутствии сети, приложение должно нормально стартовать и отстроить пользовательский интерфейс. Как максимум — позволить пользователю нормально работать с ранее закэшированными данными и синхронизировать все изменения позже, когда появится сеть. Для поддержки offline-режима предусмотрен ряд новых технологий вроде service worker'ов и проч.
                                      0
                                      Полностью согласен. А как теперь ужасно тупят, даже на мощном железе, всякие гугл документы, почта и прочая хрень.
                                        0
                                        Спасибо всем кто написал про офлайн режимы в PWA, не знал.
                                        Посмотрим как оно пойдет, может мне не попадались такие PWA, а может я не замечал что это именно они.
                                        Буду благодарен если посоветуете какие приложения PWA с хорошим офлайн режимом посмотреть. Можно в личку, если тут нельзя постить прямые ссылки.
                                        +5
                                        Не нативное приложение это огромное ограничение по функционалу и производительности. Если вы нищеброд, делайте ПВА, нормальная организация не позволит себе, чтобы опыт их пользователей был ужасным(а он будет, особенно медленным)
                                          +17
                                          PWA это какой-то искусственный и за уши натянутый термин на обычные веб-приложения. Ну да, манифест и иконки всё категорическим образом меняют. С галстуком ты серьёзный человек, с которым можно дела вести, а без галстука ты хрен собачий. Как-то так это выглядит.
                                            0
                                            Сейчас об этом спорить бессмысленно, так как идея подсаживать юзера на абонентскую плату настолько привлекательна, что работодатели ничего нигде никак обсуждать не будут, всё будут перекидывать в веб.
                                            С рекламой юзеры уже проголосовали, многие устанавливают блокировщики рекламы.
                                            Ждём массовых реакций от юзеров на удаления аккаунтов и возмущения от постоянно требуемых абоненток.
                                              0
                                              Интересно, а есть ли смысл пилить рекламу, которую нельзя заблокировать?
                                              Или выхлоп будет минимальный, и лучше положиться на репутацию и донат/пожертвования?
                                              А если реклама не агрессивная, и мелькает где-нибудь в фоне, но юзер ее гарантированно видит?
                                              +11
                                              3636
                                              48
                                              48
                                              6060 (значок Apple touch на iPhone)
                                              72
                                              72
                                              7676 (значок Apple touch на iPad)
                                              96
                                              96
                                              120120 (значок Apple touch на iPhone retina)
                                              152
                                              152 (значок Apple touch на iPad retina)
                                              180180 (значок Apple touch для iOS 8+ )
                                              192
                                              192
                                              512*512

                                              Всем стандартам стандарт, да. Кто сказал SVG? Нет, ты должен подготовить по картинке под каждый тип устройства.

                                                +1

                                                SVG иконки поддерживаются лишь частично и с ограничениями на различных платформах. Работа ведется. :)

                                                +3
                                                Нативные не умрут т.к. для них есть фичи, которые только там и есть, а уж pwa они и не снились.
                                                Есть для каждой из ос стайл-гайды к которым пользователи привыкли.

                                                Нативные будут явно быстрее, меньше проблем с тем, что для pwa надо будет на 25 браузерах все отлаживать или же прийдется писать «ой, сарян бро, но мы только под хром сделали»

                                                Или же, «ну мы типа не следовали стайлгайдам дройда, эпла, майкрософта», поэтому запилил вам свой собственный, хоть он и гавно по вашему мнению, но по нашему он огонь и нам не надо делать Х разных скинов, под разные платформы, а если делать, это ж сколько надо писать дополнительного кода.

                                                «А че оно так лагает?» — ну понимает, это кросс-платформенное, поэтому мы его сделали 1 раз и везде показывается, но за это приходиться поплатиться скоростью.

                                                «А че оно вылетает?» — ну мы где-то накосячили и браузер крашится, но мы поправим.
                                                «Да, но на дройдет не вылетает!» — ну там типа хром лучше отработал.

                                                Ну и так далее.
                                                  0
                                                  В наше время в браузерех куда как проще писать «кроссплатформенный» код (кроссбраузерный по сути).

                                                  Однако есть очень популярные ниши, где PWA вряд ли в ближайшее время будут:
                                                  1. 3D и прочие очень анимированные игры,
                                                  2. Напоминалки и другие приложения, которые гоняют бэкграунд-сервисы на девайсах. Пуши же ведь только при подключении к интернету работают :)
                                                  3. САМОЕ имхо ВАЖНОЕ — приложения, которым не нужны сайты! Да-да. Таких полмаркета.
                                                    +4
                                                    Сколько живу, столько слышу о том, что «мы изобрели то, на чем можно 1 раз написать и везде будет работать», а когда все это сталкивается с реальными нуждами приложений, то все уходят в нативку :)
                                                      0
                                                      Приложения для бекапов, антивирусы, фонарик, фотоаппарат, системные… Приложения, которые офлайн режим сайтов… Да практически все топ 100 из любой категории.
                                                      +1
                                                      Всё верно, но не стоит забывать что в андроиде нативными считаются приложения которые уже исполняются в виртуальной ява машине.
                                                        0
                                                        Это не проблема, вы можете написать приложения на любом JVM языке. Да и термин «нативный» тут применительно к тому, что это «родной» язык+платформа.
                                                          0
                                                          Нуу, я точно не помню с какой именно версии, но в Андроидах появилась компиляция байткода в родной машинный код текущего процессора. Так что, «Шэф! Тут усё окэй».
                                                        0
                                                        Кажется, эта идея с манифестом так же мёртворожённа как и объявление @viewport в стилях. Потому что когда стоят мета-теги в документе, браузер знает о всех свойствах сразу как загрузилась страница. А так ему надо загрузить ещё внешний файл, распарсить его и только после этого предпринять какие-то существенные действия, возможно, выбрасывая часть ранее сделанной работы. Это увеличивает зависимость от внешних файлов и замедляет рендеринг, особенно в зоне неуверенного приёма сети.

                                                        Ну, и Эппл справедливо критикует Service Workers как переусложнённую спецификацию, где для самых простых кейсов нужно много лишних действий. Не секрет, что Гугл разрабатывает её в одиночку под себя. Никаким «стандартом», о котором договорились все разработчики браузеров здесь и не пахнет. Это такой же костыль, как и другие проприетарные вещи (вспомните ActiveX).
                                                          0
                                                          Это не просто костыль, а кладезь для уязвимостей например построения ботнета https://bugs.chromium.org/p/chromium/issues/detail?id=662443
                                                          +7
                                                          Ой, я не могу. Ну ладно бы такую чушь писали мечтатели в каком-нибудь там году 2006-ом, на заре рынка мобильных приложений. Но сегодня, когда уже каждый первый попробовал кросплатформенные обёртки над вебовскими аппликухами и убедился, что годится это только для случая «у нас бюджет 3 копейки, но уже есть готовый сайт, нужны мобильные приложения под все платформы, максимум завтра». Во всех основных случаях либо нужно сразу писать нативное приложение, либо писать его потом, после понимания, что вебовское работать нормально не будет.
                                                            +8
                                                            Ай-яй-яй, нехорошо вставлять свои рефссылки на Digital Ocean и наживаться на хабравчанах
                                                              +4
                                                              зато теперь я понял для чего действительно нужны сокращалки ссылок — для маскировки :)
                                                              • UFO just landed and posted this here
                                                                  +4
                                                                  Если используешь реферальную ссылку, то правило хорошего тона об этом предупредить, тем более что она обычно даёт бонус обеим сторонам. Тут же мало того, что нет упоминания про реф.ссылку, так ещё и ссылка сокращена. Выглядит так, что намеренно умалчивается факт наличие реф.ссылки.
                                                                  • UFO just landed and posted this here
                                                                      +2

                                                                      Потому, что человек рекомендует не потому, что доволен сервисом, а потому, что получает бонус за обман других людей.

                                                                      • UFO just landed and posted this here
                                                                          0

                                                                          Участие в реферальной программе означает, что словам рекомендателя нельзя доверять.

                                                                          • UFO just landed and posted this here
                                                                              0

                                                                              То, что он им пользуется не значит, что он им доволен.


                                                                              Говорит он правду или ложь — останется на его совести. Но словам его нельзя доверять, так как его положительная рекомендация мотивирована материальной выгодой.


                                                                              А если про ангажированность нам ничего не известно, то в дело вступает презумпция невиновности.

                                                                                0

                                                                                А в любом другом случае — презумпция виновности.

                                                                                  –2

                                                                                  Улики — они такие.

                                                              • UFO just landed and posted this here
                                                                  +1
                                                                  У меня была Nokia Lumia и я её любил — платформа отличная. Но из-за таких как вы я теперь на андроиде.
                                                                  • UFO just landed and posted this here
                                                                      +3
                                                                      Вот уж эти злые программисты, не хотят просто так писать код и развивать чужие платформы
                                                                        +3
                                                                        Разработчики ушли не просто так, а из-за того, что им последовательно плевали в рожу с момента выхода платформы, меняя средства разработки и стек технологий каждую мажорную версию, каждый раз при этом напрочь ломая обратную совместимость.

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

                                                                        Не могу винить разработчиков за то, что они отказались участвовать в этом филиале ада ради прироста аудитории на 1-3%.
                                                                      +3

                                                                      http://caniuse.com/#feat=web-app-manifest
                                                                      Что тут еще можно сказать...

                                                                        0
                                                                        Я с удовольствием посмотрю, как из PWA включить или выключить BlueTooth на устройстве или считать показания акселерометра.
                                                                          –1
                                                                          Посмотрите — Firefox OS.
                                                                            +1
                                                                            Более верная ссылка. https://developer.mozilla.org/en-US/docs/Web/API/Web_Bluetooth_API
                                                                            Я с удовольствием посмотрю на пользователей, которые при посещении какого-то сайта будут обнаруживать, что у них включается BlueTooth.
                                                                              +1
                                                                              Круто!
                                                                              Non-standard
                                                                              This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.


                                                                              • UFO just landed and posted this here
                                                                                  0
                                                                                  Потому что я при установке приложения выбираю разрешения для него. Затем могу не ставить обновления и иметь то же самое приложение, которое в теории кто-то проверял в маркете или сторе.
                                                                                  А в Вашем случае, даже если я ткну «разрешить» я разрешу включать блютуз не приложению, а сайту. Сегодня, хозяин сайта, ради эфемерной возможности подсадить меня на подписку не даёт мне оффлайн версии, только с онлайна. Завтра этот предприниматель может решить, что его сервис мало окупаем, лучше соорудить ботнет. И никто его сайт проверять не будет.
                                                                                  По этой причине я могу дать доступ софту к оборудованию, а сайту не хочу. Но это теория, нет такого доступа у сайтов, совсем нет.
                                                                                  • UFO just landed and posted this here
                                                                                      0
                                                                                      Тогда данный минус снимается. Как реализовать такой закон?
                                                                                      • UFO just landed and posted this here
                                                                                          +1
                                                                                          Сойдёмся на том, что это невозможно?
                                                                                          • UFO just landed and posted this here
                                                                                              –1
                                                                                              Глупый какой-то довод. Воровать тоже вон по закону запрещено, но люди почему-то предпочитают ставить на дверь замок. Только вот если в случае с нативными приложениями «замок» для разрешений возможен, то для онлайн-приложений — нет. Полагаться на честность владельца сайта — я, простите, не хочу.
                                                                                              • UFO just landed and posted this here
                                                                                                  –1
                                                                                                  Способ удостоверится очень простой — пользоваться и наблюдать за поведением. В случае с нативным приложением, я первое время вынужден подозревать его, и следить за тем, что оно делает. После некоторого периода наблюдений — я уже могу доверять этому приложению. Помимо моего опыта — есть ещё опыт людей, писавших отзывы на маркете. Далее я могу, в случае нативных приложений, контролировать, обновлялось ли это приложение. И пока я его не позволил ему обновиться — я могу быть уверен, что его поведение не изменится, т.е. оно остаётся доверенным. В случае, если приложение обновлялось — я буду об этом знать, и буду готов к тому, что поведение могло поменяться.
                                                                                                  В случае онлайн приложения — я не могу никак контролировать, что приложение не обновилось. Более того, я вообще не могу быть уверен, что при втором запуске это будет то же самое приложение, а не что-то другое. Я не только не могу помешать ему обновиться, я даже не узнаю об этом. Отзывы пользователей тоже не помогут — они-то будут для старой версии приложения.
                                                                                                  Собственно то, что вы не понимаете этой разницы и делает ваши доводы глупыми.
                                                                                                  • UFO just landed and posted this here
                                                                                                      –1
                                                                                                      Я эту возможность прекрасно понимаю. Только вот случаев таких не припомню. Хотя бы потому, что злоумышленники редко строят такие далекоидущие планы. Более того, меня беспокоит не то, что создатель приложения злоумышленник. Меня беспокоит то, что злоумышленник может захватить аккаунт разработчика. В случае нативных приложений — это затронет только новых пользователей. В случае онлайн приложений — это затронет абсолютно всех пользователей.
                                                                                                      • UFO just landed and posted this here
                                                                                                          0
                                                                                                          Бональный контроль версий, который уже широко используется повсеместно. Незнаю как PWA собирается обходиться без контроля версий
                                                                                                          • UFO just landed and posted this here
                                                                                                              0
                                                                                                              Я тоже не в курсе, но если там нет контроля версий, то это большое упущение, я даже не могу представить такого поворота событий
                                                                                                              • UFO just landed and posted this here
                                                                                                          +1
                                                                                                          Вы не учли момент что большинство приложений сейчас используют контроль версий, после нескольких обновлений в маркете приложение на телефоне перестает работать, если это приложение использует какое либо апи. Заставить пользователя обновить приложение это не проблема
                                                                                                          Хотя бы потому, что злоумышленники редко строят такие далекоидущие планы.

                                                                                                          Тут вы тоже заблуждаетесь, нормальные группировки строят именно далеко идущие планы, используют социальную инженерию для совершения точечных ударов.
                                                                                                      • UFO just landed and posted this here
                                                                                                          –1
                                                                                                          Если бы эвристический анализ был хоть немного эффективен — вирусов бы давно не было. Если вы считаете что компьютер умнее вас, у меня для вас плохие новости — похоже он действительно умнее.
                                                                                                          • UFO just landed and posted this here
                                                                                                              –1
                                                                                                              Да, я умнее компьютера. Как минимум я легко справляюсь со множеством задач, перед которыми компьютер пасует. Дальнейшие выводы ваши просто указывают на то, что курс логики в вузе вы прогуляли (вуз-то надеюсь хоть закончили?). Например, то что я умнее компьютера (и тем более то, что я умнее вас), не делает меня умнее всех. Это ошибка в логике номер раз. Ошибка в логике номер два — даже будь я умнее всех — это вовсе не значит, что я обязательно хочу этим делится. Ошибка номер два. Ну и наконец, карма никак не характеризует ни интеллект, ни желание делиться знаниями — она лишь характеризует отношение сообщества к индивидууму. Более того, поскольку мой аккаунт в режиме read&comment — карма не характеризует даже этого! Она показывает, скольким людям я НЕ нравлюсь, но абсолютно игнорирует то, скольким я нравлюсь (если такие есть). А поскольку трудно найти человека, который нравится абсолютно всем — то карма не показывает ровным счётом ничего. Не многовато ли ошибок в логике для такого короткого абзаца?
                                                                                                              • UFO just landed and posted this here
                                                                                                              0
                                                                                                              Эврестический анализ не идеален, но утверждать что он не эффективен как минимум неразумно. Вирусы были, есть и будут всегда, и никакой анализ не спасет, существуют всякого рода пакеры которые помогаю если не полностью то частично обойти эвристику, так же как и человеческий фактор (человеческие проверки). Поверьте мне, если вы станете интересны по каким либо параметрам, то вам все равно просунут зловредный код
                                                                                                                0
                                                                                                                Если я стану интересен по каким-либо параметрам — я буду пользоваться только простыми звонилками, причём каждый раз буду звонить с нового телефона. Речь идёт о среднем пользователе, а не о персонализированной атаке.
                                                                                                                А эвристический анализ — это попытка компьютерной имитации человеческого анализа. И, как любая имитация — она хуже оригинала.
                                                                                                                  0
                                                                                                                  И, как любая имитация — она хуже оригинала

                                                                                                                  Но она быстрее, и направлена на то, что бы выяфить факта попытки по определенным критериям. В эврестический анализ входит анализ кода и разрешений. С анализом кода эвристика справится гараздо лучше и быстрее в некоторых случаях, так как при большом объеме кода человеку трудно будет найти нужный участок.
                                                                                                                  Если я стану интересен по каким-либо параметрам — я буду пользоваться только простыми звонилками, причём каждый раз буду звонить с нового телефона.

                                                                                                                  Я не подразумевал того, что вы станете супер мега крутым и за вами начнут охотится, интересным вы можете стать будучи работая в банке даже простым секретарем, или еще какую либо должность занимать будете в финансовом или стратегическом учреждении. А то что вы написали это из разряда шпионских игр.
                                                                                                                  Речь идёт о среднем пользователе, а не о персонализированной атаке.

                                                                                                                  Как раз средние пользователи и попадают под направленную атаку, как минимум что бы угнать денег по больше, как максимум что бы подобраться к тому у кого их можно угнать. Связать человека с кругом лиц с которым он плотно общается не составляет никакого труда, для этого даже не нужно быть гуглом, достаточно установить ему простенькое приложение, которое просто проанализирует ваше поведение, данные, и тд, и сводную информацию отдаст хозяину, более того, можно сделать так что вы сами предоставите этой программе эти привелегии. Социальная инженерия творит чудеса.
                                                                                                                  От тюрьмы и от сумы не зарекайся…

                                                                                                                  Сегодня я считаю самой безопасной системой iOS, но и при этом понимаю что она не безупречна
                                                                                                                    0
                                                                                                                    Вы серьёзно недооцениваете силу неуловимого Джо!
                                                                                                                      0
                                                                                                                      В наше время нет неуловимых, все упирается в время и актуальность. Разве что вы не старовер))) Анонимность это иллюзия невыгодная никому
                                                                                                                        0
                                                                                                                        Вы правда не знаете анекдота про неуловимого Джо, или нарочно игнорируете отсылку? Речь о том, что актуальность заражения отдельного человека — может стремиться к нулю. И единственный его шанс получить зловреда — нецелевое заражение. Поскольку, как вы правильно говорите, если понадобится — до вас всё равно доберутся, защищаться в первую очередь стоит именно от нецелевых заражений — потому что от целевых всё равно не выйдет. А лучшая защита от нецелевых заражений — здравый смысл и инстинкт самосохранения. Если с этим плохо — тогда уже идут суррогаты типа антивирусов, эвристики, и т.п.
                                                                                                            +1
                                                                                                            Я сам не фанат PWA, но интересуют некоторые моменты по вашему комментарию:
                                                                                                            Способ удостоверится очень простой — пользоваться и наблюдать за поведением.

                                                                                                            Очень интересует момент каким образом вы наблюдаете за поведением приложения? В предвкушении ответа думаю вы наблюдаете какие сервисы приложения работают в фоне, сколько ест батареи и интернета, скажу сразу это обходится на раз два, даже без напряга. Что бы выявить злонамеренное действие необходимо декомпилировать приложение и выявить зловредный код. Даже отключение интернета не поможет!
                                                                                                            Помимо моего опыта — есть ещё опыт людей, писавших отзывы на маркете.

                                                                                                            Я бы не рекомендовал вам смотреть на отзывы как на что то авторитетное, их накрутка не дорогая, особенно для злоумышлеников, какие то 100-2000 это совсем копейки.
                                                                                                            В случае, если приложение обновлялось — я буду об этом знать

                                                                                                            Тут вы тоже заблуждаетесь. Есть такая штука как динамическая подгрузка библиотеки, особенно это в андроид хорошо реализовано, более того это идеология андроида, посмотрите как грузят ресурсы игры после установки и запуска, если приложение больше 100мб. Так же можно подгрузить библиотеку и выполнить код размещенный в библиотеки, и тут вы тоже ничего не поймете.

                                                                                                            Все вышесказанное относительно онлайн приложений касается и нативных приложений. Даже логику нативного приложения можно изменить в любой момент без обновления приложения, достаточно заранее заложить функционал
                                                                                                              0
                                                                                                              > Есть такая штука как динамическая подгрузка библиотеки
                                                                                                              Ну вот, теперь вы разбудили моего внутреннего параноика. Выходит ситуация в андроиде ещё хуже, чем я думал. В любом случае, спасибо за информацию.
                                                                                                                0
                                                                                                                В андроид ситуация аналогична windows, возможности злоумышлиника практически безграничны, а если у вас установлен рут, то вы вообще золотая жила, какие бы вы там права не разрешили приложению
                                                                                                        0
                                                                                                        Насчет «невозможно» переформулируем как «концептуально невозможно» и сойдемся во мнении, ок?)
                                                                                                        • UFO just landed and posted this here
                                                                                                            –1
                                                                                                            Действительно, что сложного. Ведь есть же законы, запрещающие создание вирусов и взлом компьютерных сетей. Поэтому вирусов не существует, а компьютерные сети не взламывают. Всё так просто.
                                                                                                            • UFO just landed and posted this here
                                                                                                                –2
                                                                                                                А теперь ещё раз прочтите ответ и первый раз в своей жизни подумайте головой.
                                                                                                                • UFO just landed and posted this here
                                                                                                                    0
                                                                                                                    Ребята хотят сказать, что даже разработка и введение закона де-факто ничего не изменит.
                                                                                                                    • UFO just landed and posted this here
                                                                                                                        0
                                                                                                                        законы будут обязывать владельца сайта повторно запрашивать разрешение при изменении функционала сайта, связанного с этим разрешением?


                                                                                                                        Потому что:
                                                                                                                        1. такой закон должен быть во всех странах (а это уже сложно)
                                                                                                                        2. трудно проследить выполнение и доказать нарушение (да, у меня изначально этот функционал был, просто не включался/включался реже/включался, но вы не обращали внимание)
                                                                                                                        3. никому это не нужно
                                                                                                                        4. это создает сложности хорошим разработчикам и никак не мешает мошенникам (приблизительно как с оружием. Оно запрещено в общем виде, но все серьёзные преступники имеют по боевому пистолету, а хорошие люди получить его не могут).
                                                                                                                        • UFO just landed and posted this here
                                                                                                                            0
                                                                                                                            Дело в том, что концепция сайтов такова, что не требуется никакого разрешения от пользователя на изменение контента. Владелец сайта является владельцем интелектуальной собственности, и он в праве решать что делать со своим творением в пределах действующего законодательства. PWA это те же самые сайты, только имеют полноэкранный режим и иконку на рабочем столе.
                                                                                                                            Кстати сказать все тоже самое касается и приложений, создатель приложения мржет изменить самое приложение (как я писал выше), и для этого даже не нужно обновлять приложение в маркете, и в этом нет ничего противозаконного.

                                                                                                                            Другое дело если приложение требует каких либо разрешений для доступа к апаратным средствам телефона/планшета. Это можно реализовать в самой оболочке браузера, как это сейчас реализовано на уровне платформы Android. Этакая песочница, которая не даст что либо делать пока пользователь не разрешит. Например зачем PWA доступ к смс? — это уже потенциальная угроза, подобный функционал можно сразу же исключить.

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

                                                                                                                            Так что законодательство тут не нужно, нужна правильная песочница для исполнения PWA, с разумным списком разрешений, и правильно построенном уровне доступа к этим разрешениям, к таким разрешениям кстати можно отнести и коцептуальное изменение приложения, и многие проблемы решаться сами собой
                                                                                                                            • UFO just landed and posted this here
                                                                                                                                0
                                                                                                                                да я за веткой слежу)) Я просто решил дать развернутый комментарий (более разжеваный) Надеюсь он закроект этот безсмысленный диспут
                                                                                                    0
                                                                                                    Пишем: Всем владельцам веб-приложений при начале работы пользователя реализовать запрос разрешений. Иначе — Роскомнадзор, бан-лист и прочий ай-ай-ай.
                                                                                                      0
                                                                                                      Законом такое регулировать довольно наивно. Человек захотевший, как в комментарии выше, соорудить ботнет — уже пошел против закона. Еще одно нарушение, боюсь, что его вряд ли остановит.
                                                                                                      А вот решить ту же проблему на уровне браузеров и стандартов — вполне. Чтобы при доступе к «железячным» API запрашивалось разрешение, как сейчас происходит при запросе к гео-апи и к апи уведомлений. По-моему, довольно логичное и здравое решение.
                                                                                              0
                                                                                              Нет, надо смотреть на любой ОС.
                                                                                              +6
                                                                                              А потом люди удивляются, почему играя в Крестики-Нолики аккумулятор разряжается за час. Главное не забывать — каждая дополнительная прослойка увеличивает кол-во памяти и требования к CPU.
                                                                                              Вот так вот и живем, раньше на PC 1 ггц CPU и 256 мб ОЗУ можно было рубиться в кучу игр, запускать множество программ. А сейчас этого едва хватит чтобы открыть калькулятор на смартфоне.
                                                                                              Сейчас такая тенденция в развитии ПО, что потребность в ресурсах прогрессирует быстрее, чем сами ресурсы.
                                                                                                +1
                                                                                                Иногда мне даже хочется чтобы производители железа лет этак на 10 столкнулись с серьёзными проблемами дальнейшего роста производительности и индустрии волей-неволей пришлось бы вспоминать такое слово из лексикона их отцов и дедов как «оптимизация».
                                                                                                  0
                                                                                                  Роста уже нет давно. Новые процессоры дают жалкие проценты прироста и обычно на особых задачах.
                                                                                                    0
                                                                                                    Надо отметить, что arm процессоры намного слабее intel'ов при тех же герцах в спецификациях. Это одна из причин, почему приложения переводят на сайты, нет места, слабые процессоры, нет доступа к фишкам на уровне железа, чтобы оптимизировать софт под платформу. Скачайте архиватор rar и сожмите на спор на андроид смартфоне с ssd карточкой и на компе 1 гб текстовых файлов. Компьютер производительнее в разы.
                                                                                                      0
                                                                                                      А я про десктопы как раз.
                                                                                                        0
                                                                                                        Тогда я не согласен. За последние 10 лет на десктопах рост очень хороший для процессоров. Многоядерность, новые инструкции, меньше серых пятен на кристале. Но очень маленький L кеш, слабый прирост по скорости оперативной памяти, отобрали многие оптимизации (типа компилятор лучше знает).
                                                                                                        Зато расчёты на видеокартах впечатляют. Памяти стало больше.
                                                                                                          0
                                                                                                          Ну 10 это много. Пара последних поколений процессоров ничего почти не даёт, рост на проценты.
                                                                                                        0
                                                                                                        WinRAR
                                                                                                        Armv7 Neon (2012) 2c/2t 1GHz 300kb/s
                                                                                                        Intel HT (2005) 1c/2t 3GHz 300kb/s
                                                                                                        Amd APU (2012) 2c/4t 4GHz 3000kb/s
                                                                                                          0
                                                                                                          А размер получившегося архива? Чтобы убедиться что в одном режиме сжимали.
                                                                                                            0
                                                                                                            Это внутренний тест архиватора. Там нет выходных данных.
                                                                                                            Режимы разные естественно — максимальное сжатие и максимальное количество потоков.
                                                                                                            Арм и интел в два потоках, амд в 4 потока. В 2012 не было rar5. Только амд использовал 64-х битный набор инструкций, который явно полнее и быстрее 32-х битного.
                                                                                                            Но процессоры шагнули далеко вперед: самый дешевый медленный мобильный амд в 10 раз обходит топовый десктопный интел, который старше на 7 лет. Это показатель.
                                                                                                            Интелы 2012 в 8 потоков достигали 8000кб/с. А сейчас пошли 12 и 16 поточные интелы.
                                                                                                            Т.е. отрыв не только по частоте и потокам, но и по эффективности: больше инструкций на такт, и инструкции более эффективные, обрабатывают больше данных за раз.

                                                                                                            Любопытно другое: 2Вт смартовский арм эффективнее 150Вт десктопного интела, раза в три. Не смотря на явный проигрыш в железе: арм — простейшая железка без каких-либо «взрослых» систем, которые и сьедают миллиарды транзисторов.
                                                                                                            Прогресс определенно есть, и огромный.
                                                                                                            И это был срез 2005-2012, а сейчас на дворе почти 2017. Современное железо должно быть просто космической мощности.
                                                                                                              0
                                                                                                              Раз тест меряет чего-то там в своих попугаях, то моё предложение остаётся в силе. Если у вас есть новые процессоры — скачайте и сожмите. Так как когда я на процессоре arm пытался работать как на печатной машинке, то проблемы бывали. Но как только дело касалось распознавание текстов, пакетной обработки графики, сжатия данных — то плашет целиком проигрывал даже atom'у по сути объясняя почему arm потребляет так мало ватт (потребляет мало, так как мало работает). ps Вдруг вам искать лень https://play.google.com/store/apps/details?id=com.rarlab.rar&hl=ru и на компьютере также нужен ssd.
                                                                                                              Сейчас я это бросил.
                                                                                                            0
                                                                                                            4 потока на 2 ядра у AMD? У них же нет HT
                                                                                                      • UFO just landed and posted this here
                                                                                                        0
                                                                                                        Раньше на PC с 16 Мб RAM и 500 Мб ПЗУ (диск) можно было рубиться в Quake, Diablo и Heretic, а сейчас это называют микроконтроллерами.
                                                                                                          –1

                                                                                                          Раньше на микроконтроллерах нельзя было рубиться в Quake, Diablo и Heretic, а теперь можно.

                                                                                                        +1

                                                                                                        А все-таки интересно услышать сторонников PWA.
                                                                                                        Мнения против, действительно, ценны, но тут либо дискуссию начинать, либо во второй статье смысла не будет.
                                                                                                        Свежих аргументов в ней наверняка не прибавиться.

                                                                                                          0

                                                                                                          Я сторонник. (Я frontend). Собственно есть куча "бизнес" приложений. У каждого ресторана по приложению, у магазина типа АШАН по приложению, и так далее. Тысячи их.


                                                                                                          Приведу пример возможных PWA:


                                                                                                          словарь слов на англ для изучения.(типа lingoleo)
                                                                                                          приложение кинотеатра(новые фильмы, цены, забронить билет)
                                                                                                          приложение ресторана(новые блюда, цены, забронить столик)
                                                                                                          приложение соц.сетей
                                                                                                          записная книжка
                                                                                                          интернет магазины(новые товары, цены, купить)
                                                                                                          почта
                                                                                                          хабр, гиктайм, сайты типа thequestion.ru
                                                                                                          расписание общетсвенного транспорта, карты метро, приложение аеропорта
                                                                                                          slack, skype
                                                                                                          счетчик калорий.
                                                                                                          погода
                                                                                                          подбор одежды по настроению
                                                                                                          читалка книг.
                                                                                                          музыка, Ютуб
                                                                                                          стековерфлов

                                                                                                            0
                                                                                                            Вопрос был не про список примеров, а про аргументы в пользу PWA.

                                                                                                            Какие например преимущества PWA даст для записной книжки и читалки книг? Первое должно открываться как можно быстрее, а второе как можно меньше садить батарею. PWA ничему из этого не способствует.
                                                                                                              0
                                                                                                              Первое должно открываться как можно быстрее

                                                                                                              Нативное откроется и загрузит данные на много быстрее, конечно зависит еще от типа данных, но все равно быстрее
                                                                                                              а второе как можно меньше садить батарею

                                                                                                              Сегодняшняя реальность такова, что в большинстве случаев PWA быстрее посадит батарею, так как рендеринг WebView очень прожорлив
                                                                                                                0

                                                                                                                Так это, у меня нет желания устанавливать весь тот "мусор" что я выше перечислил. Особенно когда у каждого интернет магазина по приложению, у каждого ресторана по приложению. А если это будет PWA на которое я набрел в инете, сразу увидел, и уже потом решил добавить ярлык на рабочий стол то будет гораздо круче. Я сначала нашел крутой ресторан, и только его добавил на рабочий стол.


                                                                                                                Собственно основная фишка PWA что оно берет свои плюсы от двух вещей — нативный и веб приложений, а именно:
                                                                                                                от веба: друг скинул в соц.сети ссылку — мы сразу перешли, видим результат, ничего не нужно скачивать, ждать. Кроссплатформенность(в будущем если взлетит).
                                                                                                                от приложений: возможность работать в офлайне, ярлык на рабочем столе. Производительность телефоном растет, а огромная куча приложений (как тот мусор что я перечислил выше) сложнее не становятся. Счетчик калорий и интернет магазин уж точно лагать не должен, даже на относительно старых устройствах.

                                                                                                                  0
                                                                                                                  Счетчик калорий и интернет магазин уж точно лагать не должен

                                                                                                                  Ну что уж лукавить, давайте вообще забьем на производительность!? Как разработчик натива могу сказать что стараюсь выжать из кода максимум что бы и отзывчивость была лучше, и потребление ресурсов меньше. Отзывчивость в PWA будет еще ой как не скоро, какие бы показатели небыли у смартфонов. Многие смартфоны так напичканы, что на них можно шатл запустить при желании, но веб все равно не отзывчив. Да что уж говорить о мобильных ресурсах, на десктопах веб еще не на столько отзывчив что бы можно было хоть как то задуматься о том что бы им заменить все и вся!

                                                                                                                  У всего должна быть своя нисша, к примеру мне вообще не нужно приложение ресторана, ну вот вообще извините меня, когда надо открыл сайт и нашел что нужно, я даже иконку не буду на рабочий стол ставить что бы не захламлять его, а вот на доставку еды любимую я лучше поставлю приложение, так как оно отработает быстрее нежели PWA и не будет бесить своей неотзывчивостью, я не для этого тратил десятки тысяч на аппарат что бы наблюдать как что-то тормозит жудко, тоже самое касается и интернет магазинов, и музыки, да и практически всего что необходимо для регулярного использования

                                                                                                                  Как писал в одном из комментариев тут, буквально сегодня в нативе нужно было сделать окно с WebView в котором открывалась страничка, страничка подгружается моментально, но вот в сравнение в 1 приложении, отзывчивость самого приложения во много раз лучше нежеле страничка в webview в том же приложении
                                                                                                                    0
                                                                                                                    Кстати ко всему выше сказаному, я не в коем случае не убеждаю отказаться от данной технологии, у каждой технологии есть своя нисша и есть свой рынок потребителей. Вам например удобна эта технология и вы ее используете, но говорить что она готова заменить натив это совсем не правильно
                                                                                                                      0

                                                                                                                      Погодите, ресурсы как батарея мы конечно потеряем. Но вот 60 FPS и отзывчивость на счетчике калорий получить с PWA не так уж и сложно.


                                                                                                                      А в интернет маганизе, вы уверены что она нужна? Ну если я нажму на карточку товара, а пока она развернутся в детальную пройдет секунда — то черт с ним. Это не настолько большой минус для меня как скачивания приложения(ожидания порядка 15-45 секунд), и последующее захламление памяти устройства.

                                                                                                                        0
                                                                                                                        Но вот 60 FPS и отзывчивость на счетчике калорий получить с PWA не так уж и сложно

                                                                                                                        FPS может и не сложно получить, а вот с отзывчивостью будет все равно беда, ну или опровергните это, сделайте пример. Я не видел не 1 веб приложение которое хоть сколько бы близко было по отзывчивости схоже с нативом. Я как раз перешел от веб разработки на мобильные платформы, и решил делать все нативно а не накостылях
                                                                                                                          0

                                                                                                                          Я пилю на работе обычный сайт, cf.ua (версия не актуальна, я пилю на виртуалке), у него также есть приложения.
                                                                                                                          Тестирую сайт я с айфона — отзывчивость вида "показать полный текст статьи", "открыть попап", "открыть меню гамбургер". Отрабатываются на глаз мгновенно. Переход по ссылкам — порядка секунды(тут дело от инета зависит больше). Открытие всяких дропдаунов — мгновенно.

                                                                                                                  • UFO just landed and posted this here
                                                                                                                    0
                                                                                                                    музыка, погода, slack, skype, расписание общетсвенного транспорта, карты метро, приложение аеропорта, почта, записная книжка, и тд Вы сможете это все сделать на столько же отзывчивым как и нативное приложение? Особенно касается это мессенджеров, музыки да и всего выше перечисленного. Буквально сегодня делал нативное приложение, и в нем нужно было реализовать пару экранов с WebView, в который загружались заготовки HTML форм, и вы знаете, работают эти страницы в разы медленнее их нативных аналогов, и да я сравнил с нативными аналогами, так как изначально это было нативно сделано, но заказчик пожелал с сервера данными окнами управлять.
                                                                                                                    Просто мы немного забываем, что по мимо мегаполисов есть еще и переферия, где интернет оставляет желать лучшего, да и аппараты далеко не у всех топовые
                                                                                                                      0

                                                                                                                      Тут еще может быть такое дело что вы хороший java разработчик, но плохой javascript.
                                                                                                                      Может вы сравниваете качественное, оптимизированное приложение на java, против говнокода на javascript написаного на коленке за 2 часа?


                                                                                                                      И да, я считаю что оно может работать 60 fps, по поводу отзывчивости, что имеется в виду? Как быстро открывается попап после нажатия на кнопку? Тут трудно сказать.


                                                                                                                      Я сейчас делаю обычный вебсайт который тестирую на iphone 6 и nexus(хз какой) — все очень плавно (скролл в контейнерах, анимация нажатия, открывашка popup-ов). Это при том что я особо не оптимизировал ничего для телефона.


                                                                                                                      Ах да, еще я пользуюсь мобильной версией вк с ipod 2gen (очень старое устройства, 400 MHz), скролл плавный, похоже что 60 фпс. Отзывчивость (переход в пункт меню после клика на этот пункт меню) конечно хуже, порядка 1-2 секунд. Но это же старое устройство!

                                                                                                                        0
                                                                                                                        Как быстро открывается попап после нажатия на кнопку? Тут трудно сказать.

                                                                                                                        Именно, под отзывчивостью я имею введу реакцию отклика приложения на действия пользователя.
                                                                                                                        Тут еще может быть такое дело что вы хороший java разработчик, но плохой javascript.
                                                                                                                        Может вы сравниваете качественное, оптимизированное приложение на java, против говнокода на javascript написаного на коленке за 2 часа?

                                                                                                                        Я на swift и на java стараюсь писать код максимально отлаженый и вылизаный, да и когда веб разработкой занимался и javascript старался так же отлаживать, на десктопе отзывчивость была более менее приемлемой для меня, но это был максимум что можно было выжать, в то время как этот же код в мобильных устройствах работал крайне тормознуто. Сделать отрисовку 60fps в наше время это не особо сложное дело, а вот сделать реакцию на действие пользователя такой же как и в нативе не получится.

                                                                                                                        Вы видимо не берете в расчет тот факт что 60fps на более менее нормальном устройстве превратяться в 30-40 на устройстве 2х летней давности

                                                                                                                        Ну а что бы опровергуть мои слова кто нибудь бы привел хоть 1 пример такого приложения которое бы работало так же быстро как и натив

                                                                                                                        Я не в коем случае не против этой технологии, я против того утверждения что веб готов заменить натив в полной мере, мало того не готов, так это еще и не скоро произойдет, не в ближайшие 5-10 лет как минимум
                                                                                                                          0

                                                                                                                          вконтакте?

                                                                                                                            0
                                                                                                                            Или я чего то не понимаю, или у нас разное представление об отзывчивости. Только что проверил на iPhone 6s мобильная версия и рядом не стоит с их приложением
                                                                                                                            0

                                                                                                                            Так я же на 6 айфоне тестирую, а уже 7 вышел. Как раз два года получается)
                                                                                                                            Дома нет айфона — открыл с айпада — время открытия попапов на глаз немного заметно, порядка пол секунды, может чуть меньше. Возможно это из-за того что браузер 300мс ждем чтоб определить что это клик, а не дабл клик.

                                                                                                                    • UFO just landed and posted this here
                                                                                                                        +1
                                                                                                                        Веб-платформа никому не принадлежит. Это дает больше свободы в том как можно её использовать. Соответственно для PWA существенный плюс в том, что они не привязаны к магазинам приложений! Ну а в остальном — просто это как-то работает ;)
                                                                                                                          0

                                                                                                                          А что вы имеете ввиду под "дает больше свободы"?

                                                                                                                            +1
                                                                                                                            В PWA можно публиковать всё то же, что в любом веб приложении, на любом сайте, а через дистрибьютора только то, что он Вам разрешит в своем «соглашении». Во всех двух каталогах мобильных приложений действует премодерация, непрозрачное ранжирование и непрозрачный поиск.
                                                                                                                        0
                                                                                                                        У каждой технологии свой ареал обитания.
                                                                                                                        PWA отлично впишется для всяких твиттеров и прочих социалочек. Я бы с удовольствием заменил, например, монструозный facebook messenger каким нибудь легковесным PWA.
                                                                                                                          +2
                                                                                                                          PWA тоже может быть монструозным. Представьте себе приложение на js от какого-нибудь atlassian, фейсбук покажется сайтиком на народе.
                                                                                                                            0
                                                                                                                            Чего там представлять, Stash локальный запускается 20 секунд.
                                                                                                                          +1

                                                                                                                          Забавно, что речь всё время идёт о форме приложений, а не об их содержании. Типа, приложение может делать что угодно. Если оно нативное, то оно обречено, а вот если веб-прогрессивное, то его неминуемо ждёт успех. К сожалению, я совсем не интересуюсь мобильными приложениями и пользуюсь в основном десктопными. А то я бы покритиковал эту позицию более предметно.

                                                                                                                            0
                                                                                                                            PWA — это движение от веб-приложений к нативным приложениям. Но можно сделать и наоборот. У нативных приложений сейчас есть пара ключевых недостатков: их нужно грузить, устанавливать, и они находятся в сторонке от веба (в магазинах приложений). В принципе, можно научиться грузить нативные приложения по частям, скачивая в первую очередь только то, что нужно для отображения текущего экрана, и дальше уже в фоне, пока пользователь разбирается со стартовой страницей, например. При этом не делать церемониального процесса установки, чтобы не пугать пользователя. Пусть он кликает по ссылкам, и приложения начинают работать немедленно. Если не зацепило — ушёл и забыл, а в противном случае просто закрепил приложение, и вот оно в твоём распоряжении — быстрое, полнофункциональное, неявно установленное.
                                                                                                                              0
                                                                                                                              Тогда как быть с разрешениями? Или давать всё (включая рута? не пойми какому приложению), или не давать ничего, но не факт что можно запросить дополнительное разрешение в процессе (зоопарк систем разный, где получится — где нет).
                                                                                                                              +1
                                                                                                                              После таких статей так и хочется выйти из песочницы. Особенно многократное упоминание Apple и его продукции, которые не поддерживают PWA во всей их красе.
                                                                                                                                0
                                                                                                                                Картинка жуткая.
                                                                                                                                  0
                                                                                                                                  мда
                                                                                                                                  телефоны развиваются, процессоры в них ускоряются,
                                                                                                                                  нативные приложения* тем самым работают еще быстрее и меньше требуют батарейки

                                                                                                                                  и тут бац, Progressive Web Apps, и всё по-новой.
                                                                                                                                  Каждый раз когда выходит новый уровень абстракции, приложения из 3х кнопочек снова тормозят.

                                                                                                                                  *прошлый уровень абстракции
                                                                                                                                    0
                                                                                                                                    Ну а как быть с отзывчивостью? Я не видел не одно WebView приложение которое было на столько же отзывчевое как и нативное. Это только доля дегтя. Вторая часть это монетизация приложений. Бесплатные приложения часто монетизируются посредством рекламы. На сегодняшний день мобильная реклама в разы дороже нежели веб реклама! Так что я сомниваюсь что данная технология получит давольно широкий охват в ближайшее время. Но самая большая проблема это конечно отзывчивость
                                                                                                                                      0
                                                                                                                                      Была у меня тоже когда-то мысль, что при посещении вебстраницы телефон может загружает что-то вроде апплета — т.е. практически нативное приложение которым можно пользоваться без установки. Вот бы было чудесное перерождение умершей технологии ява-апплетов, думал я.
                                                                                                                                        +1
                                                                                                                                        Вот буквально как только начал заниматься iOS разработкой примерно 3,5 года назад, то с того времени периодически слышу заявления, что вот-вот-вот уже отомрет нативная разработка и все-все-все перейдут к кроссплатформенной разработке. Но увы! Каждый раз после взаимодействия с такими приложениями пропадает желание повторно их запускать в виду ужасающей прожорливости, низкой производительности и отвратительной отзывчивости.
                                                                                                                                        Время покажет, но мое мнение таково, что конечно технологии будут развиваться, но при этом будут развиваться не только веб технологии, а это значит что и возможности PWA станут шире, но при этом и нативные приложения будут шагать вперед и по прежнему опережать самые разные универсальные решения.
                                                                                                                                          +2

                                                                                                                                          Ураа первый раз на хабре зоголовок соответствует статье, и статья полнейшая чушь и зоголовок каждой букой об э том говорит. Я уж думал: "О опять желтый заголовок, поди о наболевшем..", а не нет. :)

                                                                                                                                            +2
                                                                                                                                            И тут походу все забыли, что каждый разработчик хочет зарабатывать по несколько килобаксов в месяц, а еще к этому разрабу надо нанять аналитика, UX/UI спеца, дизайнера, тестировщика и тп. Все это сразу будет стоить овердохрена денег, а потом это еще и умножить на 3 мобильные платформы и присыпать веб-версией для десктопов. И тут заказчик начинает плакать потому, что стока денег нет и не предвидится. Особенно это актуально для некоммерческих проектов с ограниченным бюджетом. И хоть я не согласен с автором, что нативные приложения обречены и что не все, конечно, можно заменить вебом, но PWA при должной поддержке имеют хорошее будущее.
                                                                                                                                              0
                                                                                                                                              конечно имеют, особенно если писать можно будет на нормальном языке
                                                                                                                                                0
                                                                                                                                                Я сильно извиняюсь, но очень интересно, что в вашем понимании нормальный язык? И чем не устраивают нынешние нормальные языки?
                                                                                                                                                • UFO just landed and posted this here
                                                                                                                                                    0
                                                                                                                                                    Вопрос состоялся в том, что вас не устраивает существующих языках программирования?
                                                                                                                                                    Во вторых HTML не является языком программирования, это язык разметки. Если говорить о PWA как о замене нативных приложений, то мы как раз и возвращаемся в эпоху языков разметок, и интерпретируемых языков. с типами спрайт, фон, цвет, прозрачность, скин это вам в фотошоп, или CSS
                                                                                                                                                    • UFO just landed and posted this here
                                                                                                                                                        0
                                                                                                                                                        Что то я вас вообще не могу вас понять. Говорите про очевидные вещи, а сами мне какую то цитату из википедии про язык зачем то подсунули. Потом говорите писать на нормальных языках, и никакой типизации не нужно, а потом говорите что она не нужна на x86
                                                                                                                                                        Вы мыслями соберитесь. Вы даже не представляете что можно делать на x86. Тут битность системы не играет никакую роль для типизации или интерпретации данных, только величины исчислений и объемы памяти меняется.
                                                                                                                                                        Но вот интересно, когда была эта эпоха — языков разметок?

                                                                                                                                                        Эпоха языков разметок была, есть, и еще очень долго будет. Веб никуда не уйдет, просто для всего должно быть свое применение.
                                                                                                                                                        Мне просто интересно на чем вы собрались делать PWA приложения если выкинули языки разметки в мусорку?
                                                                                                                                                        Возьмите любую IDE в которых есть конструктор интерфейсов, xCode, Android Studio, Visual Studio, во всех них для построения интерфейса используются языки разметки
                                                                                                                                                          0
                                                                                                                                                          К слову я вообще не сторонник идеологии что PWA заменят нативные приложения. Я сам являюсь разработчиком нативных приложений, и меня в этом все устраивает PWA еще очень не скоро будут способны заменить натив.
                                                                                                                                                          Надеюсь вам объяснять не нужно что такое нативная разработка? На всякий случай скажу, это не на языках разметки!

                                                                                                                                                          И меня все же очень интересует вопрос
                                                                                                                                                          особенно если писать можно будет на нормальном языке

                                                                                                                                                          Что же это за такие нормальные языки где не нужна типизация, и на которых можно делать нормальные приложения?
                                                                                                                                              0
                                                                                                                                              Они должны оперировать не с типами int & float, с типами спрайт, фон, цвет, прозрачность, скин и.т.д.

                                                                                                                                              В pascal есть пользовательские типы. Не то?
                                                                                                                                                0
                                                                                                                                                Человек предлагает вообще уйти от типизации. Тогда уж не паскаль, а JavaScript где практически нет типизации
                                                                                                                                                  0
                                                                                                                                                  хз, что именно предлагает andybelo. Судя по
                                                                                                                                                  Потому что х86 может считать только бухгалтерские типы. Для веба он никуда не годится.

                                                                                                                                                  человек не знает, что такое: пользовательские типы, процедуры или объекты возвращающие значения, неявное приведение типов. Ну или читал рекламу про pyton, что указывать тип переменной не круто, а считать пробелы круто (сарказм).
                                                                                                                                                0
                                                                                                                                                Статья о том как на телефоне сделать ярлык на сайт/веб-приложение.
                                                                                                                                                Вторая часть перевода планируется?

                                                                                                                                                Only users with full accounts can post comments. Log in, please.