Поступовий вебзастосунок (англ. Progressive Web App, PWA) — вебзастосунок, який є гібридом звичайної вебсторінки (чи вебсайту) та мобільного застосунку. Створюється за допомогою можливостей, що надають сучасні оглядачі Інтернету, але при цьому його використання нагадує використання мобільного застосунку.
Огляд
З 2005 року веброзробка перейшла від статичних сайтів до динамічних документів, що створюються серверними (LAMP, ASP.NET) або клієнтськими (Ajax) інструментами, і почали застосовувати адаптивний вебдизайн. Незважаючи на перевагу швидкого розгортання, спроби створення вебзастосунків для пристроїв на зразок iPhone 2007 року, у порівнянні з нативними були невдалими. Нативні застосунки надавали кращий досвід користування і швидше завантажувалися через різницю швидкостей читання з SSD та мережі. Запаковані ресурси та прямий доступ до апаратного забезпечення дозволяли нативним застосункам виконуватися набагато швидше і надавати більше функцій. Проте, з середини 2010-х, постійні вдосконалення в HTML5, CSS3, та JavaScript, значно функціональніші і сумісні зі стандартами браузери і потужні процесори зробили гібридні вебзастосунки життєздатною альтернативою.[]
Гібридні застосунки
Гібридні застосунки імітують досвід користування нативних мобільних застосунків і потребують завантаження з App store. Як такі, зберігаються не на сервері, а на дискові пристрою. Комбінація розмітки, [en] та скриптових мов дозволяє створювати довільні інтерактивні елементи керування без використання закритих систем на зразок Flash. Частково виконуючись у мобільному браузері (наприклад WebView), гібридні застосунки не мають URL, але мають доступ до апаратного забезпечення пристрою.
Часто гібридні застосунки створюють за допомогою фреймворку Apache Cordova.
Поступові вебзастосунки
У 2015 році дизайнер Францес Берріман та розробник Google Chrome Алекс Рассел створили термін «Progressive Web Apps», щоб описати застосунки що використовують нові функції сучасних оглядачів, такі як Service Workers та маніфести, і дають користувачам змогу встановлювати вебзастосунки, оскільки застосунки першого класу у своїй рідній ОС. Згідно з документацією Google Developers, поступові вебзастосунки мають наступні ознаки:
- Поступові (англ. Progressive) — працюють для будь-якого користувача, незалежно від вибору браузера, бо побудовані за принципом [en].
- Адаптивні (англ. Responsive) — добре відображаються на будь-якому форматі пристрою: робоча станція, мобільному, планшеті чи будь-якій іншій формі, що може з'явитися.
- Незалежні від з'єднання (англ. Connectivity independent) — дозволяють працювати офлайново чи на мережах з низькою швидкістю.
- Схожі на застосунки (англ. App-like) — користувачеві вони здаються рідними застосунками, і мають подібні взаємодії та навігацію.
- Свіжі (англ. Fresh) — завжди оновлені, завдяки процесові оновлення в технології service worker.
- Безпечні (англ. Safe) — передаються через HTTPS для запобігання перехопленню і певності, що контент не підроблено.
- Виявні (англ. Discoverable) — ідентифікуються як «додатки» завдяки маніфестам W3C та області реєстрації сервіс-воркерів, що дозволяє пошуковим машинам їх знайти.
- Можуть бути задіяні повторно (англ. Re-engageable) — спрощують повторні взаємодії завдяки функціям на зразок пуш-повідомлень.
- Можуть бути встановленими (англ. Installable) — дозволяють користувачам додавати додатки, які вони вважають корисними, на свій робочий стіл без мороки з app store.
- На них можна посилатися (англ. Linkable) — можуть просто пересилатися за допомогою URL і не потребують складного процесу встановлення.
Недоліки технології
- Дещо повільне перше завантаження ресурсу, пов'язане з тим, що інформація про сайт має зберегтися у кеш пристрою.
- Обмежений загальний розмір застосунку. Зумовлений тим, що для різних пристроїв та браузерів існують різні обмеження на об'єм кешу вебзастосунків: наприклад, до 6 % вільної пам'яті пристрою для Google Chrome, до 10 % — для Firefox, до 50 МБ — для мобільної версії Safari. Позаяк вільне місце на пристрої індивідуальне для кожного користувача, то загальний розмір ресурсу (включаючи зображення і скрипти) необхідно максимально оптимізувати.
- Складність впровадження технології на існуючий сайт.
- Під час роботи з PWA у браузері очищення його кешу призведе до неможливості роботи з сайтом офлайново до наступного з'єднання з інтернетом.
- Значна частина функцій PWA не працює у режимі «інкогніто» браузера.
Технології
Поступові вебзастосунки є розширенням існуючої технології і таким чином не потребують окремого упаковування для поширення. Поступові вебзастосунки публікуються так само як і будь-яка інша вебсторінка. Станом на 2016 технології потрібні для поступових застосунків реалізовані в браузері Chrome, але в майбутньому більше браузерів підтримуватимуть необхідні функції.
Базові критерії для розгляду сторінки як поступового вебзастонку були описані Расселом в наступній публікації:
- Мати безпечне походження. Повинні передаватись через TLS і замочок біля адреси сторінки зеленого кольору (відсутній активний змішаний вміст).
- Завантажуватись офлайн (навіть якщо це просто незмінна сторінка). З цього випливає, що поступові застосунки повинні використовувати Service Worker’и.
- Посилатись на маніфест з щонайменше чотирма ключовими полями: name, short_name, start_url, і display (зі значеннями «standalone» або «fullscreen»)
- Іконку розміром не менше 144×144 в форматі png. Наприклад: «icons»:
[ { "src": "/images/icon-144.png", "sizes": "144x144", "type": "image/png" } ]
Маніфест
Маніфест вебзастосунку — це специфікація W3C яка описує маніфест у форматі JSON який дозволяє розробникам описувати метадані пов'язані із застосунком, наприклад:
- Назва застосунку
- Посилання на іконки
- URL з якого запускається вебзастосунок
- Конфігурація вебзастосунку
- Опис орієнтації екрана за замовчуванням
- Опис режиму дисплея (наприклад повноекранний)
Service Worker’и
Service Worker’и, по суті, є мережевим проксі всередині браузера, який можна скриптувати і програмно керувати HTTP запитами. Вони розташовуються поміж мережею і вебзастосунком, щоб віддавати йому вміст. Якщо запрограмувати їх на кешування вмісту, це дозволить застосункові працювати офлайн.
Крім того:
- Можуть працювати з пуш повідомленнями
- Можуть синхронізуватися з даними сервера на фоні
Application Shell Architecture
Для прискорення завантаження, сервіс воркери зберігають базовий інтерфейс користувача або «оболонку» (англ. shell) вебзастосунку. Ця оболонка надає початковий статичний каркас, у який поступово може завантажуватись вміст, що дозволить користувачам використовувати застосунок не зважаючи на якість мережевого з'єднання. Простіше кажучи, оболонка — це ввесь код який зберігається в кеші на пристрої.
Примітки
- Garrett, Jesse James. . Архів оригіналу за 7 травня 2019. Процитовано 18 лютого 2005.
- Marcotte, Ethan. . Архів оригіналу за 18 квітня 2021. Процитовано 25 травня 2010.
- . Архів оригіналу за 18 грудня 2016. Процитовано 4 грудня 2016.
- . Telerik Developer Network. 25 березня 2015. Архів оригіналу за 4 грудня 2016. Процитовано 4 грудня 2016.
- Russell, Alex. . Архів оригіналу за 24 березня 2021. Процитовано 15 червня 2015.
- . Google Developers. Архів оригіналу за 24 червня 2016. Процитовано 17 липня 2016.
- Google Developers. . Архів оригіналу за 24 лютого 2020. Процитовано 15 червня 2015.
- W3C "Web App Manifest”, Working Draft [ 18 квітня 2021 у Wayback Machine.], retrieved 12 September 2016
- . Arto Web Agency. Архів оригіналу за 9 травня 2018. Процитовано 8 травня 2018.
- Alex Russell. . Infrequently Noted. Архів оригіналу за 25 листопада 2016. Процитовано 7 грудня 2016.
- . Блоґ одного кібера. 7 серпня 2014. Архів оригіналу за 21 грудня 2016. Процитовано 7 грудня 2016.
- . Архів оригіналу за 30 грудня 2016. Процитовано 7 грудня 2016.
- . Google Developers. Архів оригіналу за 22 квітня 2020. Процитовано 24 квітня 2020.
- . Google Developers. Архів оригіналу за 20 квітня 2020. Процитовано 24 квітня 2020.
- . Google Developers. Архів оригіналу за 23 квітня 2020. Процитовано 24 квітня 2020.
Посилання
- Курс від Google Intro to Progressive Web Apps [ 20 грудня 2016 у Wayback Machine.] на Udacity
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Postupovij vebzastosunok angl Progressive Web App PWA vebzastosunok yakij ye gibridom zvichajnoyi vebstorinki chi vebsajtu ta mobilnogo zastosunku Stvoryuyetsya za dopomogoyu mozhlivostej sho nadayut suchasni oglyadachi Internetu ale pri comu jogo vikoristannya nagaduye vikoristannya mobilnogo zastosunku OglyadZ 2005 roku vebrozrobka perejshla vid statichnih sajtiv do dinamichnih dokumentiv sho stvoryuyutsya servernimi LAMP ASP NET abo kliyentskimi Ajax instrumentami i pochali zastosovuvati adaptivnij vebdizajn Nezvazhayuchi na perevagu shvidkogo rozgortannya sprobi stvorennya vebzastosunkiv dlya pristroyiv na zrazok iPhone 2007 roku u porivnyanni z nativnimi buli nevdalimi Nativni zastosunki nadavali krashij dosvid koristuvannya i shvidshe zavantazhuvalisya cherez riznicyu shvidkostej chitannya z SSD ta merezhi Zapakovani resursi ta pryamij dostup do aparatnogo zabezpechennya dozvolyali nativnim zastosunkam vikonuvatisya nabagato shvidshe i nadavati bilshe funkcij Prote z seredini 2010 h postijni vdoskonalennya v HTML5 CSS3 ta JavaScript znachno funkcionalnishi i sumisni zi standartami brauzeri i potuzhni procesori zrobili gibridni vebzastosunki zhittyezdatnoyu alternativoyu dzherelo Gibridni zastosunki Gibridni zastosunki imituyut dosvid koristuvannya nativnih mobilnih zastosunkiv i potrebuyut zavantazhennya z App store Yak taki zberigayutsya ne na serveri a na diskovi pristroyu Kombinaciya rozmitki en ta skriptovih mov dozvolyaye stvoryuvati dovilni interaktivni elementi keruvannya bez vikoristannya zakritih sistem na zrazok Flash Chastkovo vikonuyuchis u mobilnomu brauzeri napriklad WebView gibridni zastosunki ne mayut URL ale mayut dostup do aparatnogo zabezpechennya pristroyu Chasto gibridni zastosunki stvoryuyut za dopomogoyu frejmvorku Apache Cordova Postupovi vebzastosunki U 2015 roci dizajner Frances Berriman ta rozrobnik Google Chrome Aleks Rassel stvorili termin Progressive Web Apps shob opisati zastosunki sho vikoristovuyut novi funkciyi suchasnih oglyadachiv taki yak Service Workers ta manifesti i dayut koristuvacham zmogu vstanovlyuvati vebzastosunki oskilki zastosunki pershogo klasu u svoyij ridnij OS Zgidno z dokumentaciyeyu Google Developers postupovi vebzastosunki mayut nastupni oznaki Postupovi angl Progressive pracyuyut dlya bud yakogo koristuvacha nezalezhno vid viboru brauzera bo pobudovani za principom en Adaptivni angl Responsive dobre vidobrazhayutsya na bud yakomu formati pristroyu robocha stanciya mobilnomu plansheti chi bud yakij inshij formi sho mozhe z yavitisya Nezalezhni vid z yednannya angl Connectivity independent dozvolyayut pracyuvati oflajnovo chi na merezhah z nizkoyu shvidkistyu Shozhi na zastosunki angl App like koristuvachevi voni zdayutsya ridnimi zastosunkami i mayut podibni vzayemodiyi ta navigaciyu Svizhi angl Fresh zavzhdi onovleni zavdyaki procesovi onovlennya v tehnologiyi service worker Bezpechni angl Safe peredayutsya cherez HTTPS dlya zapobigannya perehoplennyu i pevnosti sho kontent ne pidrobleno Viyavni angl Discoverable identifikuyutsya yak dodatki zavdyaki manifestam W3C ta oblasti reyestraciyi servis vorkeriv sho dozvolyaye poshukovim mashinam yih znajti Mozhut buti zadiyani povtorno angl Re engageable sproshuyut povtorni vzayemodiyi zavdyaki funkciyam na zrazok push povidomlen Mozhut buti vstanovlenimi angl Installable dozvolyayut koristuvacham dodavati dodatki yaki voni vvazhayut korisnimi na svij robochij stil bez moroki z app store Na nih mozhna posilatisya angl Linkable mozhut prosto peresilatisya za dopomogoyu URL i ne potrebuyut skladnogo procesu vstanovlennya Nedoliki tehnologiyi Desho povilne pershe zavantazhennya resursu pov yazane z tim sho informaciya pro sajt maye zberegtisya u kesh pristroyu Obmezhenij zagalnij rozmir zastosunku Zumovlenij tim sho dlya riznih pristroyiv ta brauzeriv isnuyut rizni obmezhennya na ob yem keshu vebzastosunkiv napriklad do 6 vilnoyi pam yati pristroyu dlya Google Chrome do 10 dlya Firefox do 50 MB dlya mobilnoyi versiyi Safari Pozayak vilne misce na pristroyi individualne dlya kozhnogo koristuvacha to zagalnij rozmir resursu vklyuchayuchi zobrazhennya i skripti neobhidno maksimalno optimizuvati Skladnist vprovadzhennya tehnologiyi na isnuyuchij sajt Pid chas roboti z PWA u brauzeri ochishennya jogo keshu prizvede do nemozhlivosti roboti z sajtom oflajnovo do nastupnogo z yednannya z internetom Znachna chastina funkcij PWA ne pracyuye u rezhimi inkognito brauzera TehnologiyiPostupovi vebzastosunki ye rozshirennyam isnuyuchoyi tehnologiyi i takim chinom ne potrebuyut okremogo upakovuvannya dlya poshirennya Postupovi vebzastosunki publikuyutsya tak samo yak i bud yaka insha vebstorinka Stanom na 2016 tehnologiyi potribni dlya postupovih zastosunkiv realizovani v brauzeri Chrome ale v majbutnomu bilshe brauzeriv pidtrimuvatimut neobhidni funkciyi Bazovi kriteriyi dlya rozglyadu storinki yak postupovogo vebzastonku buli opisani Rasselom v nastupnij publikaciyi Zelenij zamochok bilya adresi storinki Mati bezpechne pohodzhennya Povinni peredavatis cherez TLS i zamochok bilya adresi storinki zelenogo koloru vidsutnij aktivnij zmishanij vmist Zavantazhuvatis oflajn navit yaksho ce prosto nezminna storinka Z cogo viplivaye sho postupovi zastosunki povinni vikoristovuvati Service Worker i Posilatis na manifest z shonajmenshe chotirma klyuchovimi polyami name short name start url i display zi znachennyami standalone abo fullscreen Ikonku rozmirom ne menshe 144 144 v formati png Napriklad icons src images icon 144 png sizes 144x144 type image png Manifest Manifest vebzastosunku ce specifikaciya W3C yaka opisuye manifest u formati JSON yakij dozvolyaye rozrobnikam opisuvati metadani pov yazani iz zastosunkom napriklad Nazva zastosunku Posilannya na ikonki URL z yakogo zapuskayetsya vebzastosunok Konfiguraciya vebzastosunku Opis oriyentaciyi ekrana za zamovchuvannyam Opis rezhimu displeya napriklad povnoekrannij Service Worker i Service Worker i po suti ye merezhevim proksi vseredini brauzera yakij mozhna skriptuvati i programno keruvati HTTP zapitami Voni roztashovuyutsya pomizh merezheyu i vebzastosunkom shob viddavati jomu vmist Yaksho zaprogramuvati yih na keshuvannya vmistu ce dozvolit zastosunkovi pracyuvati oflajn Krim togo Mozhut pracyuvati z push povidomlennyami Mozhut sinhronizuvatisya z danimi servera na foni Application Shell Architecture Dlya priskorennya zavantazhennya servis vorkeri zberigayut bazovij interfejs koristuvacha abo obolonku angl shell vebzastosunku Cya obolonka nadaye pochatkovij statichnij karkas u yakij postupovo mozhe zavantazhuvatis vmist sho dozvolit koristuvacham vikoristovuvati zastosunok ne zvazhayuchi na yakist merezhevogo z yednannya Prostishe kazhuchi obolonka ce vves kod yakij zberigayetsya v keshi na pristroyi PrimitkiGarrett Jesse James Arhiv originalu za 7 travnya 2019 Procitovano 18 lyutogo 2005 Marcotte Ethan Arhiv originalu za 18 kvitnya 2021 Procitovano 25 travnya 2010 Arhiv originalu za 18 grudnya 2016 Procitovano 4 grudnya 2016 Telerik Developer Network 25 bereznya 2015 Arhiv originalu za 4 grudnya 2016 Procitovano 4 grudnya 2016 Russell Alex Arhiv originalu za 24 bereznya 2021 Procitovano 15 chervnya 2015 Google Developers Arhiv originalu za 24 chervnya 2016 Procitovano 17 lipnya 2016 Google Developers Arhiv originalu za 24 lyutogo 2020 Procitovano 15 chervnya 2015 W3C Web App Manifest Working Draft 18 kvitnya 2021 u Wayback Machine retrieved 12 September 2016 Arto Web Agency Arhiv originalu za 9 travnya 2018 Procitovano 8 travnya 2018 Alex Russell Infrequently Noted Arhiv originalu za 25 listopada 2016 Procitovano 7 grudnya 2016 Blog odnogo kibera 7 serpnya 2014 Arhiv originalu za 21 grudnya 2016 Procitovano 7 grudnya 2016 Arhiv originalu za 30 grudnya 2016 Procitovano 7 grudnya 2016 Google Developers Arhiv originalu za 22 kvitnya 2020 Procitovano 24 kvitnya 2020 Google Developers Arhiv originalu za 20 kvitnya 2020 Procitovano 24 kvitnya 2020 Google Developers Arhiv originalu za 23 kvitnya 2020 Procitovano 24 kvitnya 2020 PosilannyaKurs vid Google Intro to Progressive Web Apps 20 grudnya 2016 u Wayback Machine na Udacity