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

ABEMAモバイルアプリ開発のDevOps戦略【CADC2022】

 ABEMAモバイルアプリ開発のDevOps戦略【CADC2022】

ABEMAは開局して5年が経過し、サービスの成長に伴いシステム・組織共に非常に大規模になってきました。長く続くサービスとしてありがちではありますが、様々な負債を抱えながら開発しており、日々向き合っています。
モバイルアプリの開発チームでは、品質を維持しながら高速に改善サイクルを回して仮説・検証の精度を上げていくこと、素早くユーザーのニーズに応え継続的に改善していくことを目指し、Re-Architecture、Kotlin Multiplatform、Visual Regression Testing、FeatureFlag、SREなど様々な取り組みを行っています。
本セッションでは、その全体的な戦略と取り組みについてご紹介します。

2016ba6b977a2e6691811fa66d5f4336?s=128

CyberAgent
PRO

March 24, 2022
Tweet

More Decks by CyberAgent

Other Decks in Technology

Transcript

  1. None
  2. ೾ށ༐ೋ :VKJ)BUP גࣜձࣾ"CFNB57 ։ൃຊ෦։ൃہ/BUJWF5FBN /BUJWF5FBNϚωʔδϟʔ݉ ΫϥΠΞϯτઓུࣨࣨ௕ !EFLBUPUPSP

  3. "HFOEB w"#&."57GPSUIF'VUVSF w5FBNT w%FMJWFSZ1FSGPSNBODF w*TTVFTBOE1SBDUJDFT w$PODMVTJPO

  4. None
  5. "#&." ແྉಈըɾ࿩୊ͷ࡞඼ָ͕͠ΊΔ৽͍͠ະདྷͷςϨϏ

  6. "#&." ແྉಈըɾ࿩୊ͷ࡞඼ָ͕͠ΊΔ৽͍͠ະདྷͷςϨϏ μ΢ϯϩʔυສ 8"6ສ ˞ग़య$ZCFS"HFOU JOD೥2ܾࢉൃදࢿྉ

  7. "#&." ແྉಈըɾ࿩୊ͷ࡞඼ָ͕͠ΊΔ৽͍͠ະདྷͷςϨϏ ˞ग़య$ZCFS"HFOU JOD೥௨ظܾࢉൃදࢿྉ wແྉɾಉ࣌ੑ w ใಓɾεϙʔπ w υϥϚɾόϥΤςΟ w࣌ؒɾۭ͔ؒΒͷղ์

    w ΦϯσϚϯυɾ௥͔͚ͬ࠶ੜ w ϚϧνσόΠεɾμ΢ϯϩʔυ࠶ੜ
  8. .VMUJ%FWJDF

  9. ˞%BZESFBN $MPWB%FTL͸αϙʔτऴྃ  iOS mobile Android mobile Web pc /

    mobile Chromecast Apple TV Android TV IPTV Daydream Clova Desk Google Nest Hub Nintendo Switch      AmazonAl exa Amazon Fire TV Amazon FIre Tablet  .VMUJ%FWJDF
  10. Desktop Browser Android Web Unity Mobile Browser Mobile App Smart

    Display/ Speaker TV iOS iOS Mobile Android Mobile PC Web Chromecast Apple TV Android TV IPTV Google Nest Hub Nintendo Switch Amazon Fire TV Amazon FIre Tablet Mobile Web Ϣʔεέʔε ٕज़ελοΫ .VMUJ%FWJDF
  11. Web Native Cross Device Smart Display / Speaker %FTLUPQ Browser

    Mobile Browser Mobile App TV iOS Mobile Android Mobile PC Web Chromecast Apple TV Android TV IPTV Google Nest Hub Nintendo Switch Amazon Fire TV Amazon FIre Tablet Mobile Web .VMUJ%FWJDF
  12. Web Native Cross Device Smart Display / Speaker %FTLUPQ Browser

    Mobile Browser Mobile App TV iOS Mobile Android Mobile PC Web Chromecast Apple TV Android TV IPTV Google Nest Hub Nintendo Switch Amazon Fire TV Amazon FIre Tablet Mobile Web .VMUJ%FWJDF
  13. 5FBNT

  14. 5FBNT ϓϩμΫτ σʔλ Native Backend Cross Device Web Data analytics

    Data science Data engineering Data management ϓϥοτ ϑΥʔϜ Content engineering Cloud platform Content delivery SRE Streaming client Broadcast technology Designer PM QA
  15. ϓϩμΫτ σʔλ ɾɾɾ αʔϏεϧʔϓ ޿ࠂ ՝ۚ Cross Device Backend QA

    Web ɾɾɾ Data analytics Data science ɾɾɾ ɾɾɾ ɾɾɾ Cross Device Backend QA PM Cross Device Backend QA Web Data analytics Data science Data analytics Data science PM PM Designer Designer Designer Native Web Native Native 5FBNT
  16. Android Web iOS Cross Device Native 5FBNT J04"OESPJEͷ౷߹ w J04"OESPJEؒͷ࢓༷΍ػೳࠩͷဃ཭ΛຒΊΔ

    w 1.΍όοΫΤϯυɺ2"ͳͲଞνʔϜͱͷίϛϡχέʔ γϣϯޮ཰Խ w ίʔυڞ௨ԽʹΑΔ։ൃޮ཰Խ w %FW0QTͳͲ։ൃϓϩηεͷޮ཰Խ
  17. /BUJWF αʔϏεϧʔϓ ޿ࠂ ՝ۚ ج൫ 43& .VMUJQMBUGPSN &OHJOFFSJOH J04 1MBUGPSN

    "OESPJE 1MBUGPSN ϦΞʔΩςΫνϟ d໊ 5FBNT
  18. %FMJWFSZQFSGPSNBODF

  19. %FMJWFSZQFSGPSNBODF ˞ग़య"DDFMFSBUF4UBUFPG%FW0QT3FQPSU %FW0QT3FTFBSDIBOE"TTFTTNFOU IUUQTDMPVEHPPHMFDPNEFWPQTTUBUFPGEFWPQT

  20. Android iOS ϦϦʔεස౓ มߋϦʔυλΠϜ ฏۉम෮࣌ؒ มߋࣦഊ཰ िճ िؒʹճ ೔d೔ ೔d೔

    ೔d೔ ೔d೔   %FMJWFSZQFSGPSNBODF ˞೥౰࣌ͷεφοϓγϣοτ 
  21. %FMJWFSZQFSGPSNBODF dݱࡏ

  22. %FMJWFSZQFSGPSNBODF Cloud Source Repositories BigQuery Cloud Functions Cloud Scheduler Pub/Sub

    4ZOD Native Monitoring %FQMPZ #JH2VFSZͷσʔλ͔ΒϦϦʔεස౓ɺϦʔυλΠϜɺ .553ɺมߋࣦഊ཰Λܭࢉͯ͠ϝτϦΫεԽ "SDIJUFDUVSF ϓϩμΫτ3FQPTJUPSZͷ1VMM 3FRVFTUɺ$PNNJUɺ.FSHFɺ 3FMFBTFUBHɺ)PUpYUBHͷ࣌ ؒɺ4UPSFͷ഑৴࣌ؒΛ #JH2VFSZʹอଘ ˞'PVS,FZTʹҠߦݕ౼த IUUQTHJUIVCDPN(PPHMF$MPVE1MBUGPSNGPVSLFZT
  23. %FMJWFSZQFSGPSNBODF ϦϦʔεස౓ มߋϦʔυλΠϜ ฏۉम෮࣌ؒ มߋࣦഊ཰ d िճ िճ ೔ ೔

    ೔ ೔   Android iOS  िճ िؒʹճ ೔d೔ ೔d೔ ೔d೔ ೔d೔   Android iOS
  24. %FMJWFSZQFSGPSNBODF ϦϦʔεස౓ มߋϦʔυλΠϜ ฏۉम෮࣌ؒ มߋࣦഊ཰ d िճ िճ ೔ ೔

    ೔ ೔   Android iOS  िճ िؒʹճ ೔d೔ ೔d೔ ೔d೔ ೔d೔   Android iOS )JHI )JHI .FEJVN &MJUF )JHI .FEJVN .FEJVN )JHI .FEJVN .FEJVN
  25. *TTVFTBOE1SBDUJDFT

  26. *TTVFTBOE1SBDUJDFT Plan Code Build Test Release Monitor

  27. w ίϯϙʔωϯτؒͷૄ ݁߹ੑͷ୲อ͕Ͱ͖ͯ ͍ͳ͍ w ςελϏϦςΟɾϝϯ ςφϏϦςΟͷ௿Լ w "OESPJEͱJ04ͷ࢓ ༷ɾ࣮૷ࠩҟͷ֦େ

    w 6*։ൃͷ҆શੑͱੜ࢈ ੑͷ௿Լ w Ϗϧυ͕࣌ؒ௕͘ੜ࢈ ੑ͕௿Լ w खಈͷ2"ʹେ͖͘ґଘ͍ͯ͠Δ w ςετϙϦγʔ͕ͳ͘ͲͷϑΣʔζͰԿΛ୲ อ͢Δ͔ᐆດ w վળαΠΫϧͷϦʔυ λΠϜ͕௕͍ w ϦϦʔεࣦഊͷӨڹ͕ େ͖͍ w ো֐෮چ͕࣌ؒ௕͍ w جຊతͳϩά΍Ϋϥο γϡ৘ใͳͲ࠷௿ݶͷ؂ ࢹ͔͠Ͱ͖͍ͯͳ͍ w ૉૣ͘ো֐Λݕ஌Ͱ͖ͯ ͍ͳ͍ w ো֐ରԠ͕ج४΍൑அ͕ ᐆດͰଐਓԽ͍ͯ͠Δ w ӨڹൣғΛ͙͢ʹ೺ѲͰ ͖ͳ͍ *TTVFT *TTVFTBOE1SBDUJDFT Plan Code Build Test Release Monitor
  28. • Ϗϧυ଎౓վળ • 5FTU&OHJOFFSJOH • ϦϦʔεϑϩʔվળ • ΧφϦΞϦϦʔε • 'FBUVSF'MBH

    • ΦϒβʔόϏϦςΟ ͷ޲্ • SLI/SLOಋೖ • Alertingઃఆ 1SBDUJDFT • ϦΞʔΩςΫνϟ • ίʔυڞ௨Խ ,..  • 735 7JTVBM3FHSFTTJPO 5FTUJOH *TTVFTBOE1SBDUJDFT Plan Code Build Test Release Monitor
  29. $PEF wίϯϙʔωϯτͷૄ݁߹ੑ͕୲อ͞Ε͍ͯͳ͍ wςελϏϦςΟɾϝϯςφϏϦςΟͷ௿Լ w6*։ൃͷ҆શੑͱੜ࢈ੑͷ௿Լ w"OESPJEͱJ04ͷ࢓༷ɾ࣮૷ࠩҟͷ֦େ Plan Code Build Test Release

    Monitor
  30. w ίϯϙʔωϯτͷૄ݁߹ੑ͕୲อ͞Ε͍ͯͳ͍ w ςελϏϦςΟɾϝϯςφϏϦςΟͷ௿Լ w 6*։ൃͷ҆શੑͱੜ࢈ੑͷ௿Լ w "OESPJEͱJ04ͷ࢓༷ɾ࣮૷ࠩҟͷ֦େ ϦΞʔΩςΫνϟ $PEF

  31. w ίϯϙʔωϯτͷૄ݁߹ੑ͕୲อ͞Ε͍ͯͳ͍ w ςελϏϦςΟɾϝϯςφϏϦςΟͷ௿Լ w 6*։ൃͷ҆શੑͱੜ࢈ੑͷ௿Լ w "OESPJEͱJ04ͷ࢓༷ɾ࣮૷ࠩҟͷ֦େ ϦΞʔΩςΫνϟ 735

    7JTVBM3FHSFTTJPO5FTU  $PEF
  32. w ίϯϙʔωϯτͷૄ݁߹ੑ͕୲อ͞Ε͍ͯͳ͍ w ςελϏϦςΟɾϝϯςφϏϦςΟͷ௿Լ w 6*։ൃͷ҆શੑͱੜ࢈ੑͷ௿Լ w "OESPJEͱJ04ͷ࢓༷ɾ࣮૷ࠩҟͷ֦େ ϦΞʔΩςΫνϟ 

    ,PUMJO.VMUJQMBUGPSN.PCJMF ,.. $PEF
  33. 6TF$BTFT &OUJUJFT 6* 1SFTFOUBUJPO %# &YUFSOBM *OUFSGBDFT (BUFXBZT 1SFTFOUFST $POUSPMMFST

    "DUJPO %JTQBUDIFS 4UPSF 7JFX "DUJPO %JTQBUDIFS 4UPSF 7JFX "DUJPO 7JFX 7JFX.PEFM 7JFX.PEFM J04 "OESPJE 'MVY!.77. 'MVY $MFBO"SDIJUFDUVSF 1MBUGPSN 4QFDJGJD"1*T 3F"SDIJUFDUVSF
  34. 3F"SDIJUFDUVSF 6TF$BTFT &OUJUJFT 6* 1SFTFOUBUJPO %# &YUFSOBM *OUFSGBDFT (BUFXBZT 1SFTFOUFST

    $POUSPMMFST "DUJPO %JTQBUDIFS 4UPSF 7JFX "DUJPO %JTQBUDIFS 4UPSF 7JFX "DUJPO 7JFX 7JFX.PEFM 7JFX.PEFM J04 "OESPJE 'MVY!.77. 'MVY $MFBO"SDIJUFDUVSF 1MBUGPSN 4QFDJGJD"1*T
  35. 3F"SDIJUFDUVSF 6TF$BTFT &OUJUJFT 6* 1SFTFOUBUJPO %# &YUFSOBM *OUFSGBDFT (BUFXBZT 1SFTFOUFST

    $POUSPMMFST "DUJPO %JTQBUDIFS 4UPSF 7JFX "DUJPO %JTQBUDIFS 4UPSF 7JFX "DUJPO 7JFX 7JFX.PEFM 7JFX.PEFM J04 "OESPJE 'MVY!.77. 'MVY $MFBO"SDIJUFDUVSF 1MBUGPSN 4QFDJGJD"1*T
  36. %PNBJO 3FQPTJUPSZ 6* $PNQPOFOU 6TF$BTF 6*-PHJD *OUFSGBDF 3FQPTJUPSZ *OUFSGBDF 6*-PHJD

    6TF$BTF *OUFSGBDF %# "1*4FSWJDF "1*4FSWJDF *OUFSGBDF $BDIF 04%FWJDF &WFOU "1* "QQ 3F"SDIJUFDUVSF $PNQPOFOUT
  37. %PNBJO 3FQPTJUPSZ 6* $PNQPOFOU 6TF$BTF 6*-PHJD *OUFSGBDF 3FQPTJUPSZ *OUFSGBDF 6*-PHJD

    6TF$BTF *OUFSGBDF %# "1*4FSWJDF "1*4FSWJDF *OUFSGBDF $BDIF 04%FWJDF &WFOU "1* "QQ 6*1SFTFOUBUJPO  7JFX 7JFX$POUSPMMFS  "DUJWJUZ 'SBHNFOU 3F"SDIJUFDUVSF $PNQPOFOUT
  38. %PNBJO 3FQPTJUPSZ 6* $PNQPOFOU 6TF$BTF 6*-PHJD *OUFSGBDF 3FQPTJUPSZ *OUFSGBDF 6*-PHJD

    6TF$BTF *OUFSGBDF %# "1*4FSWJDF "1*4FSWJDF *OUFSGBDF $BDIF 04%FWJDF &WFOU "1* "QQ $POUSPMMFST1SFTFOUFST  6*͔Βͷ&WFOUͷϋϯυϦϯάॲཧ  6TF$BTFΛ࣮ߦͯ͠6*΁σʔλΛ൓ө 3F"SDIJUFDUVSF $PNQPOFOUT
  39. %PNBJO 3FQPTJUPSZ 6* $PNQPOFOU 6TF$BTF 6*-PHJD *OUFSGBDF 3FQPTJUPSZ *OUFSGBDF 6*-PHJD

    6TF$BTF *OUFSGBDF %# "1*4FSWJDF "1*4FSWJDF *OUFSGBDF $BDIF 04%FWJDF &WFOU "1* "QQ 6TF$BTFT  ֤ػೳͷ6TF$BTFΛυϝΠϯϞσϧΛ༻͍ ࣮ͯ૷  ݪଇεςʔτϨε  6TF$BTF͔Β6TF$BTFͷݺͼग़͠Λېࢭ  ΞϓϦέʔγϣϯશମͰ࢖༻͢ΔϩδοΫ͸ "QQMJDBUJPO4FSWJDFͱͯ͠6TF$BTF͔Β ݺͼग़͠Մೳͱ͢Δ 3F"SDIJUFDUVSF $PNQPOFOUT
  40. %PNBJO 3FQPTJUPSZ 6* $PNQPOFOU 6TF$BTF 6*-PHJD *OUFSGBDF 3FQPTJUPSZ *OUFSGBDF 6*-PHJD

    6TF$BTF *OUFSGBDF %# "1*4FSWJDF "1*4FSWJDF *OUFSGBDF $BDIF 04%FWJDF &WFOU "1* "QQ %PNBJO  ϓϥοτϑΥʔϜʹґଘ͠ͳ͍υϝΠϯϞσ ϧͱυϝΠϯϩδοΫ  3FQPTJUPSZ*OUFSGBDF  "1*4FSWJDF*OUFSGBDF 3F"SDIJUFDUVSF $PNQPOFOUT
  41. %PNBJO 3FQPTJUPSZ 6* $PNQPOFOU 6TF$BTF 6*-PHJD *OUFSGBDF 3FQPTJUPSZ *OUFSGBDF 6*-PHJD

    6TF$BTF *OUFSGBDF %# "1*4FSWJDF "1*4FSWJDF *OUFSGBDF $BDIF 04%FWJDF &WFOU "1* "QQ &YUFSOBM*OUFSGBDFT1MBUGPSN4QFDJGJD"1*T%#  "1*͔Βσʔλͷऔಘ  υϝΠϯϞσϧͷΩϟογϡɾӬଓԽ  04%FWJDF&WFOUͷϋϯυϦϯά ˞3FQPTJUPSZͰ"1*Λந৅Խ͢ΔઃܭͰ͸ͳ͘ɺΩϟογϡ੍ޚɾϦτϥ ΠɾΤϥʔϋϯυϦϯάͳͲ͸ΞϓϦέʔγϣϯ࢓༷ͱͯ͠ѻ͍Ϣʔεέʔ εͰ࣮૷͢Δํ਑Ͱɺந৅ԽͤͣʹίϯϙʔωϯτΛ෼͚͍ͯ·͢ɻ 3F"SDIJUFDUVSF $PNQPOFOUT
  42. %PNBJO 3FQPTJUPSZ 6* $PNQPOFOU 6TF$BTF 6*-PHJD *OUFSGBDF 3FQPTJUPSZ *OUFSGBDF 6*-PHJD

    6TF$BTF *OUFSGBDF %# "1*4FSWJDF "1*4FSWJDF *OUFSGBDF $BDIF 04%FWJDF &WFOU "1* "QQ "QQ5BSHFU શͯͷίϯϙʔωϯτʹґଘͯ͠ɺ%*Λߦ͍ΞϓϦέʔγϣ ϯΛߏ੒͢Δ 3F"SDIJUFDUVSF $PNQPOFOUT
  43. %PNBJO 3FQPTJUPSZ 6* $PNQPOFOU 6TF$BTF 6*-PHJD *OUFSGBDF 3FQPTJUPSZ *OUFSGBDF 6*-PHJD

    6TF$BTF *OUFSGBDF "1*4FSWJDF "1*4FSWJDF *OUFSGBDF "QQ 3F"SDIJUFDUVSF $PNQPOFOUT %# $BDIF 04%FWJDF &WFOU "1*
  44. 7JTVBM3FHSFTTJPO5FTUJOH 6*ͷύλʔϯςετ ϦΞʔΩςΫνϟʹΑΓ6*ΛίϯϙʔωϯτԽͯ͠ૄ݁߹ ʹ͠7JTVBM3FHSFTTJPO5FTUJOHΛՄೳʹɻ7JFXʹ͸ 6*.PEFMɺ7JFX$POUSPMMFS"DUJWJUZ'SBHNFOUʹ͸ 6*-PHJDͷϞοΫΛ%*ͯ͠ɺσʔλύλʔϯΛ࡞੒͠6*ύ λʔϯΛ໢ཏ͢Δɻ %PNBJO 3FQPTJUPSZ 6*

    $PNQPOFOU 6TF$BTF 6*-PHJD *OUFSGBDF 3FQPTJUPSZ *OUFSGBDF 6*-PHJD 6TF$BTF *OUFSGBDF "1*4FSWJDF "1*4FSWJDF *OUFSGBDF "QQ
  45. 7JTVBM3FHSFTTJPO5FTUJOH ίʔυͷมߋલޙͷ6*ࠩ෼νΣοΫ ίʔυͷมߋલޙʹ͓͍ͯͲͷΑ͏ͳมԽ͕͔͋ͬͨɺͦ Ε͕ҙਤ͍ͯ͠Δ΋ͷ͔ΛνΣοΫ͢Δɻಉ࣌ʹෳ਺σό ΠεͷνΣοΫ΍ΞΫηγϏϦςΟνΣοΫ΋ߦ͏ɻ IUUQTHJUIVCDPNSFHWJ[SFHTVJU

  46. 7JTVBM3FHSFTTJPO5FTUJOH "SDIJUFDUVSF SFHTVJU ϓϧϦΫΤετ εφοϓγϣοτ ॻ͖ग़͠ ࠩ෼֬ೝ 'JSFCBTF5FTU-BC͸"OESPJEͷΈ J04͸$JSDMF$*্Ͱॻ͖ग़͠ Ϩϙʔτੜ੒

    Cloud IAM App Engine Cloud Storage
  47. 7JTVBM3FHSFTTJPO5FTUJOH 3FQPSU ϓϧϦΫΤετͰࠩ෼ΛνΣοΫ

  48. 6*$PNQPOFOUT$BUBMPH $BUBMPH"QQ 6*$PNQPOFOUTͱ6*-PHJD*OUFSGBDF͔Βߏ੒͢Δ %PNBJO 3FQPTJUPSZ 6* $PNQPOFOU 6TF$BTF 6*-PHJD *OUFSGBDF

    3FQPTJUPSZ *OUFSGBDF 6*-PHJD 6TF$BTF *OUFSGBDF "1*4FSWJDF "1*4FSWJDF *OUFSGBDF "QQ $BUBMPH"QQ
  49. 6*$PNQPOFOUT$BUBMPH $BUBMPH"QQ w σβΠφʔͱͷҙࢥૄ௨ w ελΠϧΨΠυ w σβΠϯ่Εͷൃݟ w 6*։ൃޮ཰Խ

  50. ϦΞʔΩςΫνϟͱฒߦͯ͠ίʔυڞ௨Խͷݕ౼ $PEF4IBSJOH

  51. Desktop Browser Android Web Unity Mobile Browser Mobile App Smart

    Display/ Speaker TV iOS iOS Mobile Android Mobile PC Web Chromecast Apple TV Android TV IPTV Google Nest Hub Nintendo Switch Amazon Fire TV Amazon FIre Tablet Mobile Web Ϣʔεέʔε ٕज़ελοΫ ࠶ܝ $PEF4IBSJOH
  52. ରԠσόΠεͷ֦େʹର͢Δํ਑ w ֦େ͢ΔରԠσόΠεʹରͯ͠ɺ൚ԽͰ͖Δ෦෼ͱಛԽ ͢Δ΂͖෦෼Λݕ౼ɻ w αʔϏεͷڧΈͱͯ͠6*69ɾշదͳࢹௌମݧͷ௥ٻΛ ͍ͯͨ͘͠ΊʹɺϓϨθϯςʔγϣϯ૚͸֤σόΠεɾ ϓϥοτϑΥʔϜʹ࠷దԽ͠ಛԽ͍ͯ͘͠ํ਑ɻ w σόΠεɾϓϥοτϑΥʔϜʹґଘ͠ͳ͍Ϣʔεέʔεɺ

    ΤϯςΟςΟ͸൚ԽͰ͖Δ෦෼ͱͯ͠ڞ௨ԽΛਐΊΔɻ 6TF$BTFT &OUJUJFT 6* 1SFTFOUBUJPO %# QMBUGPSN TQFDJGJD"1*T &YUFSOBM *OUFSGBDFT (BUFXBZT 1SFTFOUFST $POUSPMMFST $PEF4IBSJOH
  53. ରԠσόΠεͷ֦େʹର͢Δํ਑ w ಛԽ͢Δ෦෼ w ϓϨθϯςʔγϣϯ૚ w ϓϥοτϑΥʔϜݻ༗ͷΤϯςΟςΟɾϢʔεέʔε w ൚Խ͢Δ෦෼ w

    ൚ԽՄೳͳ֎෦*' w ϓϥοτϑΥʔϜʹґଘ͠ͳ͍ΤϯςΟςΟɾϢʔε έʔε 6TF$BTFT &OUJUJFT 6* 1SFTFOUBUJPO %# QMBUGPSN TQFDJGJD"1*T &YUFSOBM *OUFSGBDFT (BUFXBZT 1SFTFOUFST $POUSPMMFST ಛԽ ൚Խ $PEF4IBSJOH
  54. ϚϧνϓϥοτϑΥʔϜπʔϧͷݕ౼ w 6*ΛؚΉίʔυͷڞ௨Խ ಠࣗ6* Flutter, Unity, Xamarin Forms, Cobalt, …

    w 6*ΛؚΉίʔυͷڞ௨Խ ωΠςΟϒ6* React Native, … w 6*ΛؚΉίʔυͷڞ௨Խ 8FCϕʔε6* Cordova, Titanium Mobile, … w ϩδοΫͷΈͷڞ௨ԽKotlin Multiplatform, Xamarin Native, ... $PEF4IBSJOH
  55. ϚϧνϓϥοτϑΥʔϜπʔϧͷݕ౼ w ϓϥοτϑΥʔϜʹಛԽͨ͠࠷దͳ6*69ͷఏڙ w ϓϥοτϑΥʔϜ"1*΁ͷ௥ैੑ w ։ൃίϛϡχςΟͷকདྷੑ w շదͳ։ൃମݧ $PEF4IBSJOH

  56. ϚϧνϓϥοτϑΥʔϜπʔϧͷݕ౼ 6*ΛؚΉίʔυͷڞ௨Խ͸֤ϓϥοτϑΥʔϜʹ࠷దͳ 6*69ͷఏڙ͕೉͍͠෦෼͕େ͖͘ɺ"#&."ͷ6*69ͷ ཁٻΛຬͨ͢͜ͱ͕Ͱ͖ͳ͍ͱ൑அɻ։ൃ΍ίϛϡχς Οঢ়گɺকདྷੑͱ%FWFMPQFS&YQFSJFODFΛؑΈͯݱ࣌఺ ͰϏδωεϩδοΫͷڞ௨ԽΛ໨తͱͯ͠,PUMJO .VMUJQMBUGPSNΛ࠾༻ɻ ˞6OJUZʹΑΔ6*ΛؚΊͨڞ௨Խ΋ݕূத $PEF4IBSJOH

  57. Web Native Cross Device Smart Display / Speaker %FTLUPQ Browser

    Mobile Browser Mobile App TV iOS Mobile Android Mobile PC Web Chromecast Apple TV Android TV IPTV Google Nest Hub Game Console Amazon Fire TV Amazon FIre Tablet Mobile Web ΫϥΠΞϯτશମΛݟਾ͑ͯଞνʔϜͱ࿈ܞͭͭ͠ɺ ωΠςΟϒείʔϓͰ,..ΛਐΊ͍ͯΔ ࠶ܝ $PEF4IBSJOH
  58. %PNBJO 3FQPTJUPSZ 6* $PNQPOFOU 6TF$BTF 6*-PHJD *OUFSGBDF 3FQPTJUPSZ *OUFSGBDF 6*-PHJD

    6TF$BTF *OUFSGBDF %# "1*4FSWJDF "1*4FSWJDF *OUFSGBDF $BDIF 04%FWJDF &WFOU "1* ,.."SDIJUFDUVSF 4IBSJOHUIFDPNNPOCVTJOFTTMPHJD
  59. ,...PEVMFT %PNBJO 3FQPTJUPSZ 6* $PNQPOFOU 6TF$BTF 6*-PHJD *OUFSGBDF 3FQPTJUPSZ *OUFSGBDF

    6*-PHJD 6TF$BTF *OUFSGBDF %# "1*4FSWJDF "1*4FSWJDF *OUFSGBDF $BDIF "1* 3FQPTJUPSZ %# $BDIF 04%FWJDF &WFOU 6TF$BTF 6TF$BTF *OUFSGBDF ,.."SDIJUFDUVSF 4IBSJOHUIFDPNNPOCVTJOFTTMPHJD
  60. 6* $PNQPOFOU 6*-PHJD *OUFSGBDF 6*-PHJD ,...PEVMFT %PNBJO 3FQPTJUPSZ 6TF$BTF 3FQPTJUPSZ

    *OUFSGBDF 6TF$BTF *OUFSGBDF "1*4FSWJDF "1*4FSWJDF *OUFSGBDF "1* 6TF$BTF 6TF$BTF *OUFSGBDF 6*1SFTFOUBUJPO૚Λআ͍ͨɺ6TF$BTFɾ %PNBJOɾ3FQPTJUPSZɾ"1*4FSWJDFΛ,..ʹΑͬ ͯڞ௨Խɻ 3FQPTJUPSZ %# $BDIF 04%FWJDF &WFOU ,.."SDIJUFDUVSF 4IBSJOHUIFDPNNPOCVTJOFTTMPHJD %# $BDIF
  61. 6* $PNQPOFOU 6*-PHJD *OUFSGBDF 6*-PHJD ,...PEVMFT %PNBJO 3FQPTJUPSZ 6TF$BTF 3FQPTJUPSZ

    *OUFSGBDF 6TF$BTF *OUFSGBDF "1*4FSWJDF "1*4FSWJDF *OUFSGBDF "1* 3FQPTJUPSZ %# $BDIF 04%FWJDF &WFOU 6TF$BTF 6TF$BTF *OUFSGBDF Ҡߦʹίετ͕͔͔Δ3FQPTJUPSZ͸ɺΠϯλϑΣʔεΛ,..͔Β ఏڙ͠ɺ֤ϓϥοτϑΥʔϜͰΠϯλʔϑΣʔεʹద߹࣮ͤͯ͞૷ ͢Δɻطଘͷࢿ࢈Λ׆༻ͭͭ͠ɺ,..ϑϨʔϜϫʔΫʹґଘ͗͢͠ ͳ͍Α͏ɺFYQFDUBDUVBM͸جຊతʹ࢖Θͳ͍ํ਑ɻ ,.."SDIJUFDUVSF 4IBSJOHUIFDPNNPOCVTJOFTTMPHJD %# $BDIF
  62. ,..ଆʹ3FQPTJUPSZΛ࣮૷͢ΔέʔεͰɺ,..ͷϥΠϒϥϦ ͕ͳ͍4%,ͳͲ͸ɺ"EBQUFSΛ֤ϓϥοτϑΥʔϜͰ࣮૷͠ɺ ,..ଆͷ3FQPTJUPSZʹ%*͢Δɻ 6* $PNQPOFOU 6*-PHJD *OUFSGBDF 6*-PHJD ,...PEVMFT %PNBJO

    3FQPTJUPSZ 6TF$BTF 3FQPTJUPSZ *OUFSGBDF 6TF$BTF *OUFSGBDF "1*4FSWJDF "1*4FSWJDF *OUFSGBDF "1* "EBQUFS 6TF$BTF 6TF$BTF *OUFSGBDF "EBQUFS *OUFSGBDF 4%, ,.."SDIJUFDUVSF 4IBSJOHUIFDPNNPOCVTJOFTTMPHJD %# $BDIF
  63. ,..'FBUVSF.PEVMFT ,..'FBUVSF.PEVMFT ,..'FBUVSF.PEVMFT %PNBJO 3FQPTJUPSZ 6TF$BTF 3FQPTJUPSZ *OUFSGBDF 6TF$BTF *OUFSGBDF

    "1*4FSWJDF "1*4FSWJDF *OUFSGBDF 4FSWJDF %PNBJO 3FQPTJUPSZ 3FQPTJUPSZ *OUFSGBDF "1*4FSWJDF "1*4FSWJDF *OUFSGBDF 4FSWJDF *OUFSGBDF ΞϓϦέʔγϣϯશମͰ࢖༻͢Δڞ௨ػೳͷίΞϞ δϡʔϧͱɺػೳ͝ͱͷϑΟʔνϟʔϞδϡʔϧΛαϒ ϓϩδΣΫτʹͯ͠؅ཧ͢ΔɻίΞϞδϡʔϧ͸ޙํޓ ׵Λҡ࣋͠࠷৽Λࢀরͯ͠։ൃ͢ΔɻϑΟʔνϟʔϞ δϡʔϧ͸ϑΟʔνϟʔ͝ͱʹόʔδϣϯ؅ཧ͢Δɻ ,.."SDIJUFDUVSF .VMUJNPEVMFWFSTJPONBOBHFNFOU ,..$PSF.PEVMF
  64. 6TF$BTF*OUFSGBDF 6TF$BTF 4FSWJDF*OUFSGBDF  4FSWJDF %PNBJO 3FQPTJUPSZ "1*4FSWJDF͸ϥΠϒ ϥϦϞδϡʔϧͷ୯ҐͰίΞϞδϡʔϧϑΟʔνϟʔϞ δϡʔϧ͸όʔδϣϯ؅ཧ୯ҐͷαϒϓϩδΣΫτɻ

    ,.."SDIJUFDUVSF .VMUJNPEVMFWFSTJPONBOBHFNFOU ,..$PSF.PEVMF ,..'FBUVSF.PEVMFT ,..'FBUVSF.PEVMFT ,..'FBUVSF.PEVMFT %PNBJO 3FQPTJUPSZ 6TF$BTF 3FQPTJUPSZ *OUFSGBDF 6TF$BTF *OUFSGBDF "1*4FSWJDF "1*4FSWJDF *OUFSGBDF 4FSWJDF %PNBJO 3FQPTJUPSZ 3FQPTJUPSZ *OUFSGBDF "1*4FSWJDF "1*4FSWJDF *OUFSGBDF 4FSWJDF *OUFSGBDF
  65. *OUFSGBDFGPS"QQ ,..$PSF.PEVMF ,..'FBUVSF.PEVMFT ,..'FBUVSF.PEVMFT ,..'FBUVSF.PEVMFT %PNBJO 3FQPTJUPSZ 6TF$BTF 3FQPTJUPSZ *OUFSGBDF

    6TF$BTF *OUFSGBDF "1*4FSWJDF "1*4FSWJDF *OUFSGBDF 4FSWJDF %PNBJO 3FQPTJUPSZ 3FQPTJUPSZ *OUFSGBDF "1*4FSWJDF "1*4FSWJDF *OUFSGBDF 4FSWJDF *OUFSGBDF ϏδωεϩδοΫͷ࣮ߦ͸جຊతʹϑΟʔνϟʔϞ δϡʔϧͷϢʔεέʔεΠϯλʔϑΣʔε͕ΞϓϦͱͷΠ ϯλʔϑΣʔεͱͳΔɻ Ҡߦաఔ΍1'ݻ༗ͷϢʔεέʔε͔ΒɺίΞϞδϡʔϧ ͷαʔϏεΛ࣮ߦ͢Δέʔε΋͋Δɻ ,.."SDIJUFDUVSF
  66. *OUFSGBDFCFUXFFOJ04BOE,.. ,.."SDIJUFDUVSF iOS KMM Module J04*'ˡ,..*' GVOD 5ˡGVO 5 0CTFSWBCMF5ˡGVO

    'MPX8SBQQFS5ˡGVO 'MPX5 4JOHMF5ˡ4VTQFOE8SBQQFS5ˡTVTQFOEGVO 5 J04*'ˠ,..*' GVOD 5ˠGVO 5 0CTFSWBCMF5ˠ'MPX$PNQBU5ˠ'MPX5 4JOHMF5ˠ4VTQFOE8SBQQFS5ˠTVTQFOEGVO 5 1VCMJTI3FMBZ5ˠ4IBSFE'MPX$PNQBU5ˠ4IBSFE'MPX5 #FIBWJPS3FMBZ5ˠ4UBUF'MPX$PNQBU5ˠ4UBUF'MPX5
  67. .POPSFQP ,.."SDIJUFDUVSF Android Repository iOS Repository Native Repository KMM Repository

    J04"OESPJE,..ͷίʔυ͸ݱঢ়ผͷ(JUϦϙ δτϦͰ؅ཧ͍ͯ͠Δ͕ɺόʔδϣϯ؅ཧͷ൥ࡶ͞ ΍,..Ϟδϡʔϧͷมߋ൓өϦʔυλΠϜΛߟྀ ͯ͠ɺকདྷతʹϞϊϦϙ΋ݕ౼ʢϞδϡʔϧΛ௚઀ ࢀরͯ͠։ൃΛޮ཰Խʣ
  68. #VJME wϏϧυ͕࣌ؒ௕͘ੜ࢈ੑ͕௿Լ Plan Code Build Test Release Monitor

  69. #VJME ܧଓతͳվળ w ͳΔ΂͘࠷৽ͷπʔϧΛ࢖༻͍ͯ͘͠ w ίϯύΠϥɾϏϧυͷΦϓγϣϯͷݟ௚͠ w ίʔυϕʔεͷݟ௚͠ʢܕਪ࿦ͳͲʣ w ࠩ෼ϏϧυʹΑΔߴ଎Խ

    w ϏϧυɾςετͷฒྻԽ w ϚγϯεϖοΫ$*ϓϥϯݟ௚͠ w ϦϞʔτϏϧυ
  70. #VJME .VMUJNPEVMF ࠩ෼ϏϧυʹΑΔߴ଎Խ %PNBJO 3FQPTJUPSZ 6* $PNQPOFOU 6TF$BTF 6*-PHJD *OUFSGBDF

    3FQPTJUPSZ *OUFSGBDF 6*-PHJD 6TF$BTF *OUFSGBDF "1*4FSWJDF "1*4FSWJDF *OUFSGBDF "QQ
  71. #VJME 3FNPUF#VJME "OESPJE͸ϦϞʔτϏϧυ΋׆༻ $PNQVUF&OHJOF 4PVSDF$PEF #VJME"SUJGBDUT #VJME 3VO STZOD

  72. $*$%5PPMT .JHSBUJOHGSPN#JUSJTFUP$JSDMF$* XPSLqPXͷίʔυԽ  

  73. 5FTU wखಈͷ2"ʹେ͖͘ґଘ͍ͯ͠Δ wςετϙϦγʔ͕ͳ͘ͲͷϑΣʔζͰԿΛ୲อ ͢Δ͔ᐆດ Plan Code Build Test Release Monitor

  74. 5FTU&OHJOFFSJOH w Ϣχοτςετ w جຊॻ͍͍ͯΔ͕ɺϨΨγʔͳ෦෼΍ີ݁߹ͳ෦෼͸ॻ͚͍ͯͳ͍ Օॴ΋͋Δ w 6*෦෼͸7JTVBM3FHSFTTJPO5FTUJOHʹΑΔ13͝ͱͷࠩ෼֬ೝ w ΠϯςάϨʔγϣϯςετ

    w Ұ෦ίϯϙʔωϯτΛ݁߹ͨ͠ςετΛॻ͍͍ͯΔ w && &OEUP&OE ςετ w ػೳςετʢػೳ։ൃ͝ͱͷςετʣ w ௨͠ςετʢϦϦʔεલͷػೳ໢ཏςετʣ w ϑϦʔςετʢ୳ࡧతςετʣ w IUUQTEFWFMPQFSBOESPJEDPNUSBJOJOHUFTUJOHGVOEBNFOUBMTXSJUFUFTUT
  75. 5FTU&OHJOFFSJOH w Ϣχοτςετ w جຊॻ͍͍ͯΔ͕ɺϨΨγʔͳ෦෼΍ີ݁߹ͳ෦෼͸ॻ͚͍ͯͳ͍ Օॴ΋͋Δ w 6*෦෼͸7JTVBM3FHSFTTJPO5FTUJOHʹΑΔ13͝ͱͷࠩ෼֬ೝ w ΠϯςάϨʔγϣϯςετ

    w Ұ෦ίϯϙʔωϯτΛ݁߹ͨ͠ςετΛॻ͍͍ͯΔ w && &OEUP&OE ςετ w ػೳςετʢػೳ։ൃ͝ͱͷςετʣ w ௨͠ςετʢϦϦʔεલͷػೳ໢ཏςετʣ w ϑϦʔςετʢ୳ࡧతςετʣ w ػೳ࣮૷ऀ͕Ϣχοτςετ΋࣮૷͍ͯ͠Δ͕ɺཻ౓΍ର৅ͳ Ͳ͸ଐਓԽ͓ͯ͠ΓɺۉҰͷอূ͕Ͱ͖͍ͯͳ͍ɻ
  76. 5FTU&OHJOFFSJOH w Ϣχοτςετ w جຊॻ͍͍ͯΔ͕ɺϨΨγʔͳ෦෼΍ີ݁߹ͳ෦෼͸ॻ͚͍ͯͳ͍ Օॴ΋͋Δ w 6*෦෼͸7JTVBM3FHSFTTJPO5FTUJOHʹΑΔ13͝ͱͷࠩ෼֬ೝ w ΠϯςάϨʔγϣϯςετ

    w Ұ෦ίϯϙʔωϯτΛ݁߹ͨ͠ςετΛॻ͍͍ͯΔ w && &OEUP&OE ςετ w ػೳςετʢػೳ։ൃ͝ͱͷςετʣ w ௨͠ςετʢϦϦʔεલͷػೳ໢ཏςετʣ w ϑϦʔςετʢ୳ࡧతςετʣ w ΠϯςάϨʔγϣϯςετ͸΄΅ଘࡏͤͣɺ֤Ϣχοτͷڍಈ͕୲ อ͞Ε͍ͯͯ΋ɺ݁߹ͨ͠ࡍͷڍಈΛ୲อͰ͖͍ͯͳ͍ɻ
  77. 5FTU&OHJOFFSJOH w Ϣχοτςετ w جຊॻ͍͍ͯΔ͕ɺϨΨγʔͳ෦෼΍ີ݁߹ͳ෦෼͸ॻ͚͍ͯͳ͍ Օॴ΋͋Δ w 6*෦෼͸7JTVBM3FHSFTTJPO5FTUJOHʹΑΔ13͝ͱͷࠩ෼֬ೝ w ΠϯςάϨʔγϣϯςετ

    w Ұ෦ίϯϙʔωϯτΛ݁߹ͨ͠ςετΛॻ͍͍ͯΔ w && &OEUP&OE ςετ w ػೳςετʢػೳ։ൃ͝ͱͷςετʣ w ௨͠ςετʢϦϦʔεલͷػೳ໢ཏςετʣ w ϑϦʔςετʢ୳ࡧతςετʣ w ࣗಈԽ͞Εͨςετ͸΄΅ଘࡏͤͣɺखಈ2"Ͱ඼࣭Λ୲อ͍ͯ͠ Δɻ2"ίετ΋૿Ճ͠ଓ͚͍ͯΔɻ
  78. 5FTU&OHJOFFSJOH 5FTU4USBUFHZ 3FQPTJUPSZ 6* $PNQPOFOU 6TF$BTF 6*-PHJD $POUSPMMFS1SFTFOUFS %# "1*4FSWJDF

    $BDIF 04%FWJDF &WFOU "1* %PNBJO Ϣχοτςετ 7JTVBM3FHSFTTJPOςετ ΠϯςάϨʔγϣϯςετ && &OEUP&OE ςετ
  79. 5FTU&OHJOFFSJOH 3FQPTJUPSZ 6* $PNQPOFOU 6TF$BTF 6*-PHJD $POUSPMMFS1SFTFOUFS %# "1*4FSWJDF $BDIF

    04%FWJDF &WFOU "1* %PNBJO Ϣχοτςετ 7JTVBM3FHSFTTJPOςετ ΠϯςάϨʔγϣϯςετ && &OEUP&OE ςετ Ϣχοτςετͷ୲อ͢Δ΂͖඼࣭ɺ໢ཏੑΛߴΊ͍ͯͨ͘Ίʹɺ ϢχοτςετϙϦγʔΛࡦఆɻॏཁ౓ʹΑͬͯςετ࣮૷༏ઌ౓ ΛܾΊͯਐΊ͍ͯΔɻ 5FTU4USBUFHZ
  80. 5FTU&OHJOFFSJOH 3FQPTJUPSZ 6* $PNQPOFOU 6TF$BTF 6*-PHJD $POUSPMMFS1SFTFOUFS %# "1*4FSWJDF $BDIF

    04%FWJDF &WFOU "1* %PNBJO Ϣχοτςετ 7JTVBM3FHSFTTJPOςετ ΠϯςάϨʔγϣϯςετ && &OEUP&OE ςετ ΧλϩάΛॆ࣮ͤ͞ΧόʔൣғΛ޿͍͛ͯ͘ɻ 735ͷϨϏϡΠʔϨϏϡΞʔͷ੹຿Λ໌֬ʹͯ͠ޮՌΛߴΊ͍ͯ ͘ɻ 5FTU4USBUFHZ
  81. 5FTU&OHJOFFSJOH 3FQPTJUPSZ 6* $PNQPOFOU 6TF$BTF 6*-PHJD $POUSPMMFS1SFTFOUFS %# "1*4FSWJDF $BDIF

    04%FWJDF &WFOU "1* %PNBJO Ϣχοτςετ 7JTVBM3FHSFTTJPOςετ ΠϯςάϨʔγϣϯςετ && &OEUP&OE ςετ ΠϯςάϨʔγϣϯςετͱ&&ςετͷࣗಈԽ͸ݱঢ়΄΅ͳ͍ͷͰ͜Ε͔Β ਐΊ͍ͯ͘ஈ֊ɻ ֤ςετϨϕϧͰ୲อ͢Δ΂͖඼࣭Λఆٛͯ͠ϢχοτςετͱΠϯςάϨʔ γϣϯςετΛ֦ॆ͠ɺ&&ςετͰ୲อ͢Δ΂͖γφϦΦΛ໌֬ʹ͍ͯ͠ ͘ɻ&&ςετͷࣗಈԽίετ͸େ͖͘ͳΓ͕ͪͳͷͰɺखಈςετͱͷόϥ ϯεΛݟۃΊΔɻ 5FTU4USBUFHZ
  82. 3FMFBTF wվળαΠΫϧͷϦʔυλΠϜ͕௕͍ wมߋࣦഊͷӨڹ͕େ͖͍ wো֐෮چ͕࣌ؒ௕͍ Plan Code Build Test Release Monitor

  83. %FWFMPQNFOU'MPX 3FMFBTFTQFSXFFL .PO 5VF 8FE 5IV 'SJ NBTUFS Ϗϧυ ϦϦʔεલ

    ςετ ਃ੥ ˞"OESPJE͸಺෦ςετ ΧφϦΞ ϦϦʔε  ϦϦʔε
  84. $BOBSZ3FMFBTF .PO 5VF 8FE 5IV 'SJ NBTUFS Ϗϧυ ΧφϦΞ ϦϦʔε

     ϦϦʔε ਃ੥ ˞"OESPJE͸಺෦ςετ ετΞͷػೳͰΧφϦΞϦϦʔε J04ˠˠˠ "OESPJEˠ %FWFMPQNFOU'MPX ϦϦʔεલ ςετ
  85. #SBODI4USBUFHZ NBTUFS͍ͭͰ΋ϦϦʔεͰ͖Δঢ়ଶ ˞ݱঢ়ϦϦʔεલςετ͸ඞཁ NBTUFS GFBUVSF %FWFMPQNFOU'MPX

  86. #SBODI4USBUFHZ %FWFMPQNFOUXJUIPVU2" ܨ͗ࠐΈΛͯ͠ͳ͍ίϯϙʔωϯτ΍ɺ04୺຤όϦΤʔγϣϯςε τ͕ඞཁͳ͍΋ͷɺϩδοΫͷΈͷมߋͰϢχοτςετͰ୲อͰ͖ ͍ͯΔ΋ͷ͸ίʔυϨϏϡʔͷΈͰ2"ͳ͠ͰNBTUFS΁Ϛʔδɻ %FWFMPQNFOU'MPX NBTUFS GFBUVSF

  87. NBTUFS GFBUVSF #SBODI4USBUFHZ %FWFMPQNFOUXJUI2" 2" 'FBUVSF'MBHͳ͠ͰػೳӨڹ͕͋Δมߋ͸ɺϑΟʔνϟʔϒϥϯνͰ 2"ޙʹNBTUFS΁Ϛʔδɻ ͜ͷέʔεͰ΋ɺՄೳͰ͋Ε͹ػೳӨڹ͕ͳ͍Α͏ʹܨ͗ࠐΈΛͤͣ ʹɺখ͍͞୯ҐͰNBTUFS΁Ϛʔδ͍ͯ͘͜͠ͱΛਪ঑ɻ %FWFMPQNFOU'MPX

  88. NBTUFS GFBUVSF #SBODI4USBUFHZ %FWFMPQNFOUXJUI'FBUVSF'MBH 2" 'FBUVSF'MBHͰ։ൃ͍ͯ͠Δ৔߹͸ɺখ͍͞୯ҐͰNBTUFS΁Ϛʔδͯ͠ ͍͖ɺNBTUFSͷϞδϡʔϧͰςελʔͷΈػೳΛΦϯʹͯ͠ͷ2"ɺ·ͨ ͸'FBUVSF'MBHࠩ͠ସ͑ͷϑΟʔνϟʔϒϥϯνͰ2"Λ࣮ࢪɻ %FWFMPQNFOU'MPX

  89. 'FBUVSF'MBH σϓϩΠͱϦϦʔεΛ੾Γ཭ͯ͠ɺػೳͷϥΠϑ αΠΫϧΛ؅ཧ

  90. 'FBUVSF'MBH $BUFHPSJFT w 3FMFBTF'MBHT w 0QT'MBHT w 1FSNJTTJPO'MBHT w &YQFSJNFOU'MBHT

    IUUQTXXXNBSUJOGPXMFSDPNBSUJDMFTGFBUVSFUPHHMFTIUNM
  91. 'FBUVSF'MBH 3FMFBTF'MBHT 8PSL*O1SPHSFTT'MBHT  ։ൃதͰςετ͞Ε͍ͯͳ͍ίʔυΛɺઈରʹΦϯʹͳ Βͳ͍ػೳͱͯ͠ϓϩμΫγϣϯίʔυʹϦϦʔε͢Δ ͨΊʹ࢖༻ɻ5SVOL#BTFE%FWFMPQNFOUΛՄೳʹ͢ Δɻ ੜଘظؒ มԽ

    ୹͍ খ ࢖༻ྫ w ౤͛મػೳ༗ޮϑϥά w 117ػೳ༗ޮϑϥά w Ϩϯλϧػೳ༗ޮϑϥά w ϚϧνΞϯάϧػೳ༗ޮϑϥά w ࡞඼ϓϨϏϡʔػೳ༗ޮϑϥά w ϐΫνϟɾΠϯɾϐΫνϟ༗ޮϑϥά w FUD
  92. 'FBUVSF'MBH 0QT'MBHT γεςϜͷಈ࡞Λ੍ޚ͢ΔͨΊʹ࢖༻ ࢖༻ྫ w ௿஗Ԇ഑৴༗ޮϑϥά w ޿ࠂ഑৴༗ޮϑϥά w ޿ࠂϏοτϨʔτ࠷େ஋

    w ޿ࠂλΠϜΞ΢τ஋ w ը࣭ઃఆଳҬ্ݶ஋ w ,..༗ޮϑϥά w FUD ੜଘظؒ มԽ ௕͍ த
  93. 'FBUVSF'MBH 1FSNJTTJPO'MBHT ಛఆͷϢʔβʔʹ͚ͩఏڙ͢Δػೳ΍ϢʔβʔମݧΛม ߋ͢ΔͨΊʹ࢖༻ ࢖༻ྫ w ϝτϦΫεαϯϓϦϯάର৅Ϣʔβʔ w 7PJDF0WFSػೳݶఆ഑෍Ϣʔβʔ w

    FUD ੜଘظؒ มԽ ௕͍ େ
  94. 'FBUVSF'MBH &YQFSJNFOU'MBHT "#ςετΛߦ͏ࡍʹ࢖༻ ࢖༻ྫ w σβΠϯ w Ϧίϝϯυ w νϡʔτϦΞϧ

    w ڐ୚μΠΞϩά w ૌٻϙοϓΞοϓ w Ϟδϡʔϧදࣔ w ΞϯέʔτදࣔϩδοΫ࠶දࣔͷՄ൱ɾ ೔෇ִؒɾճ਺্ݶ w FUD ੜଘظؒ มԽ ୹͍ େ
  95. 'FBUVSF'MBH 3FQMBDJOH'FBUVSF'MBH ػೳ͕׬શʹ࣮૷͞Εςετ͞Ε͍ͯΔ΋ͷ͸ 8PSL*O1SPHSFTTΛ0QT1FSNJTTJPO&YQFSJNFOUʹࠩ͠ ସ͑Δ ։ൃத ։ൃ׬ྃ 8PSL*O1SPHSFTT 'MBHT 0QT

    'MBHT 1FSNJTTJPO 'MBHT &YQFSJNFOU 'MBHT
  96. 'FBUVSF'MBH 0WFSSJEF σόοά΍2"༻ʹ 'FBUVSF'MBHΛ೚ҙͷ஋Ͱ PWFSSJEFͰ͖ΔϝχϡʔΛ༻ҙ

  97. .POJUPS wجຊతͳϩά΍Ϋϥογϡ৘ใͳͲ࠷௿ݶͷ؂ ࢹ͔͠Ͱ͖͍ͯͳ͍ wૉૣ͘ো֐Λݕ஌Ͱ͖͍ͯͳ͍ wো֐ରԠͷج४΍൑அ͕ᐆດͰଐਓԽ͍ͯ͠Δ wӨڹൣғΛ͙͢ʹ೺ѲͰ͖ͳ͍ Plan Code Build Test

    Release Monitor
  98. *OUSPEVDJOH4PMVUJPO /FX3FMJDͷಋೖ w 4-*ͷܭଌ w 4-0ͷՄࢹԽʢμογϡϘʔυ࡞੒ʣ w Ξϥʔτ؅ཧʢ1BHFS%VUZ࿈ܞʣ w ΫΤϦͰͷॊೈͳ৘ใऩू

  99. 4-*4-0 ఆٛͱઃఆ  ػೳ͕ఏڙͰ͖ͯΔͱݴ͑Δ৚݅ͷఆٛ  ܭଌର৅Λ໌֬Խ  ܭଌ࣮૷  ϕʔεϥΠϯͷ֬ೝ

     4-0Λઃఆ "WBJMBCJMJUZ FOEFWFOUT FOEFWFOUT GBJMVSFFWFOUT -BUFODZ FOEFWFOUT XIFSFEVSBUJPOY FOEFWFOUT
  100. $BOBSZ3FMFBTF$IFDL (ࢹௌ඼࣭) (ϓϩμΫτ඼࣭) .PO 5VF 8FE 5IV 'SJ NBTUFS Ϗϧυ

    ௨͠ ςετ ΧφϦΞ ϦϦʔε  ϦϦʔε ਃ੥ ˞"OESPJE͸಺෦ςετ ετΞͷػೳͰΧφϦΞϦϦʔε J04ˠˠˠ "OESPJEˠ
  101. CPUʹΑΔࣗಈ൑ఆ $BOBSZ3FMFBTF$IFDL

  102. "MFSUJOH Ξϥʔτઃఆ w ΤϥʔόδΣοτͷࢉग़ w όʔϯϨʔτʹجͮ͘Ξϥʔτઃఆ w ϫʔχϯά͸TMBDL௨஌ w ΫϦςΟΧϧ͸1BHFS%VUZͰ0O$BMM

    ग़యIUUQTTSFHPPHMFXPSLCPPLBMFSUJOHPOTMPT
  103. 4FWFSJUZ-FWFM w 4&7ϏδωεʹॏେͳӨڹΛ༩͑Δো֐ w 4&7Ϗδωεʹ෦෼తͳӨڹΛ༩͑Δো֐ w 4&7ϢʔβʔӨڹͷ௿͍ݶఆతͳো֐

  104. 5SPVCMFTIPPUJOH'MPX XBSSPPN .BTUFS XBSSPPN TFSWJDF JODJEFOU*% FNFSHFODZ .POJUPSJOH 4ZTUFN ো֐࿈བྷ

    ࣄ৅֬ೝ ݕ஌ ରԠ։࢝ ఆظతͳڞ༗ ਐḿߋ৽
  105. 5SPVCMFTIPPUJOH'MPX

  106. %PDVNFOUBUJPO %PDVNFOUBUJPO(VJEFMJOF w ର৅ίʔυͷۙ͘ʹஔ͘ w ίʔυͱಉ͡Α͏؅ཧ w ϨϏϡʔΛ௨ͯ͠඼࣭Λ୲อ 5BSHFUT w

    ΞʔΩςΫνϟ w ϓϥΫςΟε w ςετϙϦγʔ w ։ൃϓϩηε w ςοΫϨʔμʔ Plan Code Build Test Release Monitor
  107. %PDVNFOUBUJPO 5FDI3BEBS ٕज़બఆঢ়گɺબఆج४ɺબఆཧ༝ΛՄࢹԽɾ௥੻Մೳ ʹͯ͠ܧଓతʹਐԽͤ͞Δ

  108. $PODMVTJPO

  109. $PODMVTJPO ߴ଎ʹվળαΠΫϧΛճͯ͠Ծઆɾݕূͷਫ਼౓Λ ্͛ͯૉૣ͘ϢʔβʔͷχʔζʹԠ͑ɺ඼࣭Λҡ ࣋͠ͳ͕ΒܧଓతʹվળͰ͖ΔΑ͏ʹ͍ͯ͘͠ɻ ͜Ε͕ɺมԽͷܹ͍͠؀ڥͰϏδωεڝ૪ྗͷ޲ ্ʹͭͳ͕Δɻ

  110. $PODMVTJPO • Ϟμϯͳٕज़ͱ։ൃઓུͰ௅ΉABEMA AndroidΞϓϦͷϦχϡʔΞϧ w IUUQTEFWFMPQFSTDZCFSBHFOUDPKQCMPHBSDIJWFT • UIઃܭͷڞ௨ԽͰػೳࠩҟΛຒΊΔϞόΠϧΞϓϦ։ൃ | ABEMA

    Developer Conference 2021 w IUUQTEFWFMPQFSBCFNBJPTFTTJPOTSDQE#BK$Z, • Multiplatform Engineering Roadmap for the Future | ABEMA Developer Conference 2021 w IUUQTEFWFMPQFSBCFNBJPTFTTJPOTCWKQX+&P(1 • ABEMA SREͷ௅ઓʙFrontend & Backend Team΁ͷEmbedded SREಋೖ | ABEMA Developer Conference 2021 w IUUQTEFWFMPQFSBCFNBJPTFTTJPOT35J225IRHH • HiltҠߦͭͭ͠SingleActivityԽΛ໨ࢦͨ͠ABEMA͕ɺͲͷΑ͏ʹFluxͷStore/Action΁ରԠ͔ͨ͠ʁ | Android Meetup w IUUQTZPVUVCF@*VH.*;7 • ABEMAϞόΠϧΞϓϦʹ͓͚ΔϦΞʔΩςΫνϟͷऔΓ૊Έͱల๬ | CyberAgent Developers Blog w IUUQTEFWFMPQFSTDZCFSBHFOUDPKQCMPHBSDIJWFT • ABEMAͷϦΞʔΩςΫνϟ | CA.swift w IUUQTTQFBLFSEFDLDPNLPLJIJSPLBXBBCFNBGBMTFSJBLJUFLVUJZB • ৽͍͠ະདྷͷςϨϏʮABEMAʯͷSLI/SLOʹجͮ͘࠷దԽ΁ͷ௅ઓ | NewRelic ͓٬༷ࣄྫ w IUUQTOFXSFMJDDPNKQDVTUPNFSTBCFNBUWKQ • iOSʹKMMΛಋೖ͢Δtips | Flutter ! Kotlin Multiplatform by CyberAgent #2 w IUUQTTQFBLFSEFDLDPNNBSUZTV[VLJJPTOJLNNXPEBPSVTVSVUJQT • ABEMAͷKotlin Multiplatform | Flutter ! Kotlin Multiplatform by CyberAgent #3 w IUUQTTQFBLFSEFDLDPNUBLBIJSPNBCFNBGBMTFLPUMJONVMUJQMBUGPSN • ABEMA iOS ΞϓϦ͕ΞΫηγϏϦςΟվળΛϦϦʔε͢Δ·Ͱ | CyberAgent Developers Blog w IUUQTEFWFMPQFSTDZCFSBHFOUDPKQCMPHBSDIJWFT • ܧଓతͳ։ൃελΠϧ ʮAbemaTV iOSΞϓϦΛिҰͰ ϦϦʔε͍ͯ͠Δ࿩ʯ | CyberAgent Developers Blog w IUUQTEFWFMPQFSTDZCFSBHFOUDPKQCMPHBSDIJWFT
  111. ͝ࢹௌ͋Γ͕ͱ͏͍͟͝·ͨ͠