ãµã«ã§ããããGitå ¥éã¯ãµã«å çã®Gitå ¥éã«æ¹åãã¾ããã
ãµã«ã§ããããGitå ¥éãPWAã«å¯¾å¿ãã¾ããã
iOSãAndroidã®ã¹ãã¼ããã©ã³ã®ãã¼ã ç»é¢ã«ãµã«ã§ããããGitå ¥éã追å ãããã¨ã§ãã¤ãã£ãã¢ããªã®ããã«èµ·åãããã©ã¦ã¶ãããé«éã«é²è¦§ãããã¨ãå¯è½ã«ãªãã¾ãã
ããã«ã¡ã¯ã
ãã¼ã©ãã®ãã¼ã±ãã£ã³ã°èª²æå±ã®ã¬ãªã§ãã
ç§ã¯ãã¼ã©ããéå¶ãããµã¤ããCacooã®éçºããµãã¼ããããã¨ãã¼ã©ãå
ã横æãã¦ããããã³ãã¨ã³ãã¨ã³ã¸ãã¢ã§ãã
ä»åã¯ã¬ã¬ã·ã¼ãªæ§æããNuxt.jsã«ãªãã¬ã¤ã¹ãããµã«ã§ããããGitå ¥éãä»æ´ãªããPWAã«å¯¾å¿ãããã®ã§ãããããã«ãç´¹ä»ãã¾ãã
ç®æ¬¡
ããããPWAã¨ã¯
PWAã¨ã¯Progressive Web Appsï¼ããã°ã¬ãã·ãã¦ã§ãã¢ããªï¼ã®ç¥ã§ãã
é常ã®Webãµã¤ã / Webã¢ããªã¯ãã©ã¦ã¶ä¸ã§åä½ãã¾ãããPWAã¯ãã©ã¦ã¶ã ãã§ãªãããã¹ã¯ãããã«ã¤ã³ã¹ãã¼ã«ããããã¢ãã¤ã«ã®ãã¼ã ç»é¢ã«è¿½å ãããã¨ã§ã¤ã³ã¹ãã¼ã«åã®ãã¤ãã£ãã¢ããªã®ãããªã¦ã¼ã¶ã¼ä½é¨ãæä¾ããæè¡ã§ãã
ã¾ãPWAã¯é«éï¼é«ä¿¡é ¼æ§ãæå±ãã¦ãã¾ããèµ·åã¹ãã¼ãã®éãããªãã©ã¤ã³ç¶æ ã§ãã¢ããªã¨ãã¦æ©è½ãããã¨ãPWAã®åºæ¬çãªè¦ä»¶ã¨ãªã£ã¦ãã¾ãã
ãªãPWAåãããã¨æã£ãã
ãµã«ã§ããããGitå ¥éã¯2012å¹´ã«å¶ä½ããããµã¤ãã§ããã¥ã¢ãªhtml,cssãªã©ã§æ§æããã¦ãã¾ããã
ç¾å¨ã¯ç§ãä¸å¿ã«ãã¼ã±ãã£ã³ã°èª²ãéå¶ãè¡ãããã«ãªããä¿®æ£ä½æ¥ãéç¨é¢ãªã©ã®ç®¡çä½å¶ãããããããããã«Vue.jsã®ããã°ã¬ãã·ããã¬ã¼ã ã¯ã¼ã¯ã§ããNuxt.jsã®éçãµã¤ãæ©è½ã使ç¨ãã¬ã¹ãã³ã·ãã«ã対å¿ãã¦ãªãã¬ã¤ã¹ãéç¨ãè¡ã£ã¦ãã¾ãã
å·¦ï¼æ§ãµã«ã§ããããGitå ¥é / å³ï¼æ°ãµã«ã§ããããGitå ¥é
ãµã«ã§ããããGitå ¥éã¯Gitåå¦è ãã³ãã³ããGitã®éç¨ãå¿ãã¦ãã¾ã£ãéã«ç¢ºèªã§ããã³ã³ãã³ãã¨ãã¦æä¾ãã¦ããã大å¤è¨ªåè æ°ãå¤ããµã¤ãã§ãï¼2018å¹´8æã«ã¯æ¸ç±åãããã¾ããï¼ã
ããã§ãã¢ãã¤ã«ã®ãã¼ã ç»é¢ã«ãµã«ã§ããããGitå ¥éã並ã¹ã¦ããã¤ãã£ãã¢ããªã®ããã«è¦ããæã«ãµã¯ãã¨è¦ããã¦ã¼ã¶ã¼ä½é¨ãæä¾ã§ããã°ããããµã«ã§ããããGitå ¥éãå¯æãã£ã¦ããã ããã®ã§ã¯ãªããã¨æãPWA対å¿ã«ãããã¨ã«ãã¾ããã
ã¾ããNuxt.jsã§ã¯ä¾¿å©ãªPWAã¢ã¸ã¥ã¼ã«ãç¨æããã¦ãããæ¯è¼çç°¡åã«PWA対å¿ãã§ããã¨ãããã¨ããããç§ã®èä¸ãããã«æ¼ãã¦ããã¾ããã
PWAã®ã¡ãªããã»ãã¡ãªãã
ã¦ã¼ã¶ã¼ã«ã¨ã£ã¦ä¸çªã®ã¡ãªããã¯ãã¤ãã£ãã¢ããªã®ãããªä½é¨ãã§ããã¨ãããã¨ã§ã¯ãªãã§ããããããã©ã¦ã¶ãèµ·åããæéãçããã¢ãã¬ã¹ãã¼ããã¼ã«ãã¼ãé表示ã«ãªããã¼ã¸éãé«éã«ç§»åã§ããã®ã§ã¦ã¼ã¶ã¼ã¯ããä¸å±¤ã³ã³ãã³ãã«éä¸ã§ãã¾ãã
éçºè ã«ã¨ã£ã¦ã®ã¡ãªãããããã¾ããä¸è¬çãªWebæè¡ã§éçºãå¯è½ã¨ãªããã¢ããªå¯©æ»ãä¸è¦ãªã®ã§ããã¤ãã£ãã¢ããªå¶ä½ã«ãªã½ã¼ã¹ãå²ããªãããã¸ã§ã¯ãã«ãæé©ã¨è¨ãã¾ãã
ã¾ãPWAã§ã¯ããã·ã¥éç¥ãéä¿¡ãããã¨ãã§ããã®ã§ã¦ã¼ã¶ã¼ã¨ã®æ¥è§¦æ©ä¼ã®åä¸ã«ãæå¾ ã§ãã¾ããï¼â» iOSã¯ããã·ã¥éç¥æªå¯¾å¿ï¼
ã¾ãã«PWAã¯Webãµã¤ã / Webã¢ããªã¨ãã¤ãã£ãã¢ããªã®ããã¨ãåãã¨è¨ã£ãæãã§ãã
ãããã¡ãªãããä¸ããã¨ãããPWAãå°å ¥ããããã®ä½æ¥ãªã½ã¼ã¹ããService Workerã®ä»çµã¿ã»æ´»ç¨æ¹æ³ãç解ããããã®å¦ç¿ã³ã¹ããªã©ãæããããã§ããããã
ã¾ãã¯PWAãä½é¨ãã¦ã¿ãã
æ©éã§ãããµã«ã§ããããGitå ¥éãã使ãã®ããã¤ã¹ã«è¿½å ãã¤ã³ã¹ãã¼ã«ãã¦ã¿ã¦ãã ããã
ã¢ãã¤ã«ã®ãã¼ã ç»é¢ã«è¿½å ãã
iOSã¨Androidã§ã¯å°ãæé ãç°ãªãã¾ããã誰ã§ãç°¡åã«æ°ã¹ãããã§ãã¼ã ç»é¢ã«è¿½å ã§ãã¾ãã
Androidã®å ´å
Androidã§ã¯PWA対å¿ã®ãµã¤ãã«ã¢ã¯ã»ã¹ããã¨ãç»é¢ä¸ã«ãã¼ã ã¹ã¹ã¯ãªã¼ã³è¿½å ã®ãããã¢ããã表示ããã¾ãã®ã§ãã¯ãªãã¯ãã¦ãã¼ã ã¹ã¯ãªã¼ã³ã«è¿½å ãã¦ãã ããã
Androidã®å ´åï¼å·¦ï¼ãµã¤ãã«ã¢ã¯ã»ã¹ããããã¢ãã表示 / å³ï¼ãããã¢ãããã¯ãªãã¯ã追å ï¼
iPhoneã®å ´å
iPhoneã®å ´åãAndroidã®ããã«ãããã¢ããã¯ã§ã¾ããããç°¡åã«è¿½å ã§ãã¾ãã®ã§ãåç»ã«ã¦ç´¹ä»ãã¾ãã
iPhoneã®å ´å
ãã¹ã¯ãããã«ã¤ã³ã¹ãã¼ã«ãã
ãã©ã¦ã¶ãGoogle Chromeã§ãå©ç¨ã®å ´åããµã«ã§ããããGitå ¥éã«ã¢ã¯ã»ã¹ããã¨ã¢ãã¬ã¹ãã¼ã®å³ç«¯ã«PWAã®ã¤ã³ã¹ãã¼ã«ãä¿ã+ãã¿ã³ã表示ããã¾ãã®ã§ãã¯ãªãã¯ããã¨ãã½ã³ã³ã«PWAãã¤ã³ã¹ãã¼ã«ããããµã«ã§ããããGitå ¥éã®ãã¹ã¯ãããçã®PWAãããã«èµ·åãã¾ãã
ãã¹ã¯ãããã®å ´åï¼Google Chromeï¼
PWAåããä¸è¬çãªä½æ¥ã®æµã
ãã§ã«Webãµã¤ã / Webã¢ããªãéç¨ä¸ã§ããã°ããã«ã§ãPWAã«ãããã¨ãã§ãã¾ããç¹å¥ãªãã¬ã¼ã ã¯ã¼ã¯ãã©ã¤ãã©ãªã¯å¿ è¦ããã¾ããã
ããReactãVueãAngularãªã©ã®ãã¬ã¼ã ã¯ã¼ã¯ãã使ãã§ããã°PWAã®ã¢ã¸ã¥ã¼ã«ãã¤ã³ã¹ãã¼ã«ãå¿ è¦ãªãã¡ã¤ã«ãªã©ãæºåãå°å ¥ã§ãã¾ãã
ä»åã¯ã¢ã¸ã¥ã¼ã«ãªã©ã使ç¨ããªãPWAåããããã®åºæ¬çãªä½æ¥ã®æµãã«ã¤ãã¦ãç´¹ä»ãã¾ãã
PWAåã®å ¨ä½ã®æµã
æ¢åã®ãµã¤ããPWAã«ããããã«ã¯ãä¸è¨æé ãå¿ è¦ã«ãªãã¾ãã
- HTTPSã«å¯¾å¿ãã
- manifest.jsonãè¨ç½®ãã
- Service Workerãæå¹ã«ãã
Â
1. HTTPSã«å¯¾å¿ãã
æé 3ã®Service Workerãå©ç¨ããããã«ã¯HTTPS対å¿ãå¿ é ã«ãªãã¾ãã®ã§ãã¾ããµã¤ããHTTPSã«å¯¾å¿ããã¾ããããä»®ã«PWAã«å¯¾å¿ãããªãå ´åã§ããã»ãã¥ãªãã£ã¼å¼·åã®ããã«ãHTTPSã¯ãã£ã¦ããã¹ã対å¿ã§ãã
2.manifest.jsonãè¨ç½®ãã
manifest.jsonï¼ä»¥ä¸ãã¦ã§ãã¢ããªãããã§ã¹ãï¼ãä½æããµã¤ãã«è¨ç½®ãã¾ãã
ã¦ã§ãã¢ããªãããã§ã¹ãã¯ã·ã³ãã«ãªJSONãã¡ã¤ã«ã§ãã¦ã¼ã¶ã¼ãPWAãèµ·åããéã®æåãè¦ãç®ãã¢ã¤ã³ã³ãªã©ãè¨å®ããããã®ãã¡ã¤ã«ã§ãã
ã¡ãªã¿ã«iOSã®Safariã§ã¯ã¦ã§ãã¢ããªãããã§ã¹ããã¾ã ãµãã¼ãããã¦ãã¾ããã
詳細ãªè¨å®æ¹æ³ã«ã¤ãã¦ã¯ãã¡ããåç §ãã ããã
3.Service Workerãæå¹ã«ãã
Service Workerã¯ããã¯ã°ã©ã¦ã³ãã§å®è¡ã§ããã¹ã¯ãªããã®ãã¨ã§ããªãã©ã¤ã³ä½é¨ãããã¯ã°ã©ã¦ã³ãåæãããã·ã¥éç¥ãªã©ã®ãã¤ãã£ãã¢ããªã§ããã§ããªãã£ãæ©è½ãWebã§æä¾ã§ããæè¡ã§ãã
詳細ãªè¨ç½®æ¹æ³ã«ã¤ãã¦ã¯ãã¡ããåç §ãã ããã
ä»åPWAåãã¦ã¿ãææ
ãµã«ã§ããããGitå ¥éã¯Nuxt.jsï¼Vue.jsï¼ã使ã£ã¦ãããããPWAã¢ã¸ã¥ã¼ã«ã®ã¤ã³ã¹ãã¼ã«ã§ç°¡åã«PWAã«å¯¾å¿ããããã¨ãã§ãã¾ããã
ä½æ¥éä¸ã®èºãããªãåä½ç¢ºèªãªã©å«ã1æéç¨åº¦ã§ä½æ¥ãçµãããã¨ãã§ãã¾ããã
ä½æ¥ã«ãããç¹å¥é£ãããã¨ã¯ããã¾ããã§ããããService Workerã®ä»çµã¿ãã©ã¤ããµã¤ã¯ã«ãç解ããã£ãã·ã¥æ¦ç¥ãç«ã¦ããã¨ãã§ããã®ã§ãã¾ã ã¾ã ããã©ã¼ãã³ã¹æ¹åã®ä½å°ãããããã§ãã
å®éã«PWAãå°å ¥ãã¦ã¿ã¦ãç§èªèº«ããã¼ã ç»é¢ããã¹ã¯ãããã§PWAã使ãããã«ãªããPWAã®ããã©ã¼ãã³ã¹ã®è¯ããä½é¨ã«æ¹ããã¦ãã¾ãã¾ããã
æå¾ã«
ãµã«ã§ããããGitå ¥éã«PWAãå°å ¥ããçæ§ã«ãã¡æ©ãå ±åããããããã«ä»åã®è¨äºã«ãã¾ãããå®éã«ä½¿ã£ã¦ããã ããææ³ãå¹æãªã©ã¯ãããã測å®ãã¦ãããã¨æãã¾ãã
å¼ãç¶ãããµã«ã§ããããGitå ¥éããããããé¡ããã¾ãã
ä»å¾ãå¿ è¦ã§ããã°ã©ãã©ãPWAåãé²ããã¹ãPWAãã³ã¨ãã¦é å¼µã£ã¦ããã¾ãã