ããã°ã¬ãã·ãã¦ã§ãã¢ã㪠(PWA)
ããã°ã¬ãã·ãã¦ã§ãã¢ã㪠(Progressive web apps, PWA) ã¯ãã¦ã§ããã©ãããã©ã¼ã æè¡ã使ç¨ãã¦æ§ç¯ãããã¢ããªã§ããããã©ãããã©ã¼ã å°ç¨ã®ã¢ããªã®ãããªä½¿ãåæãæä¾ãã¾ãã
PWA ã¯ã¦ã§ããµã¤ãã®ããã«ãåä¸ã®ã³ã¼ããã¼ã¹ããè¤æ°ã®ãã©ãããã©ã¼ã ã端æ«ã§åä½ãããã¨ãã§ãã¾ãããã©ãããã©ã¼ã å°ç¨ã®ã¢ããªã®ããã«ã端æ«ã«ã¤ã³ã¹ãã¼ã«ãããªãã©ã¤ã³ãããã¯ã°ã©ã¦ã³ãã§å¦çãã端æ«ãä»ã«ãã¤ã³ã¹ãã¼ã«ããã¦ããã¢ããªã¨çµ±åãããã¨ãã§ãã¾ãã
ã¬ã¤ã
ãããã®ã¬ã¤ãã§ã¯ãPWA ã®ãã¾ãã¾ãªå´é¢ã«ã¤ãã¦æ¦å¿µçã«èª¬æãã¦ãã¾ããPWAã§ã©ã®ãããªãã¨ãã§ããããçè§£ãããããå®ç¾ããæ¹æ³ãçè§£ããã®ã«ååãªãã¤ã³ã¿ã¼ãæä¾ããããã®ãã®ã§ãã
- ããã°ã¬ãã·ãã¦ã§ãã¢ããªã¨ã¯
-
PWA ã®ç´¹ä»ã徿¥ã®ã¦ã§ããµã¤ãããã©ãããã©ã¼ã å°ç¨ã®ã¢ããªã¨ã®æ¯è¼ãä¸»ãªæ©è½ã®è¼ªéç·ã
- PWA ãã¤ã³ã¹ãã¼ã«å¯è½ã«ãã
-
PWA ãå®ç¾©ããè¦ç´ ã® 1 ã¤ã¯ã端æ«ã«ã¤ã³ã¹ãã¼ã«ã§ããã¦ã¼ã¶ã¼ã«ã¯ãã©ãããã©ã¼ã å°ç¨ã®ã¢ããªã¨ãã¦è¡¨ç¤ºããããã¨ã§ããããã¯ã端æ«ã®æ°¸ç¶çãªæ©è½ã§ãããã¦ã¼ã¶ã¼ã¯ä»ã®ã¢ããªã¨åæ§ã«ãOS ããç´æ¥èµ·åãããã¨ãã§ãã¾ãããã®ã¬ã¤ãã§ã¯ããã¤ã³ã¹ãã¼ã«å¯è½ãã¨ãããã¨ã®æå³ãPWA ãã¤ã³ã¹ãã¼ã«å¯è½ã«ããããã«æå®ãããå¿ è¦æ¡ä»¶ãã¤ã³ã¹ãã¼ã«æã®ä½¿ãåæãã«ã¹ã¿ãã¤ãºããæ¹æ³ã«ã¤ãã¦èª¬æãã¾ãã
- ã¦ã§ãã¢ããªã®ã¤ã³ã¹ãã¼ã«ã¨ã¢ã³ã¤ã³ã¹ãã¼ã«
-
ãã®ã¬ã¤ãã§ã¯ãã¦ã¼ã¶ã¼ã端æ«ã« PWA ãã¤ã³ã¹ãã¼ã«ããã³ã¢ã³ã¤ã³ã¹ãã¼ã«ããæ¹æ³ã説æãã¾ãã
- ãªãã©ã¤ã³æä½ã¨ããã¯ã°ã©ã¦ã³ãå¦ç
-
ãã®ã¬ã¤ãã§ã¯ã端æ«ã®ãããã¯ã¼ã¯æ¥ç¶ãéåããã¡ã§ããPWA ãã¦ã¼ã¶ã¼ã«è¯ã使ãåæãå¾ãããã«ã¯ã©ã®ãããªæè¡ãè¨å®ããã°ããããã¾ããã¡ã¤ã³ã®ã¢ããªãå®è¡ãã¦ããªãå ´åã§ãããã¯ã°ã©ã¦ã³ãã§æä½ãè¡ãã«ã¯ã©ã®ãããªæè¡ãè¨å®ããã°ãããã«ã¤ãã¦ãç´¹ä»ãã¾ãã
- ãã£ãã·ã¥
-
PWA ããªã½ã¼ã¹ããã¼ã«ã«ã«ãã£ãã·ã¥ãããã¨ãå¯è½ã«ãã API ã®æ¦è¦ãããã³ PWA ããªãã©ã¤ã³æ©è½ãå®è£ ããéã«ä½¿ç¨ããä¸è¬çãªæ¦ç¥ãããã¤ãç´¹ä»ãã¾ãã
- PWA ã®ãã¹ããã©ã¯ãã£ã¹
-
PWA ã¯ããã¾ãã¾ãªãã©ã¦ã¶ã¼ã端æ«ã§ã®åä½ã«å¯¾å¿ããã¢ã¯ã»ã·ããªãã£ã確ä¿ããåªããããã©ã¼ãã³ã¹ãçºæ®ãããªãã¬ã¼ãã£ã³ã°ã·ã¹ãã ã¨é©åã«çµ±åããã¦ããå¿ è¦ãããã¾ãããã®ã¬ã¤ãã§ã¯ãPWA ãå¯è½ãªéãåªãããã®ã«ããããã®æåã®ææ³ã®ä¾ãæ²è¼ããã¦ãã¾ãã
æ¹æ³è«
ãããã®ã¬ã¤ãã§ã¯ãç¹å®ã® PWA æ©è½ã®å®è£ æ¹æ³ã«ã¤ãã¦ãå ·ä½çãªè©³ç´°ãªæé ã説æããã¦ãã¾ãã
- ã¹ã¿ã³ãã¢ãã³ã¢ããªã®ä½æ
-
PWA ãèµ·åãããéã«ããã©ã¦ã¶ã¼ã®ã¿ãã§ã¯ãªããèªåèªèº«ã§å°ç¨ã®ã¦ã£ã³ãã¦ã§èµ·åãããããã«æå®ããæ¹æ³ã説æãã¾ãã
- ã¢ããªã®ã¢ã¤ã³ã³ãå®ç¾©
-
PWA ã端æ«ã«ã¤ã³ã¹ãã¼ã«ãããéã«ä½¿ç¨ããã¢ã¤ã³ã³ã»ãããèªåèªèº«ã§å®ç¾©ããæ¹æ³ã説æãã¦ãã¾ãã
- ã¢ããªã®è²ã®ã«ã¹ã¿ãã¤ãº
-
PWA ã®èæ¯è²ã¨ãã¼ãè²ãè¨å®ããã«ã¯ã©ãããã°ããããè¨è¿°ãã¦ãã¾ãã
- ããã¸ã®è¡¨ç¤º
-
PWA ã®ã¢ã¤ã³ã³ã«ããã¸ã表示ããæ¹æ³ã«ã¤ãã¦èª¬æãã¦ãã¾ããä¾ãã°ãã¦ã¼ã¶ã¼ã«æ°ããã¡ãã»ã¼ã¸ãå±ãããã¨ãç¥ãããå ´åãªã©ã§ãã
- ã¢ããªã®ããããã¢ã¯ã·ã§ã³ãã·ã§ã¼ãã«ããã¨ãã¦å ¬é
-
PWA ã®ä¸è¬çãªæä½ãå ¬éããæ¹æ³ã«ã¤ãã¦ããªãã¬ã¼ãã£ã³ã°ã·ã¹ãã ã®ã¢ããªã·ã§ã¼ãã«ããã¡ãã¥ã¼ããèµ·åã§ãããã¨ãè¨è¿°ããã¦ãã¾ãã
- ã¢ããªéã®ãã¼ã¿å ±æ
-
PWA ããªãã¬ã¼ãã£ã³ã°ã·ã¹ãã ã®ã¢ããªå ±æã¡ã«ããºã ã使ç¨ãã¦ãä»ã«ããã¼ã¿ãå ±æã§ãããã¨ã説æãã¦ãã¾ãã
- PWA ããã®ã¤ã³ã¹ãã¼ã«ã®èµ·å
-
éçºè ãèªåèªèº«ã§ UI ãæä¾ããã¦ã¼ã¶ã¼ã« PWA ã®ã¤ã³ã¹ãã¼ã«ãä¿ãæ¹æ³ã説æãã¦ãã¾ãã
- PWA ã¨ã®ãã¡ã¤ã«ã®é¢é£ä»ã
-
ãã¡ã¤ã«ã®ç¨®é¡ã¨ PWA ã®é¢é£ä»ãã使ããæ¹æ³ã説æããã¦ã¼ã¶ã¼ããã¡ã¤ã«ãã¯ãªãã¯ããã¨ãPWA ãèµ·åãã¦ä½ããå¦çããããã«ãããã¨ãã§ãã¾ãã
ãã¥ã¼ããªã¢ã«
ãããã®ãã¥ã¼ããªã¢ã«ã§ã¯ãPWA ãã¼ããã使ãã¾ãããã¥ã¼ããªã¢ã«ã§ã¯ãã¢ããªã使ããæ®µéãæåããæå¾ã¾ã§é ã追ã£ã¦èª¬æããã¢ããªã®ãã¾ãã¾ãªæ©è½ã®å®è£ æ¹æ³ã«ã¤ãã¦è§£èª¬ãã¾ãã
- åãã¦ã® PWA ã®ä½æ
-
ããã¯åå¿è åãã®ãã¥ã¼ããªã¢ã«ã§ãæã®å¨æã追跡ãã PWA ã®ä½ææ¹æ³ã説æãã¦ãã¾ããã¬ãã¹ã³ã«ã¯ãå®å ¨ã«æ©è½ããã¦ã§ãã¢ããªã使ããããã«è¦æ±ããã HTMLãCSSãJavaScript ã®æ¦è¦ããã¹ãç°å¢ã®è¨å®ãã¦ã§ãã¢ããªã PWA ã«ã¢ããã°ã¬ã¼ãããããã®å®å ¨ãªèª¬æãå«ã¾ãã¦ãã¾ãããããã§ã¹ãã®éçºã¨æ¤æ»ããµã¼ãã¹ã¯ã¼ã«ã¼ã®è¿½å ããµã¼ãã¹ã¯ã¼ã«ã¼ã使ç¨ããå¤ããã£ãã·ã¥ã®åé¤ãªã©ãã¦ã§ãã¢ããªã PWA ã«ã¢ããã°ã¬ã¼ãããããã®ã¬ã¤ããè¨è¼ããã¦ãã¾ãã
- PWA ãæ·±ãæãä¸ãã
-
ããã¯ä¸ç´è åãã®ãã¥ã¼ããªã¢ã«ã§ãjs13kGames 2017 ç«¶æã® A-Frame ã«ãã´ãªã¼ã«éä¿¡ããã²ã¼ã ã®æ å ±ãæ²è¼ãã¦ãã PWA ã®ä½ææé ã説æãã¦ãã¾ãã ãã®ãã¥ã¼ããªã¢ã«ã§ã¯ãéç¥ãããã·ã¥éç¥ãã¢ããªã®ããã©ã¼ãã³ã¹ãªã©ã®è¿½å æ©è½ãå«ããPWA ã使ããããã§å¿ è¦ãªåºæ¬äºé ããã¹ã¦è¨è¼ãã¦ãã¾ãã
ãªãã¡ã¬ã³ã¹
PWA ãæ§ç¯ããéã«ä½¿ç¨ããã¦ã§ãæè¡ã«é¢ãããªãã¡ã¬ã³ã¹ããã¥ã¡ã³ãã§ãã
ã¦ã§ãã¢ããªãããã§ã¹ã
- ã¦ã§ãã¢ããªãããã§ã¹ãã®ã¡ã³ãã¼
-
éçºè ã¯ã¦ã§ãã¢ããªãããã§ã¹ãã¡ã³ãã¼ã使ç¨ã㦠PWA ãè¨è¿°ãããã®å¤è¦³ãã«ã¹ã¿ãã¤ãºããããã«æ·±ã OS ã«çµ±åãããã¨ãã§ãã¾ãã
ãµã¼ãã¹ã¯ã¼ã«ã¼ API
ã¢ããªã¨ã®ã³ãã¥ãã±ã¼ã·ã§ã³
ãµã¼ãã¹ã¯ã¼ã«ã¼ãé¢é£ä»ããããã¯ã©ã¤ã¢ã³ã PWA ã¨éä¿¡ããããã«ä½¿ç¨ã§ãã API ã¯æ¬¡ã®ã¨ããã§ãã
Client.postMessage()-
ãµã¼ãã¹ã¯ã¼ã«ã¼ãã¯ã©ã¤ã¢ã³ã PWA ã«ã¡ãã»ã¼ã¸ãéä¿¡ã§ããããã«ãã¾ãã
- ããã¼ããã£ã¹ããã£ã³ãã« API
-
ãµã¼ãã¹ã¯ã¼ã«ã¼ã¨ãã®ã¯ã©ã¤ã¢ã³ãã§ãã PWA ããåºæ¬çãªåæ¹åéä¿¡ãã£ãã«ã確ç«ã§ããããã«ãã¾ãã
ãªãã©ã¤ã³æä½
次㮠API ããµã¼ãã¹ã¯ã¼ã«ã¼ã§ä½¿ç¨ãããã¨ã§ãã¢ããªããªãã©ã¤ã³ã§åä½ããããã¨ãã§ãã¾ãã
Cache-
HTTP ã¬ã¹ãã³ã¹ç¨ã®æ°¸ç¶çãªã¹ãã¬ã¼ã¸ã¡ã«ããºã ã¯ãã¢ããªããªãã©ã¤ã³ã®éã«åå©ç¨ã§ããè³ç£ãä¿åããããã«ä½¿ç¨ãã¾ãã
Clients-
ãµã¼ãã¹ã¯ã¼ã«ã¼ã«ãã£ã¦å¶å¾¡ããã¦ããææ¸ã«ã¢ã¯ã»ã¹ããããã«æä¾ãããã¤ã³ã¿ã¼ãã§ã¤ã¹ã§ãã
FetchEvent-
ã¯ã©ã¤ã¢ã³ã PWA ã«ãã£ã¦è¡ããããã¹ã¦ã® HTTP ãªã¯ã¨ã¹ãã¨ã¨ãã«ããµã¼ãã¹ã¯ã¼ã«ã¼ã«é ä¿¡ãããã¤ãã³ãããã®ã¤ãã³ãã使ç¨ãã¦ãé常éããµã¼ãã¼ã«ãªã¯ã¨ã¹ããéä¿¡ããå°æ¥ä½¿ç¨ããããã«ã¬ã¹ãã³ã¹ãä¿åãããã¨ãããªã¯ã¨ã¹ããååãã¦ååãã£ãã·ã¥ããã¬ã¹ãã³ã¹ã§å³åº§ã«å¿çãããã¨ãã§ãã¾ãã
ããã¯ã°ã©ã¦ã³ãå¦ç
以ä¸ã® API ã使ç¨ãããã¨ã§ããµã¼ãã¹ã¯ã¼ã«ã¼ã¯ãã¢ããªãå®è¡ããã¦ããªãå ´åã§ãããã¯ã°ã©ã¦ã³ãã§ã¿ã¹ã¯ãå®è¡ãããã¨ãã§ãã¾ãã
- ããã¯ã°ã©ã¦ã³ãåæ API
-
å®å®ãããããã¯ã¼ã¯ã«æ¥ç¶ããã¾ã§ãã¿ã¹ã¯ãå»¶æãã¦ãµã¼ãã¹ã¯ã¼ã«ã¼ã§å®è¡ããæ¹æ³ã§ãã
- ã¦ã§ã宿ããã¯ã°ã©ã¦ã³ãåæ API
-
ãããã¯ã¼ã¯æ¥ç¶æã«ããµã¼ãã¹ã¯ã¼ã«ã¼ã§å®æçã«å®è¡ããã¿ã¹ã¯ãç»é²ããæ¹æ³ã§ãã
- ããã¯ã°ã©ã¦ã³ããã§ãã API
-
ãµã¼ãã¹ã¯ã¼ã«ã¼ããåç»ãé³å£°ãã¡ã¤ã«ã®å ´åãªã©ããã¦ã³ãã¼ãã«ããªãã®æéããããå ´åã§ããã¦ã³ãã¼ãã管çããããã®ã¡ã½ããã
ãã®ä»ã®ã¦ã§ã API
- IndexedDB
-
ãã¡ã¤ã«ãå«ã大éã®æ§é åãã¼ã¿ç¨ã®ã¯ã©ã¤ã¢ã³ãå´ã¹ãã¬ã¼ã¸ API ã§ãã
- ãã㸠API
-
ã¢ããªã±ã¼ã·ã§ã³ã¢ã¤ã³ã³ã«ããã¸ãè¨å®ããæ¹æ³ã§ãç ©ããããæããéç¥ãæä¾ãã¾ãã
- éç¥ API
-
ãªãã¬ã¼ãã£ã³ã°ã·ã¹ãã ã¬ãã«ã§è¡¨ç¤ºãããéç¥ãéä¿¡ããæ¹æ³ã§ãã
- ã¦ã§ãå ±æ API
-
ã¦ã¼ã¶ã¼ã端æ«ä¸ã§é¸æããä»ã®ã¢ããªã¨ããã¹ãããªã³ã¯ããã¡ã¤ã«ãããã³ä»ã«ãã³ã³ãã³ããå ±æããä»çµã¿ã§ãã
- ã¦ã£ã³ãã¦å¶å¾¡ãªã¼ãã¼ã¬ã¤ API
-
ãã¹ã¯ããã OS ã«ã¤ã³ã¹ãã¼ã«ããã PWA ç¨ã® API ã§ãæ¢å®ã®ã¦ã£ã³ãã¦ã¿ã¤ãã«ãã¼ãé表示ã«ããã¢ããªã¦ã£ã³ãã¦ã®å ¨é¢ã«ã¢ããªã表示ã§ããããã«ãã¾ãã
é¢é£æ å ±
- Progressive web apps (web.dev)
- Learn PWA (web.dev)
- ããã°ã¬ãã·ã Web ã¢ã㪠(PWA) ã®æ¦è¦ (learn.microsoft.com, 2023)