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

State of the Union 〜 2018年のアプリ開発事情

huin
September 01, 2018

State of the Union 〜 2018年のアプリ開発事情

2018年9月1日 iOSDC Japan 2018 Day 2で発表したスライドです。(一部修正済み)

huin

September 01, 2018
Tweet

More Decks by huin

Other Decks in Technology

Transcript

  1. ʙ೥ͷΞϓϦ։ൃࣄ৘ʙ
    !IVJO
    J04%$+BQBO
    4UBUFPGUIF6OJPO

    View full-size slide

  2. 2
    ࣗݾ঺հ
    ,PJDIJ4BLBUB
    !IVJO
    IVJONF
    ɹ೥ J04
    ʙ

    View full-size slide

  3. 3
    ࣗݾ঺հ
    ,PJDIJ4BLBUB
    !IVJO
    IVJONF
    ɹ೥ J04
    ʙ

    View full-size slide

  4. ஶ ࡞ ঺ հ
    5

    View full-size slide

  5. 6
    w J04ΞϓϦ։ൃ̒೥ΞϓϦ։ൃ΋͍Ζ͍ΖมԽ͖ͯͨ͠
    w ݴޠ πʔϧ ઃܭʜͲΜͲΜෳࡶʹ
    w ͔͠΋
    ࠷ۙ͸ϚωδϝϯτدΓͰίʔυॻ͕࣌ؒ͘ SZ
    w Ͱ΋΍ͬͺΓΞϓϦ։ൃͷΩϟονΞοϓ͸͍ͨ͠
    ൃදͷϞνϕʔγϣϯ
    ࠷ۙͷτϐοΫεΛؤுͬͯ੔ཧͯ͠ΈΔ

    View full-size slide

  6. 7
    w ࠷ۙͷΞϓϦ։ൃʹ͓͚ΔτϐοΫεΛ੔ཧͯ͠঺հ
    w ਂ͘ΑΓͳΔ΂͘޿͘
    w ϕετϓϥΫςΟεͷ࿩Ͱ͸͋Γ·ͤΜ
    w ศརͳϥΠϒϥϦͷ࿩Ͱ΋͋Γ·ͤΜ
    w ΑΓྑ͍։ൃΛ͢ΔͨΊͷώϯτʹͳΕ͹خ͍͠Ͱ͢
    ͜ͷൃදͷΰʔϧ

    View full-size slide

  7. ʙ೥ͷΞϓϦ։ൃࣄ৘ʙ
    !IVJO
    J04%$+BQBO
    4UBUFPGUIF6OJPO

    View full-size slide

  8. 9
    ݴޠ ґଘੑ؅ཧ λʔήοτߏ੒ ΞʔΩςΫνϟ
    ࣗಈԽ CI / CD πʔϧ
    Ϋϩε
    ϓϥοτϑΥʔϜ

    View full-size slide

  9. 10
    ݴޠ ґଘੑ؅ཧ λʔήοτߏ੒ ΞʔΩςΫνϟ
    ࣗಈԽ CI / CD πʔϧ
    Ϋϩε
    ϓϥοτϑΥʔϜ

    View full-size slide

  10. 11
    w 88%$Ͱൃද
    w ೥ʹ͸ΦʔϓϯιʔεԽ
    w ͓͓Αͦ̍೥ʹ̍౓ͷϖʔεͰϝδϟʔΞοϓσʔτ͍ͯ͠Δ
    w ಛ௃
    w ҆શߴ଎ߴ͍දݱྗ
    w 4XJGUͰ͔͠J04։ൃͨ͜͠ͱͳ͍ਓ΋ଟ͍ͷͰ͸ʁ
    4XJGUͷݱࡏ

    View full-size slide

  11. 12
    w ೥݄ւ֎ΤϯδχΞͷ4XJGU൷൑΋࿩୊ʹͳͬͨ
    w 4XJGUϝδϟʔΞοϓσʔτͰյΕΔޓ׵ੑ
    w 4XJGUUPͷѱເ
    w $PNQJMBUJPO.PEFͷ͓͔͛Ͱ4XJGUUP͸ෛ୲ݮ
    w Ϗϧυ࣌ؒͱͷઓ͍
    w 88%$Ͱηογϣϯ͕ઃ͚ΒΕΔ͘Β͍ʹ͸ؔ৺ࣄ
    w ϓϩδΣΫτίʔυΛগͣͭ͠վળ͢Δ͔ࡳଋͰԥΔ͔
    w ࣌ؒܭଌͱߴ଎Խͷ5JQT͕(JU)VCͰެ։͞Ε͍ͯΔ
    4XJGU΁ͷෆຬ

    View full-size slide

  12. 13
    w ݱࡏͷόʔδϣϯ4XJGU ळʹ͸4XJGUϦϦʔε༧ఆ

    w &BSMZʹ͸4XJGU΁
    w "#*҆ఆԽ͕࠷େ໨ඪ "#*.BOJGFTUP "#*%BTICPBSE

    w όΠφϦͷޓ׵ੑ͕୲อ͞ΕΔͷͰ4XJGUΞοϓσʔτʹک͑ͳͯ͘ྑ͘ͳΔ
    4XJGUͷ͜Ε͔Β
    88%$8IBU`T/FXJO4XJGUΑΓ

    View full-size slide

  13. 14
    ݴޠ ґଘੑ؅ཧ λʔήοτߏ੒ ΞʔΩςΫνϟ
    ࣗಈԽ CI / CD πʔϧ
    Ϋϩε
    ϓϥοτϑΥʔϜ

    View full-size slide

  14. 15
    ݴޠ ґଘੑ؅ཧ λʔήοτߏ੒ ΞʔΩςΫνϟ
    ࣗಈԽ CI / CD πʔϧ
    Ϋϩε
    ϓϥοτϑΥʔϜ

    View full-size slide

  15. 16
    w 044ϥΠϒϥϦΛར༻͢ΔͨΊͷπʔϧ
    w όʔδϣϯΛࢦఆͨ͠Γɺ௥ՃͷґଘੑΛࣗಈͰղܾͯ͘͠ΕΔ
    w ੲ͸HJUTVCNPEVMFͰόʔδϣϯݻఆͭͭࣗ͠෼ͰϏϧυઃఆΛʜ
    w J04ΞϓϦ։ൃͰ༗໊ͳґଘੑ؅ཧπʔϧ
    w $PDPB1PET
    w $BSUIBHF
    w 4XJGU1BDLBHF.BOBHFS 41.

    ґଘੑ؅ཧ

    View full-size slide

  16. 17
    $PDPB1PETWT$BSUIBHF
    $PDPB1PET $BSUIBHF
    1SPT
    ϓϩδΣΫτͷઃఆ·Ͱ΍ͬͯ͘ΕΔ
    ࠷΋ීٴͯ͠ΔͷͰରԠϥΠϒϥϦ๛෋
    Ϗϧυ࣌ؒʹӨڹ༩͑ͳ͍
    ϓϩδΣΫτϑΝΠϧॻ͖׵͑ͳ͍
    $POT
    ϥΠϒϥϦ͕૿͑ΔͱϏϧυ࣌ؒԆͼΔ
    ϓϩδΣΫτϑΝΠϧΛॻ͖׵͑Δ
    ະରԠϥΠϒϥϦଟ͍
    ϦϯΫઃఆ͕खಈͰखؒ

    View full-size slide

  17. 18
    w ݸਓతʹ͸ϜϦͯ͠$BSUIBHFΛ࢖͏ඞཁ͸ͳ͍ͱ͍͏ߟ͑Ͱ͢
    w $PDPB1PET͚ͩͰࡁΉͳΒͦͷ΄͏͕γϯϓϧ
    w Ϗϧυ࣌ؒͳͲ͕໰୊ʹͳ͖ͬͯͨ࣌ʹ$BSUIBHFʹ੾Γग़͢
    w ܦݧతʹ$BSUIBHF͚ͩͰ׬݁͢Δͷ͸೉͍͠
    w ྆ऀซ༻ͭͭ͠GBTUMBOFͰϥοϓ͢Δͷ͕ݱ࣮త
    $PDPB1PETWT$BSUIBHF

    View full-size slide

  18. 19
    ݴޠ ґଘੑ؅ཧ λʔήοτߏ੒ ΞʔΩςΫνϟ
    ࣗಈԽ CI / CD πʔϧ
    Ϋϩε
    ϓϥοτϑΥʔϜ

    View full-size slide

  19. 20
    ݴޠ ґଘੑ؅ཧ λʔήοτߏ੒ ΞʔΩςΫνϟ
    ࣗಈԽ CI / CD πʔϧ
    Ϋϩε
    ϓϥοτϑΥʔϜ

    View full-size slide

  20. 21
    w 4JSJ΍ϦονϓογϡରԠͰΤΫεςϯγϣϯ௥Ճ͸΋͸΍ඞਢ
    w ࠷ॳ͔ΒΤΫεςϯγϣϯલఏͷϓϩδΣΫτߏ੒ʹ͓ͯ͘͠
    w "1*΍αʔϏεϩδοΫ෦෼ΛผϑϨʔϜϫʔΫͱͯ͠੾Γग़͢
    w ϑϨʔϜϫʔΫ෦෼͸6*,JUʹ͸ґଘͤ͞ͳ͍ઃܭ͕େࣄ
    λʔήοτߏ੒
    4BNQMF$PSFGSBNFXPSL
    4BNQMF"1*GSBNFXPSL
    *OUFOUT 5PEBZ
    4BNQMF"QQ
    "QQ$POUBJOFS

    View full-size slide

  21. 22
    w XBUDI04ɺUW04ʹՃ͑ͯɺ೥ʹ͸69,JU Ծ
    ͰNBD04ΞϓϦ΋։ൃՄೳʹʁ
    w ΫϩεϓϥοτϑΥʔϜରԠ͢Δ৔߹͸ϓϩδΣΫτΛ෼͚ͨ΄͏͕͍͍͔΋
    w ϓϥοτϑΥʔϜ͝ͱʹϑϨʔϜϫʔΫλʔήοτ͕ඞཁ
    w ඞཁʹͳͬͨͱ͖ʹؤுΓ·͠ΐ͏
    λʔήοτߏ੒ʙΫϩεϓϥοτϑΥʔϜ

    View full-size slide

  22. 23
    ݴޠ ґଘੑ؅ཧ λʔήοτߏ੒ ΞʔΩςΫνϟ
    ࣗಈԽ CI / CD πʔϧ
    Ϋϩε
    ϓϥοτϑΥʔϜ

    View full-size slide

  23. 24
    ݴޠ ґଘੑ؅ཧ λʔήοτߏ੒ ΞʔΩςΫνϟ
    ࣗಈԽ CI / CD πʔϧ
    Ϋϩε
    ϓϥοτϑΥʔϜ

    View full-size slide

  24. 25
    ΞϓϦΞʔΩςΫνϟ
    ʮJ04ΞϓϦઃܭύλʔϯೖ໳ʯͰษڧ͠·͠ΐ͏

    View full-size slide

  25. 26
    w 5FTUBCJMJUZͷ޲্
    w ϏδωεϩδοΫΛ7JFX$POUSPMMFS͔Β੾Γग़͢
    w 6*ͷঢ়ଶΛϞσϧԽ͠ɺͦΕࣗମΛςετͰ͖ΔΑ͏ʹ͢Δ
    w ঢ়ଶͷอ࣋ɾมߋΛ͢Δ໾ׂΛू໿͢Δ
    w Մಡੑͷ޲্΍ɺҙਤ͠ͳ͍෭࡞༻ όά
    ͷࠞೖΛ๷͙
    w ґଘੑͷ੍ޚ
    w ϏδωεϩδοΫΛ6*,JUͳͲϓϥοτϑΥʔϜʹґଘͤ͞ͳ͍
    w ֤ίϯϙʔωϯτΛQSPUPDPM࣮૷ͳͲͰૄ݁߹ʹ͢Δ
    ֤छΞʔΩςΫνϟͷίϯηϓτ

    View full-size slide

  26. 27
    w Ͳ͏ͯ͠ϦΞΫςΟϒϓϩάϥϛϯά͕ྲྀߦΔͷ͔ʁ
    w ʮ࣌ؒʯΛந৅Խͯ͠ѻ͑Δ͔Βͩͱߟ͍͑ͯΔ
    w ΠϯλʔϑΣΠεͷ҉໧తͳ࣮૷ ಉظඇಉظ
    ৘ใ
    w ͍ͭൃੜ͢Δ͔Θ͔Βͳ͍ϢʔβγεςϜΠϕϯτ
    w 6*ࣗମ͕࣋ͭঢ়ଶͷมԽ FHεΫϩʔϧҐஔ

    w ͢΂ͯͷ࣌ؒΛந৅Խ͢Δʹ͸࿑ྗ͕͔͔ΔͷͰ֮ޛ͕ඞཁ
    ༨ஊϦΞΫςΟϒʹ͍ͭͯ

    View full-size slide

  27. 28
    ݴޠ ґଘੑ؅ཧ λʔήοτߏ੒ ΞʔΩςΫνϟ
    ࣗಈԽ CI / CD πʔϧ
    Ϋϩε
    ϓϥοτϑΥʔϜ

    View full-size slide

  28. 29
    ݴޠ ґଘੑ؅ཧ λʔήοτߏ੒ ΞʔΩςΫνϟ
    ࣗಈԽ CI / CD πʔϧ
    Ϋϩε
    ϓϥοτϑΥʔϜ

    View full-size slide

  29. 30
    w ༷ʑͳఆܗ࡞ۀͷࣗಈԽπʔϧ
    w Ϗϧυ ςετ ॺ໊ ഑෍ ূ໌ॻߋ৽ͳͲ਺ଟ͘ͷ࡞ۀΛࣗಈԽͰ͖Δπʔϧ
    w සൟʹൃੜ͢Δ࡞ۀ΍ස౓͸௿͍͚Ͳ࣌ؒͷ͔͔Δ࡞ۀ͕Φεεϝ
    w Ϣχοτςετ
    w ಈ࡞֬ೝ༻ͷϏϧυ࡞੒
    w ূ໌ॻͷߋ৽
    w ։ൃϝϯόʔؒͰ࡞ۀ಺༰Λ౷ҰͰ͖Δ
    w $* ޙड़
    ʹͷͤΔͷ΋ϥΫʹͳΔ
    'BTUMBOF

    View full-size slide

  30. 31
    ݴޠ ґଘੑ؅ཧ λʔήοτߏ੒ ΞʔΩςΫνϟ
    ࣗಈԽ CI / CD πʔϧ
    Ϋϩε
    ϓϥοτϑΥʔϜ

    View full-size slide

  31. 32
    ݴޠ ґଘੑ؅ཧ λʔήοτߏ੒ ΞʔΩςΫνϟ
    ࣗಈԽ CI / CD πʔϧ
    Ϋϩε
    ϓϥοτϑΥʔϜ

    View full-size slide

  32. 33
    w $POUJOVPVT*OUFHSBUJPO ܧଓతΠϯςάϨʔγϣϯ

    w ϒϥϯνͷϚʔδλΠϛϯάͳͲͰςετΛ࣮ߦͯ͠඼࣭Λҡ࣋͢Δ͜ͱ
    w $POUJOVPVT%FMJWFSZ ܧଓతσϦόϦ

    w ࣗಈσϓϩΠΛࢦ͚͢ͲΞϓϦ։ൃʹ͓͍ͯ͸Ϗϧυ഑෍ͷࣗಈԽΛࢦ͢͜ͱ͕ଟ͍
    $*$%ͷϝϦοτͱϫʔΫϑϩʔ
    PullRequest
    Run Tests
    Merge
    Archive Upload



    Distribute
    Continuous Integration
    Continuous Delivery

    View full-size slide

  33. 34
    w ΞϓϦ͚ͩͰ͸ͳ͍൚༻$*αʔϏε
    w J04͸ઐ༻ͷϓϥϯ͕༻ҙ͞Ε͍ͯΔ
    w ฒྻ਺ Ϗϧυ࣌ؒ෼݄Ͱʙ
    w DJSDMFDJDPOpHZNMΛฤूͯ͠ॲཧΛఆٛ
    w $JSDMF$*Ͱ͸ॺ໊ؔ࿈ͷαϙʔτ͕ͳ͍
    w GBTUMBOFNBUDIͷར༻Λਪ঑
    $JSDMF$*

    View full-size slide

  34. 35
    w ϞόΠϧಛԽܕ$*αʔϏε
    w ฒྻ਺ ෼ϏϧυͰʙ
    w ෼Ϗϧυ Ϗϧυ݄ͷແྉϓϥϯ͋Γ
    w ϫʔΫϑϩʔͷϏδϡΞϧΤσΟλ͕༻ҙ͞Ε
    ͍ͯΔ
    w ॺ໊पΓ΋αϙʔτ
    #JUSJTF

    View full-size slide

  35. 36
    w .JDSPTPGUͷΞϓϦ։ൃαϙʔτπʔϧ
    w $* $%ʹՃ͑ͯΫϥογϡϨϙʔτػೳͳͲ৭ʑ
    w ฒྻ਺ ෼Ϗϧυ ෼݄·Ͱແྉ
    w ฒྻ਺͝ͱʹ ԁ
    w ߋʹ՝ۚ͢Δͱ࣮ػςετ΋Մೳ
    w ॺ໊·ΘΓ΋αϙʔτ
    w ݱࡏ͸8FC)PPL͔खಈͰͷ࣮ߦͷΈ
    7JTVBM4UVEJP"QQ$FOUFS

    View full-size slide

  36. 37
    w 9DPEF4FSWFS
    w 9DPEFͰ౷߹͞Εͨ$*ػೳ
    w .BDຊମͷՁ֨Λআ͚͹
    ແྉ
    w ࣮ػςετ ॺ໊ ఆظ࣮ߦͳͲ΋αϙʔτ
    w +FOLJOT
    w ੲ͔Β͋Δ൚༻$*πʔϧ
    w ࣾ಺2"νʔϜ͕͋Δͱ͜Ζ͸࠾༻ͯ͠Δ͔΋ʁ
    9DPEF4FSWFS +FOLJOT
    9DPEFͷ*OUFHSBUJPOϨϙʔτ

    View full-size slide

  37. 38
    $*αʔϏεൺֱ
    $JSDMF$* #JUSJTF "QQ$FOUFS 9DPEF4FSWFS +FOLJOT
    ϗεςΟϯά Ϛωʔδυ Ϛωʔδυ Ϛωʔδυ ηϧϑ ηϧϑ
    ແྉར༻ ෆՄ Մೳ Մೳ Մೳ Մೳ
    Ϗϧυ੍ݶ
    ࠷҆ϓϥϯ

    ฒྻ਺
    ෼݄
    ฒྻ਺
    ෼Ϗϧυ
    Ϗϧυ݄
    ฒྻ਺
    ෼Ϗϧυ
    ෼݄
    ฒྻ਺̍
    ੍ݶͳ͠
    ॺ໊αϙʔτ φγ ΞϦ ΞϦ ΞϦ ΞϦʁ
    ఆظ࣮ߦ ΞϦ ΞϦ φγ ΞϦ બ୒ࣜ
    ΞϦ

    View full-size slide

  38. 39
    w "QQMFެࣜͷϕʔλςετπʔϧ
    w ໊ͷ಺෦ςελʔ ໊ͷ֎෦ςελʔʹ഑෍Մೳ
    w ֎෦ςελʔ΁ͷ഑෍ʹ͸৹͕ࠪඞཁ
    w 1VCMJD-JOLʹΑΔެ։΋αϙʔτ༧ఆ
    w ؅ཧऀଆͯର৅Λ؅ཧ͠ͳͯ͘ྑ͍ͷͰϥΫ
    w ։ൃ؀ڥ༻Ϗϧυͷ഑෍ʹ͸޲͔ͳ͍
    "QQMF5FTU'MJHIU

    View full-size slide

  39. 40
    w (PPHMFࡿԼͷϕʔλ഑෍αʔϏε
    w &OUFSQSJTFͰ͋Ε͹
    ഑෍਺ͷ੍ݶ͸ͳ͍
    w Πϯετʔϧ͢ΔଆͰϢʔβొ࿥͕ඞཁ
    w ։ൃ؀ڥ༻ϏϧυͳͲ΋ࣗ༝ʹ഑෍Մೳ
    w 'JSFCBTF΁ͷ౷߹͸·ͩͰ͔͢

    'BCSJD#FUB

    View full-size slide

  40. 41
    w ࠃ࢈ͷϕʔλ഑෍αʔϏε
    w Πϯετʔϧ͢Δଆ͔Β͢Δͱ೔ຊޠ҆৺
    w &OUFSQSJTFͰ͋Ε͹
    ഑෍਺ͷ੍ݶ͸ͳ͍
    w 1VCMJD-JOLʹΑΔެ։΋αϙʔτ
    w Ϣʔβ؅ཧΛ͠ͳ͍͍ͯ͘ͷͰඇৗʹϥΫ
    w ݸਓ޲͚ແྉϓϥϯ΋͋Δ͕νʔϜ༻్ͩͱ༗ྉ
    %FQMPZ(BUF

    View full-size slide

  41. 42
    w .JDSPTPGU੡αʔϏε
    w $*ػೳͱҰॹʹ഑෍·Ͱ̍αʔϏεͰ࣮ݱͰ͖Δ
    w Πϯετʔϧ͢ΔଆͰϢʔβొ࿥͕ඞཁ
    w "QQ4UPSF$POOFDUͱ࿈ܞͯ͠ετΞ഑෍·Ͱߦ͑Δ
    w ແྉ
    7JTVBM4UVEJP"QQ$FOUFS

    View full-size slide

  42. 43
    w 9DPEFͰ౷߹͞Εͨػೳ
    w ηϧϑϗεςΟϯάܕ
    w ઃఆ͢Ε͹Ϣʔβొ࿥ແ͠ʹ୭Ͱ΋ΠϯετʔϧՄೳ
    w /8ߏங͕໘౗
    9DPEF4FSWFS

    View full-size slide

  43. 44
    ϕʔλ഑෍αʔϏεൺֱ
    5FTU'MJHIU 'BCSJD#FUB %FQMPZ(BUF "QQ$FOUFS 9DPEF4FSWFS
    ϗεςΟϯά Ϛωʔδυ Ϛωʔδυ Ϛωʔδυ Ϛωʔδυ ηϧϑ
    ແྉར༻ Մೳ Մೳ Մೳ Մೳ Մೳ
    Ϣʔβ؅ཧ ඞਢͰ͸ͳ͍ ඞਢ ඞਢͰ͸ͳ͍ ඞਢ ඞਢͰ͸ͳ͍
    &OUFSQSJTF഑෍ ෆՄ Մೳ Մೳ Մೳ Մೳ

    View full-size slide

  44. 45
    w Ͱ͖Δ͚ͩ࠷ॳʹ·Δͬͱ؀ڥΛ࡞͓ͬͯ͘ͷ͕Φεεϝ
    w ։ൃऴ൫ͰରԠ͠Α͏ͱࢥ͏ͱɺ༨༟ͳͯ͘์ஔ͕ͪ͠
    w Ϗϧυ͕௨Δ͔Ͳ͏͔͚ͩͷνΣοΫͰ΋͍͍ͱࢥ͍·͢
    w ࠷௿Ͱ΋ϕʔλ൛ͷࣗಈ഑෍͚ͩͰ΋࡞͓͖ͬͯ·͠ΐ͏
    w ΤϯδχΞҎ֎͕޷͖ͳ࣌ʹνΣοΫͰ͖ΔͷͰ։ൃʹूதͰ͖Δ
    w 'BTUMBOFͱ૊Έ߹Θͤͯ࢖͏ͱɺҠߦ͠΍ͯ͘͢(00%
    $*$%ʹ͍ͭͯ

    View full-size slide

  45. 46
    ݴޠ ґଘੑ؅ཧ λʔήοτߏ੒ ΞʔΩςΫνϟ
    ࣗಈԽ CI / CD πʔϧ
    Ϋϩε
    ϓϥοτϑΥʔϜ

    View full-size slide

  46. 47
    ݴޠ ґଘੑ؅ཧ λʔήοτߏ੒ ΞʔΩςΫνϟ
    ࣗಈԽ CI / CD πʔϧ
    Ϋϩε
    ϓϥοτϑΥʔϜ

    View full-size slide

  47. 48
    w -JOUFSίʔυελΠϧͷ౷Ұ΍ɺ໰୊͕ى͖΍͍͢ॻ͖ํͷνΣοΫπʔϧ
    w 4XJGU-JOU͕ϝδϟʔ 0CK$ʹ0$-JOU΋͋Δ͚Ͳ͋·Γར༻ࣄྫฉ͔ͳ͍

    w ϥΫϚͷྫ
    w *60 ΞΫηε
    Λߦ͏࣌͸෦෼తʹίϝϯτΛඞͣ࢒͢Α͏ʹ͢Δ
    w νʔϜ։ൃͰศར͚ͩͲɺ-JOUFSΛ࢖͏͜ͱ͕໨తʹͳΒͳ͍Α͏ʹ஫ҙ
    ͦͷଞͷ։ൃπʔϧ

    View full-size slide

  48. 49
    ݴޠ ґଘੑ؅ཧ λʔήοτߏ੒ ΞʔΩςΫνϟ
    ࣗಈԽ CI / CD πʔϧ
    Ϋϩε
    ϓϥοτϑΥʔϜ

    View full-size slide

  49. 50
    ݴޠ ґଘੑ؅ཧ λʔήοτߏ੒ ΞʔΩςΫνϟ
    ࣗಈԽ CI / CD πʔϧ
    Ϋϩε
    ϓϥοτϑΥʔϜ

    View full-size slide

  50. 51
    ΫϩεϓϥοτϑΥʔϜ

    View full-size slide

  51. 52
    w 'BDFCPPL͕೥ʹൃදͨ͠ΫϩεϓϥοτϑΥʔϜ։ൃπʔϧ
    w ʮ-FBSOPODF XSJUFBOZXIFSFʯ͕ൃද౰࣌ͷίϯηϓτ
    w +BWB4DSJQU PS"MU+4
    Λ࢖ͬͯ3FBDUͷύϥμΠϜͰJ04"OESPJEΞϓϦΛ։ൃ͢Δ
    w 'BDFCPPL "JSCOC 1JOUFSFTU 6CFSͳͲେاۀ͕࠾༻ͯ͠ظ଴஋͕ߴ·Δ
    w ࣄྫ͕૿͖͑ͯͨҰํͰ"JSCOC͕3/ར༻ఀࢭΛද໌
    3FBDU/BUJWF 3/

    View full-size slide

  52. 53
    w (PPHMF͕೥ʹൃදͨ͠πʔϧ
    w J04 "OESPJE 8FCΛλʔήοτͱͯ͠%BSUͰهड़
    w ߴύϑΥʔϚϯε
    w ࣮૷ύλʔϯ͕ܾ·͍ͬͯΔ
    w "OESPJE J04޲͚ͷ6*ϥΠϒϥϦ΋ඪ४Ͱఏڙ͞Ε͍ͯΔ
    w .BUFSJBM$PNQPOFOUT8JEHFUT $VQFSUJOP J04TUZMF
    8JEHFUT
    w LPOJGBS͞Μͷ%SPJE,BJHJΞϓϦ͕͋ͬͨΓNPOP͞Μ͕ϋϚͬͯͨΓ
    'MVUUFS

    View full-size slide

  53. 54
    w 3FBDUΛཧղͯ͠Δਓʹͱͬͯ͸Ұఆͷબ୒ࢶ
    w ։ൃϝϯόʔͷߏ੒΍εΩϧηοτ͕બ୒ͷج४
    w ωΠςΟϒ࣮૷Λ3/'MVUUFSͰॻ͖௚͢ϝϦοτ͸ࠓ͸ײ͡ͳ͍
    w ৽نҊ݅ͰΫϩεϓϥοτϑΥʔϜ։ൃ଎౓ॏࢹͳΒΞϦ
    w ҰൠతʹαʔϏε͕੒௕ෳࡶԽ͢Ε͹ϓϥοτϑΥʔϜʹد͍ͬͯ͘ ϋζ

    w ނʹɺωΠςΟϒͱͷڞଘ͕Ͱ͖Δ͔Λॏཁࢹ
    w ݱঢ়'MVUUFSΑΓ͸3/ͷํ͕ωΠςΟϒͱͷϒϦοδ΍ڞଘ͕͠΍ͦ͢͏ͳҹ৅
    ωΠςΟϒWT3FBDU/BUJWFWT'MVUUFS ओ؍

    View full-size slide

  54. 56
    w ΞϓϦ։ൃͷ̔ͭͷτϐοΫεʹ͍ͭͯ঺հɾ੔ཧ
    w ݴޠɺґଘੑ؅ཧɺλʔήοτߏ੒ɺΞʔΩςΫνϟɺࣗಈԽɺ$*$%ɺπʔϧɺΫϩε
    ϓϥοτϑΥʔϜ
    w ॠؒతͳ࿩୊ੑʹ߄ͯͳͯ͘΋େৎ෉
    w ͦΕ͕ղܾ͠Α͏ͱ͍ͯ͠Δ՝୊Λ͔ͬ͠Γͱཧղ͓ͯ͘͜͠ͱ͕େࣄ
    w ਓؾʹͳΔօ͕ಉ͡՝୊Λ͍࣋ͬͯΔࣗ෼΋͍͔ͭૺ۰͢Δ໰୊Ͱ͋Δ
    w ؾʹͳͬͨτϐοΫʹ͍ͭͯɺ͋ͱͰௐ΂ͯ΋Β͑Δͱ͍͍ͱࢥ͍·͢
    ·ͱΊ

    View full-size slide

  55. IUUQTXXXXBOUFEMZDPNQSPKFDUT
    ੵۃ࠾༻தʂ

    View full-size slide

  56. 58
    w 8IZNBOZEFWFMPQFSTTUJMMQSFGFS0CKFDUJWF$UP4XJGU
    w #VJMEJOH'BTUFSJO9DPEF
    w 0QUJNJ[JOH4XJGU#VJME5JNFT
    w 8IBU`T/FXJO4XJGU88%$
    w "#*%BTICPBSETXJGUPSH
    w "#*.BOJGFTUP4XJGUPSH
    ࢿྉ4XJGU

    View full-size slide

  57. 59
    w 4UPSZCPBSEͱͷ෇͖߹͍ํ
    w $PDPB$PSF$PNQFUFODJFT 3FUJSFE

    w *OUSPEVDUJPOUP.PEFM7JFX7JFX.PEFMQBUUFSOGPSCVJMEJOH81'BQQT
    w 'MVYc"QQMJDBUJPO"SDIJUFDUVSFGPS#VJMEJOH6TFS*OUFSGBDFT
    w 5IF$MFBO"SDIJUFDUVSF
    w ʲJ04%$ʳ.7$ˠ.71ˠ.77.ˠ'MVYͷ࣮૷ͷҧ͍Λൺֱͯ͠ΈΔ
    w -FUT5BML"SDIJUFDUVSF
    ࢿྉϓϩδΣΫτߏ੒ΞʔΩςΫνϟ

    View full-size slide

  58. 60
    w "JSCOC&OHJOFFSJOH%BUB4DJFODF
    w 3FBDU/BUJWFBU"JSCOC
    w 3FBDU/BUJWFBU"JSCOC5IF5FDIOPMPHZ
    w #VJMEJOHB$SPTT1MBUGPSN.PCJMF5FBN
    w 4VOTFUUJOH3FBDU/BUJWF
    w 8IBU`T/FYUGPS.PCJMFBU"JSCOC
    w 3FBDU/BUJWFͰJ04"OESPJEΞϓϦΛؙͬͱ։ൃʂ/BUVSF3FNP։ൃͰ෼͔ͬͨ௕ॴͱ୹ॴ
    w 1SPHBUFͷ$50ଜҪࢯ͕ޠΔʮ8FC։ൃऀ͕3FBDU/BUJWFͰΞϓϦΛ։ൃͨ͠࿩ʯ
    ࢿྉ3FBDU/BUJWF

    View full-size slide

  59. 61
    w 'MVUUFS
    w "OESPJEJ04ΞϓϦͷ։ൃʹΫϩεϓϥοτϑΥʔϜͷ'MVUUFSΛ࣮ઓ౤ೖͨ͠
    w 'MVUUFSͰ%SPJE,BJHJͷJ04ΞϓϦΛ࡞Γ·ͨ͠c,POJGBS`T8*1
    w J04ωΠςΟϒΞϓϦ։ൃऀ͔Βݟͨ'MVUUFS
    w 9BNBSJOͱ3FBDU/BUJWFͱ'MVUUFSͷҧ͍Λਖ਼͘͠ཧղ͠Α͏
    ࢿྉ'MVUUFS

    View full-size slide