יישום אינטרנט מתקדם

מתוך ויקיפדיה, האנציקלופדיה החופשית

יישום אינטרנט מתקדםאנגלית: Progressive Web Application או PWA) הוא סוג של יישום מחשב שעובד כאתר אינטרנט עם חווית אפליקציית Native ללא תלות בדפדפן[1]. יישומי אינטרנט מתקדמים נכתבים באמצעות HTML, JavaScript, CSS, ו-WebAssembly. היישומים פועלים בכל פלטפורמה שבה יש דפדפן שתומך בתקנים הנדרשים, ביניהם מחשבים שולחניים וטלפונים ניידים.

מכיוון שיישום אינטרנט מתקדם הוא סוג של דף אינטרנט הוא לא דורש כלי הפצה נפרד. המפתחים יכולים לפרסם את היישום באופן מקוון, לוודא שהוא עומד בכל הדרישות הבסיסיות, והמשתמשים יוכלו להוריד את היישום למסך הבית שלהם. ניתן גם לפרסם יישומי אינטרנט דרך App Store ו-Google Play[2].

היסטוריה[עריכת קוד מקור | עריכה]

חלופות קודמות[עריכת קוד מקור | עריכה]

במעמד השקת האייפון ב-2007, הכריז סטיב ג'ובס שיישומי אינטרנט (שפותחו באמצעות HTML 5 בארכיטקטורת AJAX) יהיו הפורמט הסטנדרטי לפיתוח אפליקציות באייפון. לא נדרשה ערכת פיתוח תוכנה (SDK), והאפליקציות שולבו באייפון באמצעות הדפדפן ספארי[3]. באוקטובר 2007 הודיע סטיב ג'ובס כי בכוונת החברה להשיק SDK במועד מאוחר יותר, מה שהקל על אפל לעבור להשתמש ב-App Store, כדי להקשות על פריצת מערכת ההפעלה ולאור דרישות המפתחים[4].

החל מ-2010 ואילך, דפי אינטרנט דינמיים אפשרו ליצור יישומי אינטרנט אינטראקטיביים. עיצוב אתרים רספונסיבי והגמישות בגודל המסך הפכו את הפיתוח לנגיש יותר. שיפורים בשפות כמו HTML וג'אווה סקריפט הביאו יכולות חדשות ליישומי האינטרנט והפכו את חוויית השימוש בהם לדומה יותר לאתר[5].

בשנת 2013 הוציאה מוזילה את Firefox OS, מערכת הפעלה בקוד פתוח להפעלת יישומי אינטרנט כיישומי ברירת מחדל בטלפונים ניידים. הפיתוח של המערכת הסתיים ב-2016[6], וב-2017 היא נזנחה לחלוטין[7]. עם זאת, חלקים קטנים מהמערכת משמשים ב-KaiOS[8].

הצגת הכלי[עריכת קוד מקור | עריכה]

ב-2015, המעצב פרנסיס ברימן ומהנדס גוגל כרום אלכס ראסל המציאו את הביטוי "יישום אינטרנט מתקדם"[9] כדי לתאר יישומים שעושים שימוש בדפדפנים כדי לאפשר למשתמשים לשדרג את יישומי האינטרנט שלהם ליישומים מתקדמים במסגרת מערכת ההפעלה. לאחר מכן, גוגל החלה לשים דגש על קידום PWA באנדרואיד[10]. דפדפן פיירפוקס החל לתמוך ביישומים אלה ב-2016, ומיקרוסופט אדג' וספארי של אפל החלו לתמוך ב-2018[11].

בדצמבר 2020, דפדפן פיירפוקס בגרסת הדסקטופ זנח את התמיכה ב-PWA[12].

חנויות[עריכת קוד מקור | עריכה]

מכיוון שיישומי אינטרנט הם בעצם דפי אינטרנט, אין להם צורך בחנויות אפליקציות או בכל אמצעי הפצה אחר. כמו כן, אין דרישה מהמפתחים להשתמש בחנויות האפליקציות של אפל, גוגל, מיקרוסופט וכדומה כדי להתקין יישומים כאלה. עם זאת, חנויות יישומים מסוימות תומכות בהורדת יישומי אינטרנט בדרגות משתנות. בחנות היישומים של מיקרוסופט היא אף מפרסמת אוטומטית, ללא אישור המפתחים, יישומי אינטרנט שהתגלו באינדקס האתרים של בינג[13].

מאפיינים[עריכת קוד מקור | עריכה]

יישומי אינטרנט מתקדמים מיועדים לעבוד על כל דפדפן שתומך בתקן. בדומה לפתרונות חוצי–פלטפורמות אחרים, המטרה היא לאפשר למפתחים לפתח יישומים בקלות רבה יותר לעומת אפליקציות נייטיב.

יישומי אינטרנט מסוימים בארכיטקטורה המכונית App Shell Model[14]. במודל זה, מתאפשר ל-PWA לפעול גם ללא חיבור לאינטרנט. עובדה זו יכולה לשפר את זמן הטעינה, על ידי טעינת מסגרת ראשונית ולאחר מכן להוריד תוכן נוסף בצורה דינמית[15].

לעומת אפליקציות Native[עריכת קוד מקור | עריכה]

בשנת 2017 השיקה טוויטר את טוויטר לייט, גרסת PWA של אפליקציית הנייטיב באנדרואיד וב-iOS. לפי טוויטר, הגרסה הקלה צרכה רק 1%–3% מגודל האפליקציה הרגילה[16]. סטארבקס גם היא מספקת אפליקציית PWA, שקטנה ב-99.84% מהמקבילה שלה ל-iOS[17].

ביקורת שפורסמה בפורבס בשנת 2018 מצאה שמשתמשים ב-PWA של פינטרסט השתמשו בו 40% יותר לעומת המשתמשים באתר הרגיל לנייד. בנוסף, שיעורי ההכנסות ממודעות גדלו ב-44% והמעורבות עלתה ב-60%[18].

טכנולוגיות[עריכת קוד מקור | עריכה]

ישנן טכנולוגיות רבות המשמשות ליצירת יישומי אינטרנט מתקדמים. יישום נחשב ל-PWA אם הוא עומד בקריטריונים שונים ויכול לפעול במצב לא מקוון, וכן במידה וניתן להוסיף אותו לדף הבית של המכשיר.

WebAssembly[עריכת קוד מקור | עריכה]

WebAssembly מאפשרת הרצת קוד מראש בדפדפן האינטרנט במהירות דומה למהירות המקורית[19]. ספריות שכתובות בשפות כמו שפת C יכולות להתווסף ליישומי אינטרנט.

אחסון נתונים[עריכת קוד מקור | עריכה]

Web Storage הוא API סטנדרטי של W3C המאפשר אחסון ערכי מפתח בדפדפנים מודרניים. ה-API מורכב משני אובייקטים: sessionStorage שמאפשר אחסון שנמחק עם סגירת הדפדפן, ו-localStorage שנשמר לאורך ההפעלות.

Indexed Database API[עריכת קוד מקור | עריכה]

Indexed Database API הוא מסד נתונים בסיסי של W3C שזמין בכל הדפדפנים בעולם. הוא מאפשר אחסון של אובייקטי JSON וכל המבנים שניתן להציג כמחרוזת.

קישורים חיצוניים[עריכת קוד מקור | עריכה]

הערות שוליים[עריכת קוד מקור | עריכה]

  1. ^ יישומי אינטרנט פרוגרסיביים, באתר SGO
  2. ^ "Progressive Web Apps | Software AG". techradar.softwareag.com. נבדק ב-29 ביוני 2023. {{cite web}}: (עזרה)
  3. ^ Ritchie, Rene (5 במרץ 2018). "App Store Year Zero: Unsweet web apps drove iPhone to an SDK". iMore (באנגלית). נבדק ב-29 ביוני 2023. {{cite web}}: (עזרה)
  4. ^ "Jobs' original vision for the iPhone: No third-party native apps". 9to5Mac. 21 באוקטובר 2011. נבדק ב-29 ביוני 2023. {{cite web}}: (עזרה)
  5. ^ Marcotte, Ethan (25 במאי 2010). "Responsive Web Design". A List Apart. נבדק ב-29 ביוני 2023. {{cite web}}: (עזרה)
  6. ^ "Mozilla ends commercial Firefox OS development - gHacks Tech News". gHacks Technology News (באנגלית אמריקאית). 2016-09-27. נבדק ב-29 ביוני 2023. {{cite web}}: (עזרה)
  7. ^ Hoffman, Chris; PCWorld (2016-09-28). "Mozilla is stopping all commercial development on Firefox OS". PCWorld (באנגלית). נבדק ב-29 ביוני 2023. {{cite web}}: (עזרה)
  8. ^ "KaiOS, a feature phone platform built on the ashes of Firefox OS, adds Facebook, Twitter and Google apps". TechCrunch (באנגלית אמריקאית). 26 בפברואר 2018. נבדק ב-29 ביוני 2023. {{cite web}}: (עזרה)
  9. ^ Russell, Alex. "Progressive Web Apps: Escaping Tabs Without Losing Our Soul". נבדק ב-30 ביוני 2023. {{cite web}}: (עזרה)
  10. ^ Ladage, Aaron (17 באפריל 2018). "Progressive Web Apps Are Here and They're Changing Everything". DEG. נבדק ב-30 ביוני 2023. {{cite web}}: (עזרה)
  11. ^ "Can I use... Support tables for HTML5, CSS3, etc". caniuse.com. נבדק ב-30 ביוני 2023. {{cite web}}: (עזרה)
  12. ^ Newman, Jared (2021-01-26). "Firefox just walked away from a key piece of the open web". Fast Company. נבדק ב-30 ביוני 2023. {{cite web}}: (עזרה)
  13. ^ "The first batch of Windows 10 Progressive Web Apps is here". Windows Central. 2018-04-07. נבדק ב-29 ביוני 2023. {{cite web}}: (עזרה)
  14. ^ "The App Shell Model".
  15. ^ Osmani, Addi. "The App Shell Model Web Fundamentals". Google Developers (באנגלית). נבדק ב-23 במאי 2019. {{cite web}}: (עזרה)
  16. ^ Shankland, Stephen (30 ביולי 2020). "Twitter's app is helping stop phones from strangling the web". CNET. נבדק ב-30 ביוני 2023. {{cite web}}: (עזרה)
  17. ^ "12 Best Examples of Progressive Web Apps (PWAs) in 2021". SimiCart. 2021-02-22. נבדק ב-30 ביוני 2023. {{cite web}}: (עזרה)תחזוקה - ציטוט: url-status (link)
  18. ^ Osmani, Addy (30 בנובמבר 2017). "A Pinterest Progressive Web App Performance Case Study". ChromiumDev team. נבדק ב-30 ביוני 2023. {{cite web}}: (עזרה)
  19. ^ "WebAssembly Concepts". MDN. נבדק ב-30 ביוני 2023. {{cite web}}: (עזרה)