Slide 1

Slide 1 text

%SPJE,BJHJ4FQBU*HVBOB IUUQTESPJELBJHJKQUJNFUBCMF %FCVHHJOH "MM:PV/FFEUP,OPX Jumpei Matsuda @red_fat_daruma σόοάʹؔͯ͠஌͓ͬͯ͘΂͖͜ͱ

Slide 2

Slide 2 text

2 Jumpei Matsuda @red_fat_daruma Software Architect at DeployGate, Inc. Android App and SDK Development Gradle Plugin Development Development Productivity Engineering Rails App Development and more... .F https://deploygate.com

Slide 3

Slide 3 text

w ✅+7.%FCVHHFSXJUI"OESPJE4UVEJP w ✅0 ffi DJBMEFCVHPQUJPOT w ❌"OESPJE/%, ,PUMJO/BUJWF w ❌SEQBSUZEFCVHMJCSBSJFTUPPMT w ❌%ZOBNJDQSPHSBNBOBMZTJT BTQFDUPSJFOUFEQSPHSBNNJOH $PWFSBHFPGUIJTQSFTFOUBUJPO 3 ࠓ೔ͷ಺༰ ಈతϓϩάϥϜղੳ΍ΞεϖΫτࢦ޲ ެࣜσόοάΦϓγϣϯ αʔυύʔςΟʔσόοάπʔϧɾϥΠϒϥϦ

Slide 4

Slide 4 text

Motivations for Debugging 4 1/10 σόοάͷಈػ

Slide 5

Slide 5 text

w PGFOHJOFFSTTQFOEUIFNPTUUJNFPOXSJUJOHOFXDPEFEBJMZ<> w 4PNFFOHJOFFSTPO2VPSBTBJEPGUIFJSUJNFPOEFCVHHJOH<> 8FTQFOENVDIUJNFPODPEJOH 5 [1] GitHub https://github.blog/news-insights/research/survey-reveals-ais-impact-on-the-developer-experience/ [2] Quora - https://www.quora.com/How-much-time-does-a-programmer-spend-on-debugging զʑ͸ଟ͘ͷ࣌ؒΛίʔσΟϯάʹ࢖͍ͬͯΔ (JU)VCͷௐࠪʹΑΔͱͷ։ൃऀ͕ίʔσΟϯά࡞ۀʹҰ൪࣌ؒΛ࢖͍ͬͯΔ 2VPSBͳͲͰɺͷ࣌ؒΛσόοάʹ࢖͏ͱ౴͑ͯΔਓ΋

Slide 6

Slide 6 text

w *T%FCVHHJOHPOMZGPS fi YJOHCVHT w /P EFCVHHJOHJTNPSFHFOFSJD w 'PSFYBNQMF XFPGUFOEFCVHBOBQQFWFOXIJMFBEEJOHBOFXGFBUVSF w %FCVHHJOHJTSFRVJSFEJGBOFXDPEFEPFTOUXPSLBTFYQFDUFE w &OHJOFFSTCBTJDBMMZEFCVHUIFJSQSPEVDUDPEFFWFSZEBZ w 6OMFTTUIFZBSFGBVMUMFTTQFPQMFQ .BZ%FCVHHJOHCFXJUIZPV 6 σόοά͸ৗʹͦ͹ʹ͋Δ σόοά͸όάमਖ਼ͷͨΊ͚ͩʹߦ͏࡞ۀ͔ ͍͍͑ɺσόοά͸΋ͬͱ൚༻తͳ࡞ۀͰ͢ ྫ ৽ػೳΛ࡞Δͱ͖Ͱ͑͞ɺσόοά࡞ۀΛߦ͏͜ͱ͕͋Δ ৽͍͠ίʔυ͕ظ଴௨Γʹಈ͔ͳ͍৔߹ɺσόοά࡞ۀʹస͡Δ جຊతʹɺզʑ͸ৗʹϓϩμΫτίʔυΛσόοά͢Δػձʹ઀͍ͯ͠Δ ྫ֎ ࣦഊ͠ͳ͍׬ᘳ௒ਓ

Slide 7

Slide 7 text

w *OWFTUJHBUJPO w *EFOUJGZDBVTFTPGFSSPST w 7FSJGZIPXDPEFXPSLT w &WBMVBUFBTTVNQUJPOBOEIZQPUIFTJT w 'FBUVSF-PDBUJPO w *NQMFNFOUBUJPO 5IFDPNNPOEFCVHHJOHQSPDFTT 7 ීวతͳσόοάϓϩηε ௐࠪɾ෼ੳ ΤϥʔͷݪҼΛಛఆ͢Δ ίʔυɾಈ࡞Λݕূ͢Δ Ծఆ΍ԾઆΛݕূ͢Δ मਖ਼Օॴͷਪ࿦ɾಛఆ ࣮૷

Slide 8

Slide 8 text

w *OWFTUJHBUJPO w *EFOUJGZDBVTFTPGFSSPST w 7FSJGZIPXDPEFXPSLT w &WBMVBUFBTTVNQUJPOBOEIZQPUIFTJT w 'FBUVSF-PDBUJPO w *NQMFNFOUBUJPO 5IFDPNNPOEFCVHHJOHQSPDFTT 8 ීวతͳσόοάϓϩηε ௐࠪɾ෼ੳ मਖ਼Օॴͷਪ࿦ɾಛఆ ࣮૷

Slide 9

Slide 9 text

The Great Debugging Method 9 2/10 ҒେͳΔσόοάख๏

Slide 10

Slide 10 text

w +VTUNPEJGZDPEFUPBEEQSJOUTUBUFNFOUTXJUISFDPSEJOHWBMVFT w &BTZUPVTFCVUJUTBMPDBMTPMVUJPO w 1SJOUJOHXPSLTXJUIPOMZZPVSPXODPEF w 5IFTUBUFNFOUTNVTUCFSFMJBCMFOPTJEFF ff FDU OPOUJNFBXBSFWBMVF 1SJOUJOH1SJOU%FCVHHJOH 10 ϓϦϯτσόοά ஋ͷه࿥Λ໨తͱͯ͠ɺϩάग़ྗΛ͢Δ͚ͩͷίʔυमਖ਼Λߦ͏ ؆୯ʹར༻Ͱ͖Δ͕ɺہॴతͳղܾࡦͰ͔͠ͳ͍ ݪଇͱͯ͠ɺࣗ෼ͨͪͷίʔυͰ͔͠ػೳ͠ͳ͍ ৴པੑͷ͋Δϩάग़ྗ͕ٻΊΒΕΔFH෭࡞༻͕ͳ͍ɺ஋͕࣌ؒมԽ͠ͳ͍ͳͲ

Slide 11

Slide 11 text

1SJOUJOH1SJOU%FCVHHJOH 11 ϓϦϯτσόοά

Slide 12

Slide 12 text

1SJOUJOH1SJOU%FCVHHJOH 12 ϓϦϯτσόοά

Slide 13

Slide 13 text

1SJOUJOH1SJOU%FCVHHJOH 13 ϓϦϯτσόοά

Slide 14

Slide 14 text

1SJOUJOH1SJOU%FCVHHJOH 14 ϓϦϯτσόοά

Slide 15

Slide 15 text

1SJOUJOH1SJOU%FCVHHJOH 15 ϓϦϯτσόοά

Slide 16

Slide 16 text

w +VTUNPEJGZDPEFUPBEEQSJOUTUBUFNFOUTXJUISFDPSEJOHWBMVFT w &BTZUPVTFCVUJUTBMPDBMTPMVUJPO w 1SJOUJOHXPSLTXJUIPOMZZPVSPXODPEF w 5IFTUBUFNFOUTNVTUCFSFMJBCMFOPTJEFF ff FDU OPOUJNFBXBSFWBMVF w 4PNFUJNFT JUXPVMECFBUJNFDPOTVNJOHEFCVHHJOH w :PVNBZOFFEUPNPEJGZDPEFBOESVOUIFBQQTPNBOZUJNFT w %FUFSNJOJTUJDGPSNVMUJQMFFWBMVBUJPOT CBDLXBSEBQQSPBDI 1SJOUJOH1SJOU%FCVHHJOH 16 ϓϦϯτσόοά ࣌ંɺ࣌ؒΛ࿘අ͢Δσόοάʹͳͬͯ͠·͏ Կ౓΋Կ౓΋ίʔυͷमਖ਼ͱΞϓϦͷ࣮ߦΛ܁Γฦ͢͜ͱ΋ ͋ͱͰࣅͨΑ͏ͳϩάʹܾఆੑΛ࣋ͨͤͨΓɺίʔυΛḪΔΞϓϩʔνʹͳΓ͕ͪ

Slide 17

Slide 17 text

Getting Started with Debugger Don't become a print debugging expert 17 3/10 σόοΨʔͷ࢖͍͸͡Ί ϓϦϯτσόοάͷϓϩʹͳΔͷ͸΍ΊΑ͏

Slide 18

Slide 18 text

w .BSLMJOFTUPBMMPXJOUFSBDUJPOTGSPN%FCVHHFS w 5PHHMFMJOFCSFBLQPJOUTCZUBQQJOHBHVUUFSPGBOFEJUPS w "UUIFCPUIPGSVOUJNFBOECFGPSFMBVODIJOHUIFBQQ -JOF#SFBLQPJOUT 18 ߦϒϨʔΫϙΠϯτ σόοΨʔ͕հೖͰ͖ΔΑ͏ɺߦʹϚʔΩϯά͢Δ ΤσΟλԣͷΨλʔΛλοϓ͢Δͱઃஔɾղআ͞ΕΔ ΞϓϦͷ࣮ߦதɺىಈલͷͲͪΒͷλΠϛϯάͰ΋͍͍

Slide 19

Slide 19 text

w 0QFOUIFQBOFCFMPXJGZPVSBQQQBTTFTCSFBLQPJOUT w :PVSBQQIBTCFFOTVTQFOEFEXIFOUIJTQBOFMBVODIFT %FCVHHFS1BOF 19 σόοΨʔϖΠϯ ϒϨʔΫϙΠϯτͷ෦෼͕࣮ߦ͞ΕΔͱ͖ɺϖΠϯ͕։͘ ͜ͷϖΠϯ͕։͘ͱ͖ɺΞϓϦ͸தஅঢ়ଶʹೖΔ

Slide 20

Slide 20 text

w 4FMFDUBUISFBEUPJOTQFDUEBUBJGOFFEFE w "UISFBEUIBUQBTTFTBCSFBLQPJOUJTDIPTFOCZEFGBVMU 5ISFBET 20 εϨουϏϡʔ ඞཁʹԠͯ͡ɺݕ͍ࠪͨ͠εϨουΛબ୒͢Δ ϒϨʔΫϙΠϯτΛ௨աͨ͠εϨου͕σϑΥϧτͰબ୒͞Ε͍ͯΔ

Slide 21

Slide 21 text

w "TFRVFODFPGNFUIPEDBMMTOPUMJNJUFEUPZPVSPXODPEF 'SBNFT 21 ϑϨʔϜϏϡʔ ϝιουݺͼग़͠ͷྻɻࣗ෼ͨͪͷίʔυʹݶΒͳ͍

Slide 22

Slide 22 text

w $IFDLUIFDVSSFOUTUBUFOPUMJNJUFEUPZPVSPXODPEF %BUB*OTQFDUJPOGPSFBDI'SBNF 22 ϑϨʔϜ͝ͱͷσʔλݕࠪ ݱࡏͷΞϓϦͷঢ়ଶΛݕࠪͰ͖Δɻ͜Ε΋ࣗ෼ͨͪͷίʔυʹݶΒͳ͍

Slide 23

Slide 23 text

w &YFDVUFBOZTUBUFNFOUBOEHFUUIFSFTVMUPOUIFDPOUFYU w /PUFUIBUTJEFF ff FDUTJOUIFFWBMVBUJPONBZCSFBLBQQCFIBWJPVS &WBMVBUJPO 23 ࣜͷධՁ ݺͼग़͠ίϯςΫετ্Ͱ೚ҙͷࣜΛ࣮ߦ͠ɺͦͷ݁ՌΛशಘͰ͖Δ ࣜʹؚ·ΕΔ෭࡞༻͕ΞϓϦͷڍಈʹӨڹ͢ΔϦεΫʹ஫ҙ

Slide 24

Slide 24 text

w &WBMVBUFUIFDVSSFOUMJOFTVTQFOEFECZ%FCVHHFS w (PUPBOETVTQFOEUIFOFYUMJOF 4UFQ0WFS 24 εςοϓΦʔόʔ ݱࡏσόοΨʔ͕தஅ͍ͯ͠ΔߦΛධՁ͢Δ ࣍ͷߦʹҠΓɺ࠶౓தஅ͢Δ

Slide 25

Slide 25 text

w 4UFQ*OUP%JWFJOUPUIFNFUIPEDBMMFWBMVBUJPO w 4UFQ0VU&WBMVBUFUIFSFNBJOJOHTUFQTBOESFUVSOUPUIFDBMMFS 4UFQ*OUP0VU 25 Step Into Step Out εςοϓΠϯτΡͱεςοϓΞ΢τ εςοϓΠϯτΡϝιουݺͼग़͠ͷධՁʹҠΔ εςοϓΞ΢τͦͷϝιουͷ࢒ΓߦΛධՁ͠ɺϝιουݺͼग़͠ݩʹ໭Δ

Slide 26

Slide 26 text

w 3FTVNFUIFBQQPODFZPV fi OJTIWBMJEBUJOHUIFCSFBLQPJOU 3FTVNF 26 ΞϓϦͷ࠶։ ϒϨʔΫϙΠϯτͷݕূ͕ऴΘͬͨΒɺ࠶։͢Δ

Slide 27

Slide 27 text

w .VMUJQMFCSFBLQPJOUTEFHSBEFTBQQQFSGPSNBODF w %POUUPVDIZPVSBQQXIJMFBEFCVHHFSTVTQFOETUIFBQQ w 5IFBQQEPFTOUSFTQPOECFDBVTFUIFNBJOUISFBEJTTVTQFOEFE w &WFOUTBSFFORVFVFEBOEXJMMCFQSPDFTTFESJHIUBGUFSSFTVNJOH /PUJDFT 27 ஫ҙ఺ ଟ͗͢ΔϒϨʔΫϙΠϯτ͸ΞϓϦύϑΥʔϚϯεʹѱӨڹ΋ σόοΨʔ͕ΞϓϦΛதஅ͍ͯ͠Δͱ͖ɺΞϓϦʹ৮Δ΂͖͡Όͳ͍ ϝΠϯεϨου΋தஅ͞ΕͯΔͷͰɺΞϓϦ͕Ԡ౴Ͱ͖ͳ͍ λονΠϕϯτͳͲ͸Ωϡʔʹੵ·Εɺ࠶։࣌ʹҰؾʹॲཧ͞ΕΔ

Slide 28

Slide 28 text

28 How to use Debugger better Inspect and Interact with Apps 4/10 ΑΓ͏·͘σόοΨʔΛ࢖͏ ͞ΒʹΞϓϦͷݕূͱΞϓϦ΁ͷհೖΛߦ͏

Slide 29

Slide 29 text

*OUFSBDUXJUIFYUFSOBMMJCSBSJFT 29 w :PVDBOQVUCSFBLQPJOUTPOSEQBSUZMJCSBSJFT w .BLFTVSFZPVIBWFPQFOFEUIFDPSSFDUTPVSDF w %POUJOGFSUIFCFIBWJPVS DIFDLJUCZZPVSTFMG ֎෦ϥΠϒϥϦʹׯব͢Δ αʔυύʔςΟʔϥΠϒϥϦʹ΋ϒϨʔΫϙΠϯτ͸ஔ͚Δ όʔδϣϯͷਖ਼͍͠ιʔείʔυΛ։͍͓ͯ͘͜ͱ ৼΔ෣͍ͷ༧૝͔Βݕূ΁

Slide 30

Slide 30 text

*OUFSBDUXJUI"OESPJE'SBNFXPSL 30 w "OESPJE'SBNFXPSLDBOBMTPCFTVTQFOEFE w .BLFTVSFZPVIBWFPQFOFEUIFDPSSFDUTPVSDF w $BOOPUTVTQFOEDPEFPOPUIFSQSPDFTTFT w FHTZTUFNTFSWJDFTDPEFCFIJOE"*%- "OESPJEϑϨʔϜϫʔΫʹׯব͢Δ "OESPJEϑϨʔϜϫʔΫͷίʔυʹ΋ϒϨʔΫϙΠϯτ͸ஔ͚Δ ୺຤ͷ04όʔδϣϯͱҰகͨ͠ίʔυΛ։͘͜ͱ ผϓϩηεͷίʔυ͸தஅɾհೖͰ͖ͳ͍ "*%-ͷ௨৴ઌʹ͋ͨΔγεςϜαʔϏεͳͲ

Slide 31

Slide 31 text

w "QQJTTVTQFOEFEXIFOFOUFSFYJUJOHGSPNUIFNFUIPE w .FUIPEPWFSSJEJOHJTBMTPDPWFSFE w :PVDBOEFCVHFWFOJGZPVEPOULOPXUIFJNQMFNFOUBUJPODMBTT .FUIPE#SFBLQPJOUT 31 ϝιουϒϨʔΫϙΠϯτ ϝιου͕ݺͼग़͞Εͨ௚ޙ΍ऴྃ࣌ʹΞϓϦΛதஅͰ͖Δ ΦʔόʔϥΠυઌ΋ର৅ʹͰ͖Δ ࣮૷Ϋϥε͕Θ͔Βͳͯ͘΋σόοά͕Մೳʹ

Slide 32

Slide 32 text

w 4VTQFOEBQQXIFOUIFTQFDJ fi D fi FMEQSPQFSUZJTSFBEPSXSJUUFO w $BOOPUCFVTFEXJUIMPDBMEFMFHBUJPOQSPQFSUJFT w 6TFNFUIPECSFBLQPJOUTPOHFU7BMVFTFU7BMVFPQFSBUPSTJOTUFBE 'JFMEXBUDIQPJOUT 32 ϑΟʔϧυ؂ࢹ ಛఆͷϑΟʔϧυ΍ϓϩύςΟ͕ಡΈॻ͖͞Εͨͱ͖ʹΞϓϦΛதஅͰ͖Δ ϩʔΧϧσϦήʔγϣϯϓϩύςΟʹ͸࢖͑ͳ͍ ͜ͷ৔߹͸ϓϩύςΟϝιου΁ͷϝιουϒϨʔΫϙΠϯτͰ୅ସ͢Δ

Slide 33

Slide 33 text

w ,FFQXBUDIJOHWBSJBCMFTBOEPSFYQSFTTJPOTSFHBSEMFTTPGGSBNFT w $IFDLTUBUFTBDSPTTBDPNQMJDBUFEQSPDFTT MBZFSTBOETPPO w FH8BUDIBTUBUFPGBSFQPTJUPSZGSPNBQSFTFOUBUJPOMBZFS 8BUDI7BSJBCMFT8BUDIFYQSFTTJPO 33 ม਺΍ධՁࣜͷ؂ࢹ ಛఆͷม਺΍ධՁࣜΛϑϨʔϜԣஅͰ؂ࢹ͢Δ͜ͱ͕Ͱ͖Δ ෳࡶͳॲཧ΍ҟͳΔϨΠϠʔΛލ͍Ͱɺঢ়ଶΛ֬ೝͰ͖Δ ྫ ϓϨθϯςʔγϣϯϨΠϠʔ͔Βσʔλιʔεͷ্ྲྀϦϙδτϦͷঢ়ଶΛݟΔ

Slide 34

Slide 34 text

w :PVDBOJOKFDUWBMVFTPOMZXIFOJUTSFRVJSFE w $PNQMJDBUFETUVCCJOHXPVMEOPUCFZPVS fi STUPQUJPO 7BSJBCMF.PEJGJDBUJPO 34 ม਺ͷमਖ਼ ඞཁͳͱ͖ͷΈɺม਺ͷ஋Λվม͢Δ͜ͱ͕Ͱ͖Δ ෳࡶͳελϒॲཧΛॳखͰ΍Δඞཁ͸ͳ͘ͳΔ

Slide 35

Slide 35 text

w &YJUBNFUIPE 㲈BGSBNF BOENBLFJUSFUVSOBOBSCJUSBSZWBMVF w /POFFEUPTUVC OPOFFEUPSFQSPEVDFUIFTUBUFNBOVBMMZ w 4FMFDUBGSBNF03QVUBCSFBLQPJOUPOBNFUIPEDBMMBOEVTF4UFQ*OUP 'PSDF3FUVSO 35 ڧ੍తͳ஋ͷฦ٫ ϝιου ϑϨʔϜ ͷ࢒Γ෦෼ΛධՁ͢Δ͜ͱͳ͘ɺ೚ҙͷ஋Λฦ͢Α͏ʹͰ͖Δ ελϒΛ͢Δඞཁ͸ͳ͍͠ɺखಈͰͷঢ়گ࠶ݱ΋লུͰ͖Δ εςοϓΠϯτΡΛ࢖͏ͳͲͯ͠ɺର৅ͷϑϨʔϜ ϝιου ·Ͱ౸ୡ͢Δඞཁ༗Γ

Slide 36

Slide 36 text

w 3FWFSUUIFTUBUFTPGMPDBMWBSJBCMFTUPUIFTQFDJ fi DGSBNF w -JNJUBUJPO(MPCBMTUBUFTDBOOPUCFSFWFSUFE w %POUOFFEUPNPEJGZBOESVOBOBQQSFQFBUFEMZ 3FTFU'SBNF 36 w 3FQFBUUIFGPMMPXJOHTUFQT w .PEJGZUIFWBSJBCMF w 4UFQ0WFSBOEDIFDLUIFSFTVMU w 3FTFU'SBNF w 4UFQ*OUP UPHPCBDLUPUIFNFUIPE ϑϨʔϜͷϦηοτ ಛఆͷϑϨʔϜΛϦηοτͯ͠ɺϩʔΧϧม਺ͳͲΛר͖໭ͤΔ ੍ݶάϩʔόϧͳঢ়ଶ͸໭ͤͳ͍ ಛఆͷঢ়گͰ͸ɺमਖ਼ͱΞϓϦͷ࣮ߦΛ܁Γฦ͢ඞཁ͕ͳ͘ͳΔ ࣍ͷखॱΛ܁Γฦ͢ ม਺Λվม εςοϓΦʔόʔͰ݁ՌΛ֬ೝ ϑϨʔϜΛϦηοτ εςοϓΠϯτΡͰ࠷ॳͷதஅҐஔʹ໭Δ

Slide 37

Slide 37 text

37 How to use Debugger better Configure Breakpoints 5/10 ΑΓ͏·͘σόοΨʔΛ࢖͏ ϒϨʔΫϙΠϯτͷઃఆΛߦ͏

Slide 38

Slide 38 text

w 'JOE7JFX#SFBLQPJOUTNFOV #SFBLQPJOU0QUJPOT 38 ϒϨʔΫϙΠϯτͷΦϓγϣϯ ϒϨʔΫϙΠϯτҰཡϝχϡʔΛ։͘

Slide 39

Slide 39 text

w %JTBCMFTVTQFOEJOHPSQVUCSFBLQPJOUTXJUIIPMEJOHEPXOUIFTIJGULFZ w 1BUUFSOT w #SFBLQPJOUIJUNFTTBHF w 4UBDL5SBDF w &WBMVBUFBOEMPH -PHHJOHCSFBLQPJOU 39 ϩά༻ϒϨʔΫϙΠϯτ ΞϓϦͷதஅઃఆ 4VTQFOE ΛղআPSγϑτΩʔΛԡ͠ͳ͕Β഑ஔ͢Δ ϩάܗࣜͷύλʔϯ ϒϨʔΫϙΠϯτώοτදࣔ ελοΫτϨʔε ࣜͷධՁͱ݁Ռͷϩά

Slide 40

Slide 40 text

w 5PPNBOZTVTQFOTJPOTNBZBOOPZZPV w $POEJUJPOT w &YQSFTTJPO w 1BTT$PVOU w #SFBLQPJOUEFQFOEFODZ $POEJUJPOBM#SFBLQPJOUT 40 ৚݅෇͖ϒϨʔΫϙΠϯτ සൃ͢ΔΞϓϦͷதஅ͸গʑ΍͔·͍͠ ৚݅෇͚ ධՁࣜ ௨ա਺ ϒϨʔΫϙΠϯτؒͷґଘ

Slide 41

Slide 41 text

w &WBMVBUFUIFTUBUFNFOUUPDPOUSPMUIFBDUJWFOFTTPGUIFCSFBLQPJOU $POEJUJPO&YQSFTTJPO 41 ৚݅෇͖ϒϨʔΫϙΠϯτධՁࣜ ධՁ͕ࣜUSVFΛฦ͢ͱ͖͚ͩϒϨʔΫϙΠϯτΛػೳͤ͞Δ

Slide 42

Slide 42 text

w "CSFBLQPJOUJTEJTBCMFEVOUJMPGQBTTJOHJUSFBDIFTUPUIFDPVOU w *GBCSFBLQPJOUXPSLT UIFDPVOUFSXJMMCFSFTFU $POEJUJPO1BTT$PVOU 42 ৚݅෇͖ϒϨʔΫϙΠϯτ௨ա਺ ࢦఆͨ͠ճ਺͚ͩ௨աͨ͠ͱ͖ɺϒϨʔΫϙΠϯτΛىಈ͢Δ ϒϨʔΫϙΠϯτ͕ػೳͨ͠Βɺ௨ա਺Χ΢ϯλʔ͸Ϧηοτ͞ΕΔ

Slide 43

Slide 43 text

w "CSFBLQPJOUOFFETBOPUIFSCSFBLQPJOUUPCFBDUJWBUFE w %JTUJOHVJTIDPOUFYUTFWFOJGBO&YQSFTTJPOSFUVSOTUIFTBNFWBMVF $POEJUJPO#SFBLQPJOUEFQFOEFODZ 43 ৚݅෇͖ϒϨʔΫϙΠϯτϒϨʔΫϙΠϯτؒͷґଘ ผͷϒϨʔΫϙΠϯτ͕͢Ͱʹػೳ͍ͯ͠Δ͜ͱΛࣗ਎ͷىಈ৚݅ʹ͢Δ ධՁ͕ࣜಉ݁͡ՌΛฦ͢৔߹Ͱ΋ίϯςΫετΛ۠ผͰ͖Δ

Slide 44

Slide 44 text

Debugging Context Concurrency 44 6/10 σόοάͷঢ়گ ฒྻॲཧ

Slide 45

Slide 45 text

w 4VTQFOEPOMZUIFTQFDJ fi DUISFBEJOTUFBEPGTVTQFOEJOHBMMUISFBET w 3BDFDPOEJUJPOTNBZCFSFWFBMFEFBTJFS w 3FDPNNFOEUPBMXBZTXBUDI5ISFBEDVSSFOU5ISFBE HFU/BNF .VMUJQMF5ISFBET 45 ෳ਺εϨου σόοΨʔΛ࢖͑͹ಛఆͷεϨου͚ͩΛதஅ͢Δ͜ͱ͕Ͱ͖Δ ϨʔείϯσΟγϣϯ໰୊ͳͲΛɺΑΓ؆୯ʹղ໌Ͱ͖Δ͜ͱ΋ ݱࡏͷεϨου໊ͷ؂ࢹ 8BUDI Λ͓ͯ͘͠ͱ͍͍

Slide 46

Slide 46 text

w *OHFOFSBM UISFBEOBNFTBSFOPOEFUFSNJOJTUJDGPSDPSPVUJOFT w 6TF$PSPVUJOF/BNFBOEFOBCMFDPSPVUJOFEFCVHNPEF $PSPVUJOF%FCVHHJOH 46 $PSPVUJOFͷσόοά Ұൠతʹɺ$PSPVUJOFͷ࢖͏εϨου ໊ ʹܾఆੑ͕ͳ͍ $PSPVUJOF/BNFΫϥεͱ$PSPVUJOFσόοάϞʔυΛ࢖͏ͱ͍͍

Slide 47

Slide 47 text

$PSPVUJOFEFCVHNPEFJTPO 47 w $PSPVUJOF/BNFJTWJTJCMFBOEFBDIDPSPVUJOFIBTBVOJRVFOBNF w JF @# $PSPVUJOFσόοάϞʔυ͕༗ޮͷͱ͖ $PSPVUJOF/BNF͕දࣔ͞Εɺ$PSPVUJOF͝ͱʹϢχʔΫ໊͕ৼΒΕΔ

Slide 48

Slide 48 text

w :PVDBOJOTQFDUUIFGSBNFTUBUFPOTVTQFOEGVODUJPOT 8PSLTXJUIDPSPVUJOFTQFSGFDUMZ 48 $PSPVUJOFʹରͯ͠σόοΨʔ͸จ۟ͳ͘ಈ͘ͷ͔ TVTQFOEGVODUJPOͰ΋໰୊ͳ͘ಈ͘

Slide 49

Slide 49 text

w 0QUJNJ[BUJPOSFMFBTFTWBSJBCMFTJOTVTQFOEGVODUJPOT w 5IJTJTTVFDBOCFTPMWFECZSFGFSSJOHUPWBSJBCMFT CVUIPXTIPVMEXF EPGPSFYUFSOBMMJCSBSJFT 0QUJNJ[BUJPONBLFTZPVDPOGVTFE 49 ࠷దԽ͕ͪΐͬͱ໽հ ࠷దԽʹΑΓɺTVTQFOEGVODUJPO಺ͷม਺͕։์͞Εͯ͠·͏ ม਺Λࢀরͯ͠σόοΨʔΛࢭΊΕ͹ղܾ͢Δ͕ɺ֎෦ϥΠϒϥϦͰ͸Ͳ͏͢Δ

Slide 50

Slide 50 text

w "EE-XdebugUP,PUMJODPNQJMFSBSHVNFOUT w 5IJTPQUJPOTIPVMECFBDUJWFPOMZXIFOEFCVHHJOHBOBQQ w .FNPSZMFBLTNBZPDDVSVOMFTTPQUJNJ[BUJPOJTPO %JTBCMJOH0QUJNJ[BUJPO 50 ࠷దԽΛແޮʹ 9EFCVHΦϓγϣϯΛίϯύΠϥʹ౉͢ σόοάΛ͢Δͱ͖͚ͩɺ࠷దԽΛΦϑʹ͢Δ͜ͱ ࠷దԽΛ֎͢ͱϝϞϦϦʔΫͷϦεΫ͕͋Δ

Slide 51

Slide 51 text

Debugging Context Jetpack Compose 51 7/10 σόοάͷঢ়گ +FUQBDL$PNQPTF

Slide 52

Slide 52 text

w %FCVHHFSDBOOPUFWBMVBUF$PNQPTBCMFGVODUJPOT w "TZPVLOPX $PNQPTBCMFTSFMZPOUIFDPNQJMFSQMVHJO w )PXFWFS %FCVHHFSJTTUJMMF ff FDUJWF /PUJDFT 52 ஫ҙ఺ σόοΨʔ͔Β$PNQPTBCMFؔ਺Λݺͼग़͢͜ͱ͕Ͱ͖ͳ͍ ίϯύΠϥʔϓϥάΠϯͷॲཧʹڧ͘ґଘ͍ͯ͠ΔͨΊ ͦΕͰ΋σόοΨʔ͸༗༻

Slide 53

Slide 53 text

w $PNQPTF"1*TIFBWJMZVTF,PUMJOTEFMFHBUJPOQSPQFSUJFT w %FMFHBUJPOQSPQFSUJFTBSFTIPXOBT$delegate *OTQFDUWBMVFTGSPN$PNQPTF"1* 53 $PNQPTF"1*ʹΑΔ஋Λݕࠪ͢Δ $PNQPTF"1*͸,PUMJOͷσϦήʔγϣϯϓϩύςΟΛଟ༻͍ͯ͠Δ දࣔͷ͞Εํ͕ಛघͰɺEFMFHBUFΛ൐͏

Slide 54

Slide 54 text

w 6TF-BZPVU*OTQFDUPSUPDPVOUSFDPNQPTJUJPOT w 4FUUIF1BTT$PVOUUPTVTQFOE"QQPOUIFVOFYQFDUFESFDPNQPTJUJPO w #SFBLQPJOUTTIPVMECFTFUUPDPEFTUIBUSFBEVQEBUFTUBUFT 1FSGPSNBODF5VOJOH 54 ύϑΥʔϚϯεɾνϡʔχϯά -BZPVU*OTQFDUPSΛ࢖ͬͯSFDPNQPTJUJPOͷճ਺Λه࿥͓ͯ͘͠ ௨ա਺Λ৚݅ʹ࢖͍ɺ༧ظ͠ͳ͍SFDPNQPTJUJPOͷͱ͖ΞϓϦΛதஅ͢Δ εςʔτͷಡΈॻ͖ʹؔ͢ΔίʔυʹϒϨʔΫϙΠϯτΛஔ͘ͱ͍͍

Slide 55

Slide 55 text

Debugger Availability 55 8/10 σόοΨʔͷར༻৚݅

Slide 56

Slide 56 text

w %FCVHHFSBOE+7.VTF4FSWFS$MJFOUDPNNVOJDBUJPO w +%81+BWB%FCVH8JSF1SPUPDPM w +7.JTSFBEZGPSBDPOOFDUJPOGSPNEFCVHHFSJG+%81QPSUJTPQFO w JF%FCVHHFSDBOOPUDPOOFDUUP+7.XP+%81QPSU 0WFSWJFXPG+7.%FCVHHFS 56 +7.PQFOTBQPSUGPS+%81 +7.EPFTOUPQFOBQPSU +7.σόοΨʔͷ֎؍ σόοΨʔͱ+7.͸αʔόʔΫϥΠΞϯτํࣜͰ௨৴͍ͯ͠Δ ௨৴༻ͷϙʔτΛ։͍͍ͯΔ+7.ʹରͯ͠ͷΈɺσόοΨʔ͸઀ଓͰ͖Δ +7.ଆͷϙʔτΛ։͚ͳ͍ͱ͍͚ͳ͍

Slide 57

Slide 57 text

w .BLFTVSFUIFNFSHFENBOJGFTU fi MFIBTandroid:debuggable=true w /PUFUIBUZPVDBOOPUDIBOHFUIFWBMVFPGJOTUBMMFEBQQT )PXUPPQFO+%81QPSUPG"QQ 57 ΞϓϦͷσόοΨʔ༻ϙʔτͷ։͚ํ ࠷ऴతͳ"OESPJE.BOJGFTUϑΝΠϧ͕EFCVHHBCMFUSVFΛ࣋ͭඞཁ͕͋Δ Πϯετʔϧ͞Ε͍ͯΔΞϓϦͷEFCVHHBCMF͸มߋෆՄ

Slide 58

Slide 58 text

w 6TF%FCVHDPNNBOEGSPN"OESPJE4UVEJP w "UUBDIBEFCVHHFSUPBSVOOJOHEFCVHHBCMFQSPDFTT w 4VTQFOEPOBQQMBVODIUPXBJUGPSBEFCVHHFS w 8BJUBEFCVHHFSQSPHSBNBUJDBMMZ )PXUPDPOOFDU%FCVHHFSUP"QQ 58 σόοΨʔͷ઀ଓํ๏ "OESPJE4UVEJPʹ͋Δ%FCVHίϚϯυΛ3VOͷ୅ΘΓʹ࢖͏

Slide 59

Slide 59 text

w 6TF%FCVHDPNNBOEGSPN"OESPJE4UVEJP w "UUBDIBEFCVHHFSUPBSVOOJOHEFCVHHBCMFQSPDFTT w 4VTQFOEPOBQQMBVODIUPXBJUGPSBEFCVHHFS w 8BJUGPSBEFCVHHFSQSPHSBNBUJDBMMZ )PXUPDPOOFDU%FCVHHFSUP"QQ 59 σόοΨʔͷ઀ଓํ๏ EFCVHHBCMFͳϓϩηεʹରͯ͠໌ࣔతʹσόοΨʔΛ౰ͯΔ

Slide 60

Slide 60 text

w 6TF%FCVHDPNNBOEGSPN"OESPJE4UVEJP w "UUBDIBEFCVHHFSUPBSVOOJOHEFCVHHBCMFQSPDFTT w 4VTQFOEPOBQQMBVODIUPXBJUGPSBEFCVHHFS w (PUP%FWFMPQFSPQUJPOT w 4FMFDUEFCVHBQQBOEUVSOPO8BJUGPSEFCVHHFS w -BVODIBOBQQBOEBUUBDIBEFCVHHFS w 8BJUGPSBEFCVHHFSQSPHSBNBUJDBMMZ )PXUPDPOOFDU%FCVHHFSUP"QQ 60 σόοΨʔͷ઀ଓํ๏ ΞϓϦͷىಈ࣌ʹσόοΨʔ઀ଓΛ଴ػ͢Δ ։ൃऀΦϓγϣϯΛ։͘ σόοάΞϓϦΛબͼɺσόοΨʔΛ଴ػ͢ΔΛ༗ޮԽ ΞϓϦΛىಈ͠ɺલεϥΠυͷํ๏ͰσόοΨʔΛ౰ͯΔ

Slide 61

Slide 61 text

w 6TF%FCVHDPNNBOEGSPN"OESPJE4UVEJP w "UUBDIBEFCVHHFSUPBSVOOJOHEFCVHHBCMFQSPDFTT w 4VTQFOEPOBQQMBVODIUPXBJUGPSBEFCVHHFS w (PUP%FWFMPQFSPQUJPOT w 4FMFDUEFCVHBQQBOEUVSOPO8BJUGPSEFCVHHFS w -BVODIBOBQQBOEBUUBDIBEFCVHHFS w 8BJUGPSBEFCVHHFSQSPHSBNBUJDBMMZ )PXUPDPOOFDU%FCVHHFSUP"QQ 61 σόοΨʔͷ઀ଓํ๏ ΞϓϦͷىಈ࣌ʹσόοΨʔ઀ଓΛ଴ػ͢Δ

Slide 62

Slide 62 text

w 6TF%FCVHDPNNBOEGSPN"OESPJE4UVEJP w "UUBDIBEFCVHHFSUPBSVOOJOHEFCVHHBCMFQSPDFTT w 4VTQFOEPOBQQMBVODIUPXBJUGPSBEFCVHHFS w 8BJUGPSBEFCVHHFSQSPHSBNBUJDBMMZ w 3FRVJSFEGPSNVMUJQSPDFTTFTBQQT )PXUPDPOOFDU%FCVHHFSUP"QQ 62 σόοΨʔͷ઀ଓํ๏ ίʔυ͔ΒσόοΨʔΛ଴ػ͢Δ ϚϧνϓϩηεΞϓϦ։ൃͰ͸ඞਢ

Slide 63

Slide 63 text

Other platforms 63 9/10 ଞͷϓϥοτϑΥʔϜ

Slide 64

Slide 64 text

w +BWB,PUMJODPEFEFCVHHJOHXPSLTSFHBSEMFTTPGUIFGSBNFXPSL w "UMFBTU#SFBLQPJOUTGFBUVSFJTBWBJMBCMFPOPUIFS%FCVHHFST w /05&'MVUUFSIBTPOFLOPXOJTTVF<> w "QQTXJUIandroid:debuggable=truePOUIFSFMFBTF fl BWPSGBJMT )PXBCPVU9QMBUGPSN'SBNFXPSL 64 [1] https://github.com/ fl utter/ fl utter/issues/54126 ΫϩεϓϥοτϑΥʔϜͰ͸Ͳ͏͔ +BWB,PUMJOίʔυͳΒ໰୊ͳ͘࢖͑Δ ଞͷ%FCVHHFS FH+BWB4DSJQU༻ Ͱ΋ɺ࠷௿ݶϒϨʔΫϙΠϯτػೳ͸͋Δ 'MVUUFSͰͭط஌ͷ໰୊͕͋Δ SFMFBTFGMBWPSͰ͸EFCVHHBCMFΛUSVFʹ͢ΔͱΫϥογϡ͢Δ

Slide 65

Slide 65 text

w +7.%FCVHHFSDBOCFVTFEGPSHFOFSBM+7.BQQMJDBUJPOT w .BOZMBOHVBHFTBOEPSGSBNFXPSLTIBWFEFCVHUPPMT w +BWB4DSJQU$ISPNF%FW5PPMFUD w %BSU'MVUUFS%FCVHHFSFUD w /%,HEC --%#FUD w .PTUPGEFCVHHFSTIBWFTBNFPSTJNJMBSGFBUVSFTFYQMBJOFETPGBS )PXBCPVUPUIFSQMBUGPSNMBOHVBHFT 65 ͦͷଞͷϓϥοτϑΥʔϜ΍ݴޠͰ͸Ͳ͏͔ +7.ݴޠͳΒ౰વ+7.%FCVHHFSΛ࢖͑Δ ଟ͘ͷݴޠɾϑϨʔϜϫʔΫʹσόοΨʔɾσόοάπʔϧ͕ଘࡏ͢Δ ຆͲͷσόοΨʔ͕ࠓճ঺հͨ͠ػೳ΍ྨࣅػೳΛ͍࣋ͬͯΔ

Slide 66

Slide 66 text

Wrap up 66 10/10 ͓ΘΓʹ

Slide 67

Slide 67 text

w ✅/PDPEFNPEJ fi DBUJPOJTSFRVJSFE w ✅1SPHSBNFOUJUZWJFXFSXJUIPVUSFFWBMVBUJPO w ✅1FSTUFQCFIBWJPVSDIFDLJOH w ✅*OTQFDUSEQBSUZMJCSBSJFTBOE"OESPJE'SBNFXPSL w ✅"MPUPGGFBUVSFTBSFBWBJMBCMFJOBEEJUJPOUPUIFGFBUVSFTJOUSPEVDFE w ❌/FHBUJWFJNQBDUTPOBQQQFSGPSNBODF %FCVHHFSJTQPXFSGVM 67 σόοΨʔ͸ڧྗ ίʔυमਖ਼͕ෆཁ ࠶ධՁͳ͠Ͱ΋ϓϩάϥϜߏ੒ཁૉͷঢ়ଶΛݟΔ͜ͱ͕Ͱ͖Δ εςοϓ͝ͱͷڍಈݕ͕ࠪՄೳ αʔυύʔςΟʔϥΠϒϥϦ΍"OESPJEϑϨʔϜϫʔΫͰ΋໰୊ͳ͠ ࠓճ঺հͯ͠ͳ͍ػೳ΋͍ͬͺ͍͋Δ ΞϓϦύϑΥʔϚϯεྼԽʹ஫ҙ

Slide 68

Slide 68 text

4VNNBSZ w $PSPVUJOFEFCVHNPEFTIPVMECFBDUJWBUFEUPWJFXUIFJOGPSNBUJPO w %FCVHHFSDBOEFCVH+FUQBDL$PNQPTF w %FCVHHFSOFFETandroid:debuggable=trueGPS"OESPJE"QQT w )PXUPDPOOFDU%FCVHHFSUP"QQJTOPUPOMZTJOHMFXBZ w .BTUFSJOH%FCVHHFSTLJMMTIFMQTZPVSFOHJOFFSMJGF 68 ·ͱΊ $PSPVUJOFσόοάϞʔυΛ࢖ͬͯ৘ใΛӾཡɾऔಘ͠Α͏ +FUQBDL$PNQPTFͰ΋σόοΨʔ͸࢖͑Δ "OESPJEΞϓϦͷ৔߹ɺEFCVHHBCMFUSVF͚͕ͩඞཁ৚݅ ར༻৚݅͸͕ͭͩͬͨɺ઀ଓํ๏͸ෳ਺͋Δ σόοΨʔεΩϧΛຏ͘͜ͱͰɺΤϯδχΞਓੜΛ๛͔ʹ͠Α͏

Slide 69

Slide 69 text

%FCVHHJOH "MM:PV/FFEUP,OPX Jumpei Matsuda @red_fat_daruma 5IBOLZPVGPSMJTUFOJOH 4FFZPVBU"TLUIF4QFBLFSBSFB&OHMJTIRVFTUJPOTBSFBMTPXFMDPNF

Slide 70

Slide 70 text

(PPEUPSFBE w %FCVHHJOH w IUUQTXXXKFUCSBJOTDPNIFMQJEFBEFCVHHJOHDPEFIUNM w IUUQTEFWFMPQFSBOESPJEDPNDPEFMBCTCBTJDBOESPJELPUMJODPNQPTFJOUSPEFCVHHFS w IUUQTEFWFMPQFSBOESPJEDPNSFGFSFODFBOESPJEPT%FCVH w IUUQTEFWFMPQFSBOESPJEDPNQSJWBDZBOETFDVSJUZSJTLTBOESPJEEFCVHHBCMF w $PNQPTF%FCVHHJOH w IUUQTEFWFMPQFSBOESPJEDPNEFWFMPQVJDPNQPTFUPPMJOHMBZPVUJOTQFDUPS w IUUQTNFEJVNDPNBOESPJEEFWFMPQFSTKFUQBDLDPNQPTFEFCVHHJOHSFDPNQPTJUJPOCGDGBGE w IUUQTJPHPPHMFQSPHSBNBFEECEEDBG w $PSPVUJOF%FCVHHJOH w IUUQTHJUIVCDPN,PUMJOLPUMJOYDPSPVUJOFTCMPCEBDDEGEBBCGBGBEEBLPUMJOYDPSPVUJOFTEFCVH3&"%.&NE w IUUQTLPUMJODPOGDPNUBMLT w IUUQTLPUMJOMBOHPSHEPDTEFCVHDPSPVUJOFTXJUIJEFBIUNM 70