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

ネイティブアプリの代わりにPWAで戦う選択肢 / pwa-instead-of-native

ネイティブアプリの代わりにPWAで戦う選択肢 / pwa-instead-of-native

PWAのメリットが強くなる時ってどんなときか考えた。
今回はネイティブアプリの代わりにPWAで頑張る話したけど、ネイティブアプリのありなしに関わらずWebを良くしていきたい。

紹介した自作PWA
- http://ease.netlify.com/ (TODOリスト)
- http://mottox2.com/ (ブログ)

mottox2

May 24, 2018
Tweet

More Decks by mottox2

Other Decks in Programming

Transcript

  1. @mottox2 • React, Ruby on RailsΛத৺ʹWebαʔϏε։ൃ͍ͯ͠·͢ • Pull RequestͷϨϏϡʔͱٕज़બఆͷ͓ख఻͍΋͍ͯ͠·͢ •

    WebͷՄೳੑΛ৴͍͖͍ͯͨ͡λΠϓͷਓؒͰ͢ɻ • ϒϩά΍ͬͯ·͢(esa.io + note.mu + Gatsby) => mottox2.com Freelance web engineer & designer Yuki Takemoto
  2. ࢲͱPWA ease.netlify.com Desktop޲͚ʹ࡞ͬͨToDoΞϓϦ • React + TypeScript • Service Worker

    • IndexedDB (Dexie.js) • Web App Manifest • Add to Home Screen • Offline
  3. 1. Α͋͘ΔωΠςΟϒΞϓϦ։ൃͷࣦഊΛආ͚͍ͨa ͨͱ͑͹͜Μͳ࣌ • NativeAppΛ͚ͭͬͨ͘ͲGooglePlayΛݟΔͱDL਺1000ҎԼͷύλʔϯΛݟΔ • ಋઢͷऑ͞ɺϝϦοτૌٻɺ௿ධՁʹΑΔεϧʔʹΑΔѱ॥؀a • ͦ΋ͦ΋NativeΞϓϦ͕ඞཁͳཁ݅ͳͷ͔ʁͱ͍͏࿩΋͋Δɻ •

    NativeAppͷ৽نμ΢ϯϩʔυ਺͸೥ʑݮগ͍ͯ͠Δɻ[ཁग़య] • ϋʔυϧ͕ߴ͍ʹ΋͔͔ΘΒͣɺยखؒͰϦϦʔεͯ͠΋উෛʹͳΒͳ͍a • ϑΟʔυόοΫճ͢αΠΫϧ͕஗͘ͳΓ͕ͪa • ԾઆݕূΛ͢Δʹ͸ωοΫʹͳΔa • ࠷ۙ͸Code PushͰετΞΛ௨ͣ͞ߋ৽Ͱ͖Δ • ͍͔ͭ͘ͷ఺͸ɺܦݧऀ͕͍Ε͹ճආͰ͖Δ
  4. 5. ର৅Ϣʔβʔ͕iOSΑΓAndroidͷํ͕ଟͦ͏a ͨͱ͑͹͜Μͳ࣌ • iOS͸ݱ࣌఺ͰWeb Push, Install Prompt͕ະରԠɻ • ੈքతʹ͸AndroidγΣΞ͕େ͖͍ͷͰɺPWAରԠ͕ਐΜͰ͍ΔChromeͷԸܙΛ

    ड͚΍͍͢͸ͣͩͬͨɻ͕ɺ೔ຊ͸iOS͕ଟ͍ɻ • ಛʹएऀ޲͚αʔϏεͰ͸iOS͕ଟ͘ͳΔ܏޲͕͋Δɻʢܦݧଇʣ • ͨͩɺී௨ͷWebαΠτͱͯ͠͸࢖͑Δɻ
  5. • PWAඇର৅Ϣʔβʔ΁ͷΤϯήʔδϝϯτ͕ऑ͘ͳΔ͜ͱΛڐ༰͢Δ • NativeAppͰͳͯ͘PWAͱ͍͏൑அΛͨ͠৔߹ • ύέοτͷؔ܎ͰiOSͷΞοϓσʔτͯ͠ͳ͍ͳͲͷϢʔβʔʹڧ͘Ξϓ ϩʔνग़དྷͳ͍ɻ • ݱঢ়Safari 11.1ͰPush

    NotificationɺInstall Prompt͕ແޮ • ʮ·ͣ͸ΞʔϦʔΞμϓλʔʹ޲͚ͯଧͭʯΈ͍ͨͳܦӦ൑அ͕ग़དྷΔ͔ʁa • ੒ޭ͢Δࠒʹ͸ɺPWA͕ීٴͯ͠Δ͔͕ۚ͋ΔͷͰΞϓϦΤϯδχΞΛޏ͑͹Α ͍ɻ τϨʔυΦϑΛҙࣝ͢Δ
  6. • Windows Storeʹ͸ग़ͤΔ (ex. Twitter Lite) • υΩϡϝϯτ΋͋Δɻग़ͨ͠ͱ͜ΖͰͲ͏ͳͷʁͬͯײ͡͸͢Δa • Google

    Playʹ΋ग़ͤΔ • طଘͷϦϦʔεΞϓϦ͸WebView? • কདྷతʹPWA޲͚ͷTrusted Web Activity͕ఏڙ͞ΕΔɻ(Google I/O 2018Ͱݴͬͯͨ) • App Store͸Apple࣍ୈ ؾʹͳΔϙΠϯτ Google Map Go - https://play.google.com/store/apps/details?id=com.google.android.apps.mapslite&hl=ja Twitter Lite - https://play.google.com/store/apps/details?id=com.twitter.android.lite&hl=ja ※ ࠃ಺ͷ୺຤ʹ͸ରԠ͍ͯ͠ͳ͍ Google Playʹग़͍ͯΔPWAͷྫ Progressive Web Apps in the Microsoft Store - https://docs.microsoft.com/en-us/microsoft-edge/progressive-web-apps/microsoft-store ετΞʹग़ͤͳ͍Μ͡Όͳ͍͔ʁ
  7. • ϖʔδߏ଄೉͍͠ɻ • WebͱAppͷ྆ํͷੑ࣭Λ࣋ͬͨσβΠφʔٽ͔ͤͳߏ଄ɻ • SEO্ͷϖʔδߏ଄΋ߟྀ͕ඞཁɻ • ϞόΠϧϑΝʔετͳϨεϙϯγϒɻa • ωΠςΟϒ෩UIΛ࠾༻͢ΔͳΒOnsen

    UI, Polymer, IonicͳͲͷબ୒ࢶɻ • ଟ͘ͷέʔεͰSPAඞਢɻ • ϨεϙϯεΛૣ͘͢Δඞཁɻa • HTTP/2, Resource Hints, Inline CSS, ը૾ͷ࠷దԽͳͲͳͲ • ʮWebϖʔδ଎౓վળΨΠυʯ͕͓͢͢Ί Ͳ͏΍ͬͯ࢝ΊΔ͔ʁ ࣗ෼͕ߟ͑Δͱ͜Μͳײ͡
  8. • ෦෼తʹApplication Likeͳը໘ʹ͍ͯ͘͠ͷ͕ݱ࣮ղͳؾ͕͍ͯ͠Δ • ωΠςΟϒΞϓϦͷ୅ΘΓʹεϚϗWebΛPWAʹϦϓϨʔε͢Δͷ͋Γ • Twitter Lite͸εϚʔτϑΥϯ޲͚αΠτ͚ͩ੾Γग़͢ • starbucks.com

    ͸ϩάΠϯޙͷϖʔδͷΈ • Mobile First IndexͰͲ͏͍͏൑ఆ͕ͳ͞ΕΔ͔Α͘෼͔Βͳ͍ • طଘϖʔδΛPWAʹΑͤΔͱ͍͏ΑΓ͸ɺ৽نίʔυͰ࡞Γม͍͑ͯ͘ํ͕ݱ࣮ త͔΋ • CSS, JSपΓͷ࠷దԽ͕ղܾग़དྷΔͳΒ͍͍͚Ͳɺ͜Ε͕೉͍͠ɻ • ಛఆۀछͷWeb App͸ੵۃతʹPWAʹد͍ͤͯ͘ͱΑͦ͞͏ɻ • ਓੜͷઅ໨ʹඞཁ͚ͩͲɺ௕ظؒ࢖͏αʔϏεͰ͸ͳ͍ײ͡ͷɻਓࡐͱ͔ ωΠςΟϒΞϓϦͷͳ͍طଘࣄۀͰ͸ʁ ิ଍ ΋ͪΖΜΞϓϦͬΆ͘͢Δඞཁ͸ͳͯ͘ɺSWͳͲ෦෼ରԠ͢Δ͚ͩͰ΋Α͍ɻ