Slide 1

Slide 1 text

%SPJE,BJHJ%BZ4FQBU#VNCMFCFF (SBEMF$POWFOUJPO1MVHJOT 4MJEFT Jumpei Matsuda @red_fat_daruma

Slide 2

Slide 2 text

/05&%FGJOJUJPOTPG1SPKFDUBOE.PEVMF w 5IFTFUFSNTJOUIF(SBEMFEPNBJOBSFBNCJHVPVTJGPS"OESPJEEFWT🫣 w 6TFQSPKFDUGPS w )BTTFUUJOHTHSBEMFBUSPPUBOEBTFUPG fi MFTEJSFDUPSJFTGPSZPVS BQQ w 6TFNPEVMFPSCVJMEDPNQPOFOUGPS w (SBEMFTQSPKFDULOPXOBTSPPU1SPKFDUBOETVCQSPKFDUTJO(SBEMF"1* 2

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

5PEBZTGPDVT w 'PDVTPO8):PWFS)08JOUIJTQSFTFOUBUJPO w 8IBUTBOEXIBUGPS(SBEMF$POWFOUJPO1MVHJO w 8IZTPNFUFDIOJRVFTF ff FDUJWFGPSCVJMEQFSGPSNBODF 4

Slide 5

Slide 5 text

w 'PSFYBNQMF TDSJQUQMVHJOTDBOTIBSFJU 4IBSJOHMPHJDTCFUXFFO(SBEMFQSPKFDUT 5

Slide 6

Slide 6 text

4IBSJOHMPHJDTCFUXFFO(SBEMFQSPKFDUT w 'PSFYBNQMF TDSJQUQMVHJOTDBOTIBSFJU w (SBEMFSFDPNNFOEUPDSFBUFDPNQJMFEQMVHJOTJOTUFBE🫣 6

Slide 7

Slide 7 text

(SBEMF$POWFOUJPO1MVHJOT

Slide 8

Slide 8 text

5IFCVJMEMPHJDDPNQPOFOUDPOUBJOTQSPKFDUUZQFT UIBU(SBEMFJUTFMGVOEFSTUBOETBTCVJMEDPO fi HVSBUJPO 5IBUJT (SBEMFQMVHJOTGPSZPVSTQFDJ fi DOFFET XIJDIXFDBMMDPOWFOUJPOQMVHJOT 8 IUUQTEPDTHSBEMFPSHDVSSFOUVTFSHVJEFTUSVDUVSJOH@TPGUXBSF@QSPEVDUTIUNM

Slide 9

Slide 9 text

(SBEMF$POWFOUJPO1MVHJOT w (SBEMF1MVHJOTXSJUUFOGPSZPVSTQFDJ fi DOFFET w /PUBTQFDJBMJNQMFNFOUBUJPO w 5IFZDBOQFSGPSNBDUJPOTUIBUSFHVMBSQMVHJOTDBOBMTPEP 9

Slide 10

Slide 10 text

4QFDJGJDOFFET w 4IBSFTBNFDPO fi HVSBUJPOTJF%3: w 4UFQQJOHJO(SBEMFUBTLTBOEJUTHSBQIPOEFNBOE w "OUJDPSSVQUJPOMBZFSPGSEQBSUZQMVHJOTBOETPPO 10

Slide 11

Slide 11 text

8IZTIPVMEXFXSJUFQMVHJOT 🤔

Slide 12

Slide 12 text

5IFCVJMEMPHJDDPNQPOFOUDPOUBJOTQSPKFDUUZQFT UIBU(SBEMFJUTFMGVOEFSTUBOETBTCVJMEDPO fi HVSBUJPO 5IBUJT (SBEMFQMVHJOTGPSZPVSTQFDJ fi DOFFET XIJDIXFDBMMDPOWFOUJPOQMVHJOT 12 IUUQTEPDTHSBEMFPSHDVSSFOUVTFSHVJEFTUSVDUVSJOH@TPGUXBSF@QSPEVDUTIUNM

Slide 13

Slide 13 text

.PEVMFTXPSLBTCVJMEDPOGJHVSBUJPO w 3FHVMBSNPEVMFTDBOOPUDPO fi HVSFUIFCVJMEPGUIFJSQSPKFDU w $PNQPTJUF#VJMETDBODPO fi HVSFUIFCVJMEPGUIFQSPKFDU w .PEVMFTSFHJTUFSFEUP$PNQPTJUF#VJMETBSFTFQBSBUFEGSPNPUIFS SFHVMBSNPEVMFT 13

Slide 14

Slide 14 text

$PNQPTJUF#VJMET w #VJMEJOHNPEVMFTBSFCBTJDBMMZDPNQMFUFEJOUIFPSEFSPGUIFJS EFQFOEFODZHSBQI w .PEVMF'BOE%ˠ.PEVMF#BOE&ˠ.PEVMF$ˠ.PEVMF" 14 %FQFOEFODZ(SBQIPG(SBEMFNPEVMFT

Slide 15

Slide 15 text

$PNQPTJUF#VJMET w 4JNJMBSUPCVJMEJOHNVMUJQMFQSPKFDUTJONPOPSFQP w (SFBEMFCVJMETUIFDPNQPOFOUTPG$PNQPTJUF#VJMET fi STU BOEUIFO CVJMEOPO$PNQPTJUF#VJMETNPEVMFT 15 $PNQPTJUF#VJMET OPO$PNQPTJUF#VJMETNPEVMFT

Slide 16

Slide 16 text

(SBEMF$POWFOUJPO1MVHJOTBSF w #FTUQSBDUJDFTPGTIBSJOHMPHJDTCFUXFFONVMUJQMFNPEVMFT w $PO fi HVSFUIFCVJMEPGZPVSQSPKFDUPOUIFDPOWFOUJPO w $POWFOUJPO1MVHJOTTIPVMENFFUUIFGPMMPXJOHDPOEJUJPOT w 4VQQPSUQSPKFDUTQFDJ fi DOFFET w #VJMUXJUI$PNQPTJUF#VJMET w 5IFO UIFZDBOCFDPNQJMFEJOBEWBODF🎉 16

Slide 17

Slide 17 text

:FT UIFZBSFDPNQJMFEQMVHJOT

Slide 18

Slide 18 text

:FT UIFZBSFDPNQJMFEQMVHJOT JGZPVIBWFDSFBUFEQSPQFSMZ

Slide 19

Slide 19 text

6OXBOUFE$POWFOUJPO1MVHJOT w )JHIGSFRVFOUBOEPSIFBWZSFDPNQJMBUJPO w *ODSFNFOUBMCVJMETBSFOPUTVQQPSUFE w 3FDPNQJMBUJPOOFFETUPSVOXJUIPVUDPEFNPEJ fi DBUJPO w -FTTDBDIFEEVFUPVTFPG"1*TMJLF4ZTUFNHFUFOW 4USJOH 19

Slide 20

Slide 20 text

6OXBOUFE$POWFOUJPO1MVHJOT w )JHIGSFRVFOUBOEPSIFBWZSFDPNQJMBUJPO w *ODSFNFOUBMCVJMETBSFOPUTVQQPSUFE w 3FDPNQJMBUJPOOFFETUPSVOXJUIPVUDPEFNPEJ fi DBUJPO w -FTTDBDIFEEVFUPVTFPG"1*TMJLF4ZTUFNHFUFOW 4USJOH w 8*--.",&)*()&3$0454< > w 4MPXMPDBM$*CVJMETBMTPEBNBHFZPVSQSPEVDUJWJUZ 20 [1] https://github.blog/2022-12-08-experiment-the-hidden-costs-of-waiting-on-slow-build-times/ [2] https://gradle.com/blog/quantifying-the-costs-of-builds/

Slide 21

Slide 21 text

&GGFDUJWF$POWFOUJPO1MVHJOT w .VTUTBUJTGZUIFGPMMPXJOHT w #FOPUSFDPNQJMFEFYDFQUXIFONPEJGZJOHQMVHJOTDPEF w 3FEVDFSFDPNQJMBUJPODPTUTCZVTJOHCVJMEDBDIJOH w 6TFDPOTUBOUWBMVFTBUUIFDPNQJMFUJNFBTNVDIBTQPTTJCMF w /JDFUPIBWF w #FTIBSFEBDSPTTNBOZNPEVMFT 21

Slide 22

Slide 22 text

&GGFDUJWF$POWFOUJPO1MVHJOT w .VTUTBUJTGZUIFGPMMPXJOHT w #FOPUSFDPNQJMFEFYDFQUXIFONPEJGZJOHQMVHJOTDPEF w 3FEVDFSFDPNQMJBUJPODPTUTCZVTJOHCVJMEDBDIJOH w 6TFDPOTUBOUWBMVFTBUUIFDPNQJMFUJNFBTNVDIBTQPTTJCMF w /JDFUPIBWF w #FTIBSFEBDSPTTNVMUJQMF(SBEMFQSPKFDUT 22 4BNFQSBDUJDFTBTBOESPJEBQQEFWFMPQNFOUJUTFMG

Slide 23

Slide 23 text

-FBSO(SBEMFTQFDJGJDLOPXMFEHF w :PVBMSFBEZIBWFFOPVHIFYQFSJFODFTBOENJOETFUGPSUIFCVJME QFSGPSNBODFJNQSPWFNFOUT w 4P JUXPVMECFPLBZJGZPVKVTUMFBSO(SBEMFTQFDJ fi DLOPXMFEHF w JF(SBEMFCVJMEMJGFDZDMFBOE(SBEMF"1*T w 4PVOETEJ ffi DVMU -FUTTFFUIF(SBEMFCVJMEMJGFDZDMF 23

Slide 24

Slide 24 text

(SBEMF#VJME-JGFDZDMF 24

Slide 25

Slide 25 text

(SBEMF#VJME-JGFDZDMF 25

Slide 26

Slide 26 text

(SBEMF#VJME-JGFDZDMF 26 w $PO fi HVSBUJPODBDIF

Slide 27

Slide 27 text

(SBEMF#VJME-JGFDZDMF 27 w $PO fi HVSBUJPODBDIF DPO fi HVSBUJPODBDIF 
 DPNQBUJCMF"1*T 
 BSFQSFGFSBCMF

Slide 28

Slide 28 text

1MVHJO*NQMFNFOUBUJPOJO$PNQPTJUF#VJMET w $POWFOUJPOQMVHJOTTIPVME w CFCVJMEDBDIFGSJFOEMZ w QSPWJEFDPO fi HVSBUJPODBDIFDPNQBUJCMF"1*T w CFBQBSUPG$PNQPTJUF#VJMET 28

Slide 29

Slide 29 text

$PNQPTJUF#VJMETº1MVHJOXSJUJOH w )PXUPFOBCMF$PNQPTJUF#VJMET w 6TFQSFEF fi OFEEJSFDUPSZPSNBOVBMSFHJTUSBUJPO w 1MVHJOXSJUJOH w 1SFDPNQJMFETDSJQUQMVHJOPSTUBOEBMPOFQMVHJO w 1SPHSBNNJOH-BOHVBHFT w 1SFGFSSBCMF"1*TBOEDPEFTNFMMT 29

Slide 30

Slide 30 text

)PXXFVTF$PNQPTJUF#VJMET w 6TFCVJME4SDEJSFDUPSZJUTPG$PNQPTJUF#VJMETCZEFGBVMU w .BOVBMSFHJTUSBUJPO$BMMJODMVEF#VJME 4USJOH "1*JOTFUUJOHTHSBEMF 30 TFUUJOHTHSBEMFFOBCMFT$PNQPTJUF#VJMET

Slide 31

Slide 31 text

)PXXFVTF$PNQPTJUF#VJMET w 6TFCVJME4SDEJSFDUPSZJUTPG$PNQPTJUF#VJMETCZEFGBVMU w .BOVBMSFHJTUSBUJPO$BMMJODMVEF#VJME 4USJOH "1*JOTFUUJOHTHSBEMF 31 TFUUJOHTHSBEMFFOBCMFT$PNQPTJUF#VJMET

Slide 32

Slide 32 text

CVJME4SDXJUI(SBEMFBOEMPXFS w CVJME4SDCVJMEXBTPOIPUQBUI/PUSFDPNNFOEFE w (SBEMFNBZSVOCVJME4SDUFTUPO$*BHBJOBOEBHBJO😱⏳ 32 5BTL(SBQIBDSPTTCVJME4SDBOEPUIFSNPEVMFT CVJME4SD 0UIFSNPEVMFT

Slide 33

Slide 33 text

w 0OMZUBTLTGPSHFOFSBUJOHKBS BBSPSBOZPVUQVUTXJMMSVO w 4BNFBTPUIFSNPEVMFTPG$PNQPTJUF#VJMET🎉 CVJME4SDXJUI(SBEMFBOEMBUFS 33 CVJME4SD 5BTL(SBQIBDSPTTCVJME4SDBOEPUIFSNPEVMFT 0UIFSNPEVMFT - https://docs.gradle.org/current/userguide/upgrading_version_7.html#gradle_no_longer_runs_the_build_task_for_buildsrc_builds

Slide 34

Slide 34 text

)PXXFVTF$PNQPTJUF#VJMET w 6TFCVJME4SDEJSFDUPSZJUTPG$PNQPTJUF#VJMETCZEFGBVMU w .BOVBMSFHJTUSBUJPO$BMMJODMVEF#VJME 4USJOH "1*JOTFUUJOHTHSBEMF 34 TFUUJOHTHSBEMFFOBCMFT$PNQPTJUF#VJMET

Slide 35

Slide 35 text

w :PVDBODBMMJODMVEF#VJME 4USJOH NVMUJQMFUJNFT w JF:PVDBODSFBUFNVMUJQMFQMVHJOTJONVMUJQMFQSPKFDUT w )PXFWFS JUNBZNBLFUIFDPO fi HVSBUJPOQIBTFMPOHFSUIBOCVJME4SD w "UUIFFOEPG 4RVBSFSFQPSUFEEFHSBEFEVFUPTJOHMF UISFBEFEEFQFOEFODZSFTPMVUJPOJO$PNQPTJUF#VJMET<> w /05&4RVBSFHBWFGPSDPOWFOUJPOQMVHJOT .VMUJQMFJODMVEF#VJMEDBMMTNBZCF 35 [1] https://developer.squareup.com/blog/herding-elephants/

Slide 36

Slide 36 text

$PNQPTJUF#VJMETº1MVHJOXSJUJOH w )PXUPFOBCMF$PNQPTJUF#VJMET w CVJME4SDJODMVEF#VJME"1*BSF fi OFCVUTJOHMFCVJMEJTQSFGFSSFE w 1MVHJOXSJUJOH w 1MVHJOQSPKFDUTUZMFT w 1SPHSBNNJOH-BOHVBHFT w 1SFGFSBCMF"1*TBOEDPEFTNFMMT w "OESPJE(SBEMF1MVHJODPMMBCPSBUJPO 36

Slide 37

Slide 37 text

1MVHJOXSJUJOH w 1MVHJOQSPKFDUTUZMFT w 1SPHSBNNJOH-BOHVBHFT w 1SFGFSBCMF"1*TBOEDPEFTNFMMT w "OESPJE(SBEMF1MVHJODPMMBCPSBUJPO 37

Slide 38

Slide 38 text

1MVHJOQSPKFDUTUZMFT w 1SFDPNQJMFETDSJQUQMVHJO w 4UBOEBMPOFQMVHJOBLBCJOBSZQMVHJO 38

Slide 39

Slide 39 text

1SFDPNQJMFETDSJQUQMVHJO w 7FSZFBTZ+VTUDSFBUFB fi MFOBNFEQMVHJOJEHSBEMF w -PXSFBEBCJMJUZBOEQPPSCVJMEDBDIFNBOBHFNFOU 39

Slide 40

Slide 40 text

4UBOEBMPOFQMVHJOBLBCJOBSZQMVHJO w *NQMFNFOUB1MVHJODMBTTJFDSFBUFBQMVHJOQSPKFDU w #VJMEDBDIFJTNBOBHFBCMF TPUIJTJTSFDPNNFOEFE 40

Slide 41

Slide 41 text

1MVHJOXSJUJOH w 1SFDPNQJMFETDSJQUQMVHJOPSTUBOEBMPOFQMVHJOBLBCJOBSZQMVHJO w 4UBOEBMPOFQMVHJODBOHFUCFOF fi UTPGCVJMEDBDIFFOPVHI w 1SPHSBNNJOH-BOHVBHFT w 1SFGFSBCMF"1*TBOEDPEFTNFMMT w "OESPJE(SBEMF1MVHJODPMMBCPSBUJPO 41

Slide 42

Slide 42 text

1SPHSBNNJOH-BOHVBHFT w (SBEMFQSPWJEFQMVHJOTGPS(SPPWZ ,PUMJOBOEPUIFS+7.MBOHVBHFT w HSBEMFHSBEMFQMVHJOGPS(SPPWZ w LPUMJOETMGPS,PUMJO%4- w KBWBHSBEMFQMVHJOGPSPUIFS+7.MBOHVBHFT w 4UBUJDUZQFEMBOHVBHFJTQSFGFSSFE w (SPPWZJTBMTPPLBZJGZPVVTF$PNQJMF4UBUJDBOOPUBUJPO 42

Slide 43

Slide 43 text

1MVHJOXSJUJOH w 1SFDPNQJMFETDSJQUQMVHJOPSTUBOEBMPOFQMVHJOBLBCJOBSZQMVHJO w 4UBOEBMPOFQMVHJODBOHFUCFOF fi UTPGCVJMEDBDIFFOPVHI w 1SPHSBNNJOH-BOHVBHFT w 4UBUJDUZQFE+7.MBOHVBHFTPSVTF$PNQJMF4UBUJDJO(SPPWZ w 1SFGFSBCMF"1*TBOEDPEFTNFMMT w "OESPJE(SBEMF1MVHJODPMMBCPSBUJPO 43

Slide 44

Slide 44 text

1SFGFSBCMF"1*TBOEDPEFTNFMMT w 2%PDPOWFOUJPOQMVHJOTOFFETQFDJBM(SBEMF"1*T w "/P JUTKVTUBDPNNPOQMVHJOEFWFMPQNFOU w 2%PDPOWFOUJPOQMVHJOTDBSFTQFDJBMMZ w ":FT ZPVTIPVME*UTNFBOJOHMFTTJG$PNQPTJUF#VJMETUBLFUJNF w 2"SFDPEFTOJQQFUTJOUIFP ffi DJBMEPDVNFOUTHPPEFYBNQMFT w "(PPECVUTPNFUJNFTDPOUBJOEFQSFDBUFE"1*VTBHFT🤗🤗 44

Slide 45

Slide 45 text

1SFGFSBCMF"1*TBOEDPEFTNFMMT w 6TF-B[ZDPO fi HVSBUJPO"1*GPSUBTL 45 -FHBDZ5BTL$PO fi HVSBUJPO"1* -B[Z5BTL$PO fi HVSBUJPO"1*

Slide 46

Slide 46 text

1SFGFSBCMF"1*TBOEDPEFTNFMMT w 6TF-B[ZDPO fi HVSBUJPO"1*GPSUBTL FYUFSOBMWBMVFT 46 -FHBDZ +BWB "1* -B[Z1SPWJEFS"1*

Slide 47

Slide 47 text

1SFGFSBCMF"1*TBOEDPEFTNFMMT w 6TF-B[ZDPO fi HVSBUJPO"1*GPSUBTL FYUFSOBMWBMVFTBOENPSF 47 3VOFYUFSOBMTDSJQUT -B[ZFYFDVUJPOPGFYUFSOBMTDSJQUT

Slide 48

Slide 48 text

1SFGFSBCMF"1*TBOEDPEFTNFMMT w $SFBUFBDVTUPNUBTLDMBTTJGZPVDBOOPU fi OEQSPQFSEF fi OFEUBTL w *OQVU0VUQVUBOOPUBUJPOTOPUJGZ(SBEMFPGDPO fi HVSBUJPODBDIFBCMF 48 %F fi OFBDVTUPNUBTLDMBTT 4FUBOEHFUWBMVFT

Slide 49

Slide 49 text

1SFGFSBCMF"1*TBOEDPEFTNFMMT w (FUPSUSBOTGPSNUBTLJOQVUTJNNFEJBUFMZ w -B[ZDPO fi HVSBUJPO"1*NBZCFBWBJMBCMF w 6TFPGJGTUBUFNFOUTUPEFUFSNJOFXIFUIFSUPBQQMZDPO fi HVSBUJPOPSOPU w 4FQBSBUFUIFQMVHJOJOUPNVMUJQMFQMVHJOT w &YQPTF"1*XJUIMB[ZDPO fi HVSBUJPO"1* w 6TFPG3F fl FDUJPO"1*FYDFQUXIFOBDDFTTJOHUPIJEEFO"1* w 4PNFSEQBSUZQMVHJOTVTFSF fl FDUJPOTUPTVQQPSUNVMUJQMFWFSTJPOTCVU DPOWFOUJPOQMVHJOTEPOUIBWFUPUIJOLBCPVUJU 49

Slide 50

Slide 50 text

"OESPJE(SBEMF1MVHJO$PMMBCPSBUJPO w #BTJDBMMZ XFEPOUIBWFUPJOUFSBDUXJUI"(1WJB(SBEMF"1*T w 5IFZQSPWJEFUIFJSPXO"1*TPWFS(SBEMF"1*T w FH"OESPJE$PNQPOFOU"1* "SUJGBDU"1* w #FDBVTF "OESPJEDPNQPOFOUTMJLFWBSJBOUTIBWFUIFJSPXOMJGFDZDMF XJUIJO"(1 w 5IFMJGFDZDMFTBSF fi OFSHSBJOFEUIBOMJGFDZDMFPG(SBEMFTNFDIBOJTN MJLF5BTL TPJUTIBSEUPUPVDIGSPN(SBEMFTJOGSBTUSVDUVSF 50

Slide 51

Slide 51 text

"OESPJE(SBEMF1MVHJO$PMMBCPSBUJPO 51

Slide 52

Slide 52 text

"OESPJE(SBEMF1MVHJO$PMMBCPSBUJPO w %POPUUPVDIUBTLTHFOFSBUFECZ"OESPJE(SBEMF1MVHJO w 5IFZNBZOPUFYQPTFFYUFOTJCMFDPO fi HVSBUJPO w :PVDBODPO fi HVSFNBOZWBMVFTWJBDBMMCBDL"1*T 52

Slide 53

Slide 53 text

"OENPSF w 6TFOFXFS(SBEMF UPHFUUIFCFOF fi UT w (SBEMFJTDPOUJOVPVTMZJNQSPWJOHUIFCVJMEQFSGPSNBODF w 1VCMJTIBOEVTFQMVHJOCJOBSJFTWJBBNBWFOSFQPTJUPSZ<> w 5IJTOFFETFYQFSUJTFUFDIOJRVFTCVUNBLFJUGBTUFSUIBOPUIFST w 6TF(SBEMF&OUFSQSJTFUPEFUFDUJTTVFTZPVTIPVMEBEESFTT 53 [1] https://developer.squareup.com/blog/herding-elephants/

Slide 54

Slide 54 text

8SBQVQ w 1MVHJOTBSFSFDPNNFOEFEXIFOTIBSJOHMPHJDTCFUXFFONPEVMFT w JF(SBEMF$POWFOUJPO1MVHJOT w *TUSPOHMZSFDPNNFOEZPVUPGPMMPXUIFCFTUQSBDUJDFPG(SBEMFCVJMET CFDBVTFQPPS(SBEMFDPOWFOUJPOQMVHJOTDBVTFTMPXCVJMET w #VJMEJNQSPWFNFOUTGPSZPVSQSPKFDUSFRVJSFCVJMEJNQSPWFNFOUTGPS DPOWFOUJPOQMVHJOT fi STU😂 54

Slide 55

Slide 55 text

8SBQVQ w 6OEFSTUBOEJOH(SBEMFTCVJMENFDIBOJTNXJMMCFZPVSIFMQ w $PNQPTJUF#VJMET -B[Z"1* "OESPJE(SBEMF1MVHJOJOUFSGBDFTFUD w %POUGPSHFUUIBUUIFCFTUQSBDUJDFTBMXBZDBSFDBDIJOH w (FUJOUPVDIXJUINFBUUIF&YIJCJUJPO"SFBGPS0 ff i DF)PVSBOEPS UBMLJOQFSTPOBUUIF"GUFS1BSUZ🍻 w 5IBOLZPVTPNVDIGPSMJTUFOJOHUPNZQSFTFOUBUJPO 55