Upgrade to Pro — share decks privately, control downloads, hide ads and more …

モバイルWeb開発最前線 -PWA開発パターン「PRPL」の紹介-

モバイルWeb開発最前線 -PWA開発パターン「PRPL」の紹介-

PWAとPRPLの話

Takanori Maeda

June 24, 2016
Tweet

More Decks by Takanori Maeda

Other Decks in Technology

Transcript

  1. PWA

  2. PWAͷಛ௃ʢৄࡉʣ • ஈ֊త: ϓϩάϨογϒɾΤϯϋϯεϝϯτΛجຊཧ೦ͱͨ͠ΞϓϦͰ͋ΔͨΊɺ ϒϥ΢βʹؔ܎ͳ͘ɺ͢΂ͯ ͷϢʔβʔʹར༻ͯ͠΋Β͑·͢ɻ • Ϩεϙϯγϒ: ύιίϯͰ΋ϞόΠϧͰ΋λϒϨοτͰ΋ɺ࣍ੈ୅ͷ୺຤Ͱ΋ɺ ͋ΒΏΔϑΥʔϜϑΝΫλʹద

    ߹͠·͢ɻ • ωοτϫʔΫ઀ଓʹґଘ͠ͳ͍: Service Worker ͷ׆༻ʹΑΓɺΦϑϥΠϯͰ΋ɺ ωοτϫʔΫ؀ڥ͕ྑ͘ͳ͍ ৔ॴͰ΋ಈ࡞͠·͢ɻ • ΞϓϦײ֮: App Shell Ϟσϧʹج͍ͮͯ࡞ΒΕ͍ͯΔͨΊɺΞϓϦײ֮Ͱૢ࡞Ͱ͖·͢ɻ • ৗʹ࠷৽: Service Worker ͷߋ৽ϓϩηεʹΑΓɺৗʹ࠷৽ͷঢ়ଶʹอͨΕ·͢ɻ • ҆શ: ೷͖ݟ΍ίϯςϯπͷվ͟ΜΛ๷͙ͨΊɺHTTPS ܦ༝Ͱ഑৴͞Ε·͢ɻ • ൃݟ͠΍͍͢: W3C ͷϚχϑΣετͱService Worker ͷొ࿥είʔϓʹΑΓɺ ʮΞϓϦέʔγϣϯʯͱͯ͠ೝࣝ ͞ΕͭͭɺݕࡧΤϯδϯ͔Β΋ൃݟ͢Δ͜ͱ͕Ͱ͖·͢ɻ • ࠶ΤϯήʔδϝϯτՄೳ: ϓογϡ௨஌ͷΑ͏ͳػೳΛ௨͡Ͱ༰қʹ ࠶ΤϯήʔδϝϯτΛଅ͢͜ͱ͕Ͱ͖·͢ɻ • ΠϯετʔϧՄೳ: Ϣʔβʔ͕ؾʹೖΕ͹ΞϓϦͷϦϯΫΛϗʔϜը໘ʹ࢒ͯ͠ ͓͘͜ͱ͕Ͱ͖ɺΞϓϦετΞͰ ୳͠ճΔඞཁ͸͋Γ·ͤΜɻ • ϦϯΫՄೳ: URL Λ࢖ͬͯ؆୯ʹڞ༗Ͱ͖ɺෳࡶͳΠϯετʔϧͷඞཁ͸͋Γ·ͤΜɻ ͸͡ΊͯͷϓϩάϨογϒ ΢ΣϒΞϓϦ | Web Fundamentals - Google Developers https://developers.google.com/web/fundamentals/getting-started/your-first-progressive-web-app/?hl=ja
  3. PRPLʢύʔϓϧʣύλʔϯ • Push: ·ͣॳظදࣔʹඞཁͳίϯϙʔωϯτΛ αʔόʔ͔Βϓογϡɻ • Render: ॳظදࣔ༻ͷίϯϙʔωϯτΛϨϯμ Ϧϯάɻ •

    Pre-cache: ࢒Γͷ෦෼ͷίϯϙʔωϯτΛΩϟ ογϡɻ • Lazy-load: ඞཁʹԠͯ͡Ωϟογϡ͔Β஗Ԇϩ ʔυͯ͠ϨϯμϦϯάɻ
  4. PRPLʢύʔϓϧʣύλʔϯ • Push: ·ͣॳظදࣔʹඞཁͳίϯϙʔωϯτΛ αʔόʔ͔Βϓογϡɻ • Render: ॳظදࣔ༻ͷίϯϙʔωϯτΛϨϯμ Ϧϯάɻ •

    Pre-cache: ࢒Γͷ෦෼ͷίϯϙʔωϯτΛΩϟ ογϡɻ • Lazy-load: ඞཁʹԠͯ͡Ωϟογϡ͔Β஗Ԇϩ ʔυͯ͠ϨϯμϦϯάɻ
  5. Web Components ίϯϙʔωϯτΛͻͱͭͷཁૉͱͯ͠࡞੒͢Δ͜ ͱ͕Ͱ͖Δ => Custom Elements <link rel=“import” href=“hogehoge.html”>

    Ͱ࡞੒ͨ͠ίϯϙʔωϯτΛಡΈࠐΊΔ => HTML Imports Web ComponentsରԠͷϒϥ΢βͰ࢖༻Մೳɻ
  6. ·࣮ͩݱ͸೉͍͠ɾɾɾ • HTTP/2ͷ؀ڥ͕੔උ͞Ε͍ͯͳ͍ • Web Components͕ීٴ͍ͯ͠ͳ͍ • HTTP/2 Server pushͱWebͷΩϟογϡͷ

    ૬ੑ͕ѱ͍ ͔͠͠ɺ͜ͷPRPLͷߟ͑ํʹ͸ͱͯ΋ເ͕ ͋Δɻͥͻߟ͑ํ͚ͩͰ΋཈͓͖͍͑ͯͨ