Прогрессивті веб-қосымша - Progressive web application

PWA логотипі

A прогрессивті веб-қосымша (PWA) түрі болып табылады қолданбалы бағдарламалық жасақтама арқылы жеткізіледі желі, оның ішінде жалпы веб-технологияларды қолдана отырып салынған HTML, CSS және JavaScript. А-ны қолданатын кез-келген платформада жұмыс істеуге арналған стандарттарға сәйкес келеді браузер екеуін қосқанда жұмыс үстелі және мобильді құрылғылар.

Мобильді құрылғылар үшін веб-қосымшалар басынан бастап қол жетімді болғанымен, олар баяу жұмыс істеді, мүмкіндіктері аз болды және жергілікті қолданбаларға қарағанда аз қолданылды. PWA функциялары жергілікті қосымшалар арасындағы алшақтықты жоюға және ұқсас пайдаланушылар тәжірибесін жасауға мүмкіндік береді. Мүмкіндіктерге жатады

  • Дербес күйде жұмыс істеңіз
  • Жоғары өнімділік
  • Қызметкерлерде жеке жіпте фондық өңдеу
  • Телефон сенсорларына қол жеткізу
  • Push хабарламаларын қолдау
  • Телефонның негізгі экранындағы белгіше

Прогрессивті веб-бағдарлама типі болғандықтан веб парақ немесе веб-сайт а ретінде белгілі веб-қосымша, олар бөлек жинақтауды немесе таратуды қажет етпейді. Атап айтқанда, әзірлеушілерге немесе қолданушыларға веб-қосымшаларды сандық тарату жүйелері арқылы орнатудың қажеті жоқ Apple App Store дүкені немесе Google Play. Алайда, көптеген PWA провайдерлері үшін тарату жүйелерінде PWA көрінбеуі жергілікті қосымшалармен салыстырғанда кемшілік болып табылады. Ірі қолданбалы дүкендер әртүрлі дәрежеде PWA-ны қолдана бастады, бұл оларды қолданбалы дүкендерде табуға мүмкіндік берді. [1]

2018 жылғы сәуірден бастап PWA функциялары әр түрлі деңгейлерде қолдау көрсетіледі Mozilla Firefox, Google Chrome, Apple Safari, және Microsoft Edge браузерлер, бірақ болашақта қажет мүмкіндіктерді көбірек браузерлер қолдауы мүмкін.[2][3] Бірнеше бизнес айтарлықтай жақсартулар туралы айтады[4] әр түрлі қызметтің негізгі көрсеткіштері PWA іске асырылғаннан кейін, мысалы, параққа, конверсияға немесе кіріске кететін уақыттың ұлғаюы.

Фон

Іске қосылған кезде iPhone 2007 жылы, Стив Джобс жылы әзірленген веб-қосымшалар туралы хабарлады HTML5 қолдану AJAX сәулет, iPhone қосымшаларының стандартты форматы болар еді. Жоқ бағдарламалық жасақтама жиынтығы (SDK) қажет болды, және қолданбалар құрылғы арқылы толығымен интеграцияланған болар еді Сафари браузер қозғалтқышы.[5] Бұл модель кейінірек App Store дүкеніне ауыстырылды, бұл алдын алу құралы ретінде джейлбрейктер және көңілі қалған әзірлеушілерді қуанту.[6] 2007 жылдың қазанында Джобс келесі жылы SDK іске қосылатындығын жариялады.[5] Нәтижесінде, Apple веб-қосымшаларын қолдауды жалғастырғанымен, iOS қосымшаларының басым бөлігі App Store-ға қарай ауысты.

2010 жылдардың басынан бастап динамикалық веб-парақтар интерактивті құру үшін веб-технологияларды қолдануға рұқсат етілді веб-қосымшалар. Жауапты веб-дизайн және экранның икемділігі PWA дамуын қол жетімді етті. HTML, CSS және JavaScript жетілдірілген веб-қосымшаларға интерактивтіліктің үлкен деңгейлерін қосуға мүмкіндік берді, бұл веб-сайтта, демек, PWA-да жергілікті тәжірибе жасауға мүмкіндік береді.[7]

Firefox шығарылды Firefox ОЖ 2013 ж. ол жоспарланған болатын ашық көзі операциялық жүйе HTML5 интерфейсі ретінде Gaia құрастырылған мобильді құрылғылардағы веб-қосымшаларды жергілікті қосымшалар ретінде іске қосуға арналған. Firefox ОЖ-нің дамуы 2016 жылы аяқталды.

2015 жылы дизайнер Фрэнсис Берриман және Google Chrome инженер Алекс Рассел «прогрессивті веб-қосымшалар» терминін енгізді[8] заманауи браузерлер қолдайтын жаңа мүмкіндіктерді, соның ішінде бағдарламаларды сипаттау үшін қызмет көрсету қызметкерлері және веб-бағдарлама көрінеді, бұл қолданушыларға веб-қосымшаларды ана тілінде прогрессивті веб-қосымшаларға жаңартуға мүмкіндік береді операциялық жүйе (OS). Содан кейін Google Android үшін PWA дамуын ілгерілетуге айтарлықтай күш жұмсады.[9][10] Apple компаниясының 2017 жылы Safari-ге қызмет көрсететін жұмысшыларға қолдау көрсетілуімен,[9] PWA-ға ең жиі қолданылатын екі мобильді операциялық жүйеде қолдау көрсетілді, Android және iOS.

2019 жылға қарай PWA жұмыс үстелінің браузерлерінде қол жетімді болды Microsoft Edge[11] (қосулы Windows ) және Google Chrome[12] (Windows жүйесінде, macOS, Chrome OS және Linux ).

Сипаттамалары

Прогрессивті веб-қосымшалар сәйкес келетін кез-келген шолғышта жұмыс істеуге арналған веб-стандарттар. Басқа кросс-платформалық шешімдер сияқты, мақсат - әзірлеушілерге кросс-платформалық қосымшаларды жергілікті бағдарламаларға қарағанда оңай құруға көмектесу.[9]Google Developers айтуынша[8][13][14] PWA сипаттамалары:

  • Прогрессивті - Браузердің таңдауына қарамастан, кез-келген қолданушы үшін жұмыс істейді прогрессивті жақсарту принциптері.
  • Жауапты - кез-келген фор-факторға сәйкес келеді: жұмыс үстелі, мобильді телефон, планшет немесе әлі пайда болмайтын формалар.
  • Алғашқы жүктеуден кейін жылдамырақ - Бастапқы жүктеу аяқталғаннан кейін бірдей мазмұн мен бет элементтерін әр уақытта қайта жүктеудің қажеті жоқ.
  • Байланыс тәуелсізҚызметкерлер желіден тыс немесе сапасыз желілерде пайдалануға рұқсат беру.
  • Қолданба тәрізді - Қолданба стиліндегі өзара әрекеттесу және навигация көмегімен қолданушыға өзін қосымшадай сезінеді.
  • Балғын - Қызметкерді жаңарту үдерісіне байланысты әрдайым жаңарып отырады.
  • Қауіпсіз - арқылы қызмет етті HTTPS жасырын бақылаудың алдын алу және мазмұны бұзылмағанына көз жеткізу.
  • Табуға болады - manifest.json арқылы «қосымша» ретінде анықталады[15] және сервис қызметкерлерін тіркеу, іздеу жүйелерінде анықталуы.
  • Қайта қосылуға болады - пайдалану мүмкіндігі push хабарландырулары пайдаланушымен байланысты сақтау үшін.
  • Орнатылатын - App Store қолданбастан үй экранының белгішелерін ұсынады.
  • Байланыстыруға болады - URL арқылы оңай бөлісуге болады және күрделі орнатуды қажет етпейді.

Браузерлер прогрессивті веб-қосымша деп санайтын сайттың техникалық базалық критерийлерін келесі хабарламада Рассел сипаттады:[16]

  • Қауіпсіз бастаудан шыққан. TLS және жасыл құлыптық дисплейлерде қызмет етеді (белсенді аралас мазмұн жоқ).
  • Желіден тыс жүктеңіз (тек тапсырыс бойынша желіден тыс бет болса да). Демек, бұл прогрессивті веб-қосымшалар сервис қызметкерлерін қажет ететіндігін білдіреді.
  • Веб-қолданба манифестіне сілтеме кем дегенде төрт негізгі қасиеттері бар: аты, қысқа_атауы, start_url және дисплей (автономды немесе толық экран мәнімен)
  • PNG форматында кемінде 144 × 144 үлкен белгіше.
  • Қолдану векторлық графика шексіз масштабталатын және кішірек файл өлшемдерін қажет ететін.

Кейбір прогрессивті веб-қосымшалар App Shell Model деп аталатын архитектуралық тәсілді қолданады.[17] Бұл модельде қызмет көрсетушілер негізгі пайдаланушы интерфейсін немесе «қабық «of жауап беретін веб-дизайн браузердің желіден тыс қосымшасы кэш. Бұл модель PWA-ға веб-байланысы бар немесе онсыз жергілікті пайдалануды қолдайды. Бұл жүктеу уақытын жақсарта алады бастапқы статикалық кадр, мазмұнды біртіндеп және динамикалық түрде жүктеуге болатын орналасу немесе архитектура.[18]

Технологиялар

Прогрессивті веб-қосымшаларды жасауға арналған көптеген қолданылатын технологиялар бар. Барлық PWA кем дегенде қызмет көрсету қызметкері мен манифестті талап етеді.[19][20][21]

Манифест

The веб-қолданбалы манифест[22] Бұл W3C сипаттаманы анықтайтын а JSON негізделген манифест (әдетте manifest.json деп белгіленген)[15] орналастырушыларға орталықтандырылған орын ұсыну метадеректер веб-қосымшамен байланысты, оның ішінде:

  • Веб-қосымшаның атауы
  • Веб-бағдарламаның белгішелеріне немесе сурет нысандарына сілтемелер
  • Веб-бағдарламаны іске қосу немесе ашу үшін қолайлы URL
  • Веб-бағдарламаның конфигурациясы туралы деректер
  • Веб-бағдарламаның әдепкі бағыты
  • Дисплей режимін орнатуға арналған опция, мысалы. толық экран

Бұл метадеректер қолданбаның негізгі экранға қосылуы немесе жергілікті қолданбалармен қатар тізімделуі үшін өте маңызды.

iOS қолдауы

iOS Safari манифесттерді ішінара жүзеге асырады, ал PWA метамәліметтерінің көп бөлігі мета-тегтерге арналған Apple кеңейтімдері арқылы анықталуы мүмкін. Бұл тегтер әзірлеушілерге толық экранды дисплейді қосуға, белгішелер мен экрандардың экранын анықтауға және қосымшаның атын көрсетуге мүмкіндік береді.[23][24]

Веб-жинақтау

Веб-жинақтау мүмкіндік береді алдын-ала құрастырылған жергілікті жылдамдықта веб-шолғышта жұмыс істеуге арналған код.[25] Сияқты тілдерде жазылған кітапханалар C веб-қосымшаларға қосуға болады. JavaScript-тен деректерді жіберу құнына байланысты Веб-жинақтау, жақын аралықтағы қолданыстар тұтас қосымшалардан гөрі, негізінен сандық (дауысты тану және компьютерлік көру сияқты) болады.

Деректерді сақтау

Прогрессивті веб-қолданбаның орындалу контексттері мүмкіндігінше босатылады, сондықтан прогрессивті веб-қосымшалар ұзақ мерзімді ішкі күйдің көпшілігін (пайдаланушы деректері, қолданбаның динамикалық жүктелген ресурстары) келесі тәсілдердің бірінде сақтау керек

Веб-сақтау

Web Storage - бұл W3C стандартты API, ол қазіргі браузерлерде кілттерді сақтауға мүмкіндік береді. API екі нысаннан тұрады: sessionStorage (тек браузер сессиясының соңында жойылатын сессияға арналған сақтауды қосады) және localStorage (сеанстарда сақталуға мүмкіндік береді).[26]

Қызметкерлер

Қызмет көрсету қызметкері - бұл веб-қызметкер негізгі құжаттың веб / HTTP сұраныстарына жауап бере алатын бағдарламаланатын желілік проксиді жүзеге асырады. Ол қашықтағы сервердің қол жетімділігін тексеріп, сол сервер болған кезде мазмұнды кэштей алады және сол мазмұнды құжатқа кейінірек ұсына алады. Сервис қызметкерлері, кез-келген басқа веб-қызметкерлер сияқты, негізгі құжат контекстінен бөлек жұмыс істейді. Қызметкерлер жұмыс істей алады push хабарландырулары және деректерді фондық режимде синхрондау, ресурстарға сұраныстарды кэштеу немесе алу, желі сұрауларын ұстап алу және оларды тіркеген құжаттан тәуелсіз орталықтандырылған жаңартуларды алу, тіпті ол құжат жүктелмеген кезде де.[27]

Қызметкерлер үш сатылы өмірлік циклдан өтеді Тіркеу, Орнату және Іске қосу. Тіркеу браузерге орнатуға дайындық кезінде қызмет көрсететін қызметкердің орналасқан жерін айтуды қамтиды. Орнату веб-браузерге орнатылған қызмет қызметкері болмаған кезде немесе қызмет қызметкері жаңартылған жағдайда орын алады. Іске қосу барлық PWA парақтары жабылған кезде пайда болады, осылайша алдыңғы нұсқасы мен жаңартылған нұсқасы арасында қайшылық болмайды. Өмірлік цикл сонымен қатар қызметші нұсқалары арасында ауысу кезінде бірізділікті сақтауға көмектеседі, өйткені домен үшін тек бір қызмет қызметкері белсенді бола алады.[27]

Индекстелген дерекқор API

Indexed Database API - бұл барлық негізгі шолғыштарда қол жетімді W3C стандартты дерекқор API. API қазіргі заманғы браузерлермен қолдау көрсетіледі және сақтауды қамтамасыз етеді JSON жол ретінде ұсынылатын нысандар мен кез-келген құрылымдар.[28] Индекстелген дерекқордың API-ін айналасында қосымша құрылымдар ұсынатын қаптама кітапханасында қолдануға болады.

AppCache (ескірген)

Application Cache (немесе AppCache немесе HTML5 кэш манифест) - бұл құрылғы желіден тыс болған кезде қолданбаға кейінірек пайдалану үшін мазмұнды алдын-ала кэштеуге мүмкіндік беретін алдыңғы технология.[29] Ол үшін жеткілікті жұмыс істейді бір парақты қосымшалар ол әзірленген, бірақ вики сияқты бірнеше парақты қосымшалар үшін проблемалық жолдар болмайды.[30] 2019 жылдың мамыр айынан бастап технологияны ірі браузерлер қолдайды және кейбір сайттар бірнеше жылдар бойы қолданады, бірақ ол қазірдің өзінде қызмет көрсету қызметкерлерінің пайдасына жойылған және соңында жойылады.

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ «Прогрессивті веб-қосымшалар | Software AG». techradar.softwareag.com. Алынған 2020-09-25.
  2. ^ «Мен pwa қолдануға бола ма?». CanIUse. Алынған 14 тамыз 2018.
  3. ^ «Қызметкер дайын ба?». Джейк Арчибальд.
  4. ^ Рзуткевич, Джейсон. «Неліктен прогрессивті веб-қосымшалар мобильді вебтің болашағы (2019 жылғы зерттеу)». YML. Алынған 4 қазан 2019.
  5. ^ а б Ричи, Рене (5 наурыз 2018). «App Store Year Zero: тәтті емес веб-қосымшалар iPhone-ды SDK-ге жеткізді». iMore. Алынған 23 мамыр 2019.
  6. ^ «IPhone-ға арналған Джобстың түпнұсқалық көрінісі: үшінші тараптың қолданбалары жоқ». 9to5Mac. 21 қазан 2011 ж. Алынған 22 мамыр 2019.
  7. ^ Маркотта, Этан. «Жауапты веб-дизайн». Тізім бөлек. Алынған 25 мамыр, 2010.
  8. ^ а б Рассел, Алекс. «Прогрессивті веб-қосымшалар: қойындыларды жанымызды жоғалтпай құтқару». Алынған 15 маусым, 2015.
  9. ^ а б c Эванс, Джонни (26 қаңтар 2018). «Apple болашаққа веб-қосымшалармен оралады». Computerworld. Алынған 23 мамыр 2019.
  10. ^ Ladage, Aaron (17 сәуір 2018). «Прогрессивті веб-қосымшалар осында және олар бәрін өзгертеді». DEG. Алынған 23 мамыр 2019.
  11. ^ Pflug, Kyle (6 ақпан 2018). «Microsoft Edge және Windows 10 жүйелеріне прогрессивті веб-қосымшаларды қарсы алу». Microsoft Windows блогтары. Алынған 13 қыркүйек 2019.
  12. ^ LePage, Пит (4 маусым 2019). «Жұмыс үстеліндегі прогрессивті веб-қосымшалар». Google Developers. Алынған 13 қыркүйек 2019.
  13. ^ «Сіздің алғашқы прогрессивті веб-қосымшаңыз | Веб негіздері - Google әзірлеушілері». Сіздің алғашқы прогрессивті веб-қосымшаңыз | Веб негіздері - Google Developers. Алынған 2016-07-17.
  14. ^ Google Developers. «Прогрессивті веб-қосымша». Алынған 15 маусым, 2015.
  15. ^ а б W3C «Веб-бағдарламаның манифесті», жұмыс жобасы, 2016 жылдың 12 қыркүйегінде шығарылды
  16. ^ Рассел, Алекс. «Прогрессивті веб-қосымшаны не жасайды». Алынған 18 қазан, 2016.
  17. ^ «App Shell моделі».
  18. ^ Османи, Адди. «App Shell моделі | Веб негіздері». Google Developers. Алынған 23 мамыр 2019.
  19. ^ «Ашылатын». Mozilla Developer Network. Алынған 2017-04-24.
  20. ^ «Желілік тәуелсіз». Mozilla Developer Network. Алынған 2017-04-24.
  21. ^ «Қолданбалы Shell архитектурасымен жылдам жүктелетін веб-бағдарламалар». Google Developers. Алынған 2017-04-24.
  22. ^ «MDN бойынша веб-манифест құжаттары». MDN веб-құжаттары.
  23. ^ «Прогрессивті веб-қосымшаларға арналған iOS 12.2-де қандай жаңалықтар бар». Орташа. 27 наурыз 2019.
  24. ^ «Веб-қосымшаларды теңшеу». Safari веб-мазмұны бойынша нұсқаулық.
  25. ^ «WebAssembly тұжырымдамалары». MDN. Алынған 14 тамыз 2018.
  26. ^ «Web Storage API». MDN. Алынған 14 тамыз 2018.
  27. ^ а б «Қызметкермен таныстыру | Веб». Google Developers. 1 мамыр 2019. Алынған 23 мамыр 2019.
  28. ^ «IndexedDB негізіндегі тұжырымдамалар». MDN. Алынған 14 тамыз 2018.
  29. ^ «Қолданба кэшін пайдалану». MDN. Mozilla. Алынған 14 тамыз 2018.
  30. ^ «Қолданбалар кэші - бұл сөмке». Тізім бөлек. Алынған 14 тамыз 2018.