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

AndroidアプリとWebコンテンツの連携 / Sansan Tech Meetup Android

9de7a10d760bcc0a690f8b23b408fb6c?s=47 Hideki Hamada
December 18, 2020

AndroidアプリとWebコンテンツの連携 / Sansan Tech Meetup Android

【Sansan Tech Meetup】Android開発Tipsを3社のエンジニアが語る

9de7a10d760bcc0a690f8b23b408fb6c?s=128

Hideki Hamada

December 18, 2020
Tweet

Transcript

  1. AndroidΞϓϦͱ Webίϯςϯπͷ࿈ܞ Ϋϥεϝιουגࣜձࣾɹ඿ాӯथ ʲSansan Tech MeetupʳAndroid։ൃTipsΛ3ࣾͷΤϯδχΞ͕ޠΔ 2020/12/18

  2. ࣗݾ঺հ • ඿ాӯथ (@jakalada) • AndroidΤϯδχΞ • 2೥΄ͲલʹΫϥεϝιουʹస৬ • ૣ͘ాΜ΅ͷ༷ࢠΛݟʹߦ͖͍ͨ

    2
  3. ։ൃࣄྫ ʢ˞ଞࣾʹҾ͖ܧ͍ͩࣄྫ΋ؚ·Ε͍ͯ·͢ʣ 3

  4. ࢲ͕࡞ͬͯΔΞϓϦ ֓ཁ ҿ৯ళͷΞϓϦ ༗ޮձһ਺ ສਓ ˞௚ۙ೥ؒʹ౓Ͱ΋ϩάΠϯͨ͜͠ͱͷ͋Δձһ %"6."6 ສສ ˞J04"OESPJEͷ߹ܭ ετΞධՁ

    લޙ ˞ΞϓϦ಺ϨϏϡʔಋೖޙ㽉
  5. ΞδΣϯμ • Webίϯςϯπͱ࿈ܞ͢Δٕज़ • WebView / ϒϥ΢βىಈ / Custom Tabs

    / TWA • ٕज़͝ͱͷҧ͍ • UI / CookieɾΩϟογϡ؅ཧ / Webٕज़ͷ੍ݶ 5
  6. 6 Webίϯςϯπͱ ࿈ܞ͢Δٕज़

  7. 7 WebView

  8. WebView • View • Fragment/Activityʹ૊ΈࠐΊΔ 8

  9. WebViewͷ࢖༻ྫ • WebView͔ΒͷϦΫΤετͷUser-AgentʹΞϓϦݻ༗ͷ஋Λ௥Ճ • →WebͰग़͠෼͚ɺJavaScriptͰදࣔ಺༰Λ੍ޚ • WebͰϨϯμϦϯά͞ΕͨΫʔϙϯͷόʔίʔυΛΞϓϦ಺Ͱදࣔ • →ΞϓϦଆͰը໘Λ໌Δͯ͘͠όʔίʔυϦʔμʔͰಡΈऔΓ΍͢͞޲্ •

    ΞϓϦͰϩάΠϯ͍ͯ͠Δ৔߹͸ࣗಈͰϩάΠϯ • →JWTϩάΠϯΛ࢖༻ 9
  10. 10 ϒϥ΢βىಈ

  11. ϒϥ΢βىಈ • Intentૹ৴ʹΑΔϒϥ΢βΞϓϦ ͷىಈ 11

  12. 12 Custom Tabs

  13. Custom Tabs • ΞϓϦ಺ϒϥ΢β • ϒϥ΢βΞϓϦͷActivity • ※ChromeҎ֎ͷҰ෦ͷϒϥ΢β΋αϙʔτ • ࠷௿ݶͷU/IɺΧελϚΠζՄೳ

    13
  14. Custom Tabsͷߴ଎Խ • ϒϥ΢βଆͷެ։Serviceʹbind • warmup() : ىಈͷߴ଎Խ • mayLaunchUrl()

    : WebϖʔδͷϓϦϩʔυ 14
  15. Custom TabsΛಋೖͨ͠ܦҢ • ΞϓϦ಺ͷϓϩϞʔγϣϯͷܦ࿏͕૿͑ͨλΠϛϯάͰɺϒϥ΢β͕ ىಈ͢Δ͜ͱʹ͍ͭͯiOSͷϨϏϡʔ͕େߥΕͨ͠ɻAndroid͸एׯ • ݱࡏ͸ϒϥ΢βΛىಈ͍ͯͨ͠৔໘Ͱ͸ɺΞϓϦ಺ϒϥ΢β ʢCustom TabsʣΛ࢖༻ 15

  16. 16 TWA

  17. TWA • Trusted Web Activity • ChromeͷActivity • ϑϧεΫϦʔϯදࣔՄೳ 17

  18. TWAͷىಈϑϩʔ 1. Digital Asset LinksΛ࢖༻ͨ͠ݕূ ➡ ࣦഊͨ͠ΒCustom TabsͰىಈ 2. Chrome͕TWAΛαϙʔτ͍ͯ͠Δ͔֬ೝ

    ➡ αϙʔτ͍ͯ͠ͳ͍όʔδϣϯͰ͸Custom TabsͰىಈ 3. TWAΛىಈ 18
  19. ৴པͰ͖ͳ͍ ৴པͰ͖Δ 19

  20. https://dev.classmethod.jp/articles/report-developers-io-2019-tokyo- developersio_cafe_pwa/ 20

  21. 21 ٕज़͝ͱͷҧ͍

  22. UI 8FC7JFX 6*ͳ͠ɾಠࣗʹ࣮૷Ͱ͖Δ ϒϥ΢βىಈ ΧελϚΠζෆՄ $VTUPN5BCT γϯϓϧͳ6*ɾΧελϚΠζՄೳ 58" ϑϧεΫϦʔϯ 22

  23. CookieɾΩϟογϡ؅ཧ 8FC7JFX ࣗ෼ͷΞϓϦͰ؅ཧ ˞ΞϓϦ͔Β੍ޚՄೳ ϒϥ΢βىಈ ϒϥ΢β͕؅ཧɾڞ༗ ˞ΞϓϦ͔Β੍ޚෆՄ $VTUPN5BCT 58" 23

  24. Webٕज़ͷ੍ݶ 8FC7JFX ੍ݶ͋Γ ػೳ͝ͱʹΞϓϦଆͰ༗ޮԽ͕ඞཁ 04΍ߋ৽ঢ়گͰಈ࡞ʹࠩҟ͋Γ ϒϥ΢βىಈ ϒϥ΢β͕αϙʔτ͍ͯ͠Δٕज़ ˞58"͸ݫີʹ͸$ISPNF͕αϙʔτ͍ͯ͠Δٕज़ $VTUPN5BCT 58"

    24
  25. ·ͱΊ 25

  26. ·ͱΊ 8FC7JFX ΞϓϦ޲͚ͷ8FCϖʔδΛදࣔ͢Δ ˞੍ݶΛཧղɾௐ੔ͯ͠8FCΛ੍࡞͢Δඞཁ͕͋Δ ϒϥ΢βىಈ ෆಛఆͷ8FCϖʔδΛදࣔ͢Δ Ϣʔβʔ͕ΞϓϦ͔Β཭Εͯྑ͍ $VTUPN5BCT ΞϓϦͷମݧͷҰ෦ͱͯ͠8FCϖʔδΛද͍ࣔͨ͠ 8FCͷٕज़Λࣗ༝ʹ࢖͍͍ͨ

    58" 18"ΛϑϧεΫϦʔϯͷΞϓϦͱͯ͠ެ։͍ͨ͠৔߹ ˞18"Ͱͳͯ͘΋ྑ͍ 26
  27. ࢀߟࢿྉ • Web-based content | Android Developers • https://developer.android.com/guide/webapps •

    Custom Tabs | Web On Android | Google Developers • https://developers.google.com/web/android/custom-tabs • Trusted Web Activity | Web On Android | Google Developers • https://developers.google.com/web/android/trusted-web-activity 27