Slide 1

Slide 1 text

iOSͷࣗಈԽͱ࢓૊ΈԽ ~ίʔυͱઃܭʹूத͢Δ~ Mercari Drink Meetup for Mobile App Engineer in Fukuoka

Slide 2

Slide 2 text

ࣗݾ঺հ • GitHub: motokiee • twitter: @motokiee • ι΢κ΢ → ϝϧΧϦ • iOSΤϯδχΞ • Ϗʔϧ͕޷͖ • iOSDC Japan 2016 / 2017 / 2018 ίΞελοϑ

Slide 3

Slide 3 text

ࣗݾ঺հ • GitHub: motokiee • twitter: @motokiee • ι΢κ΢ → ϝϧΧϦ • iOSΤϯδχΞ • Ϗʔϧ͕޷͖ • iOSDC Japan 2016 / 2017 / 2018 ίΞελοϑ

Slide 4

Slide 4 text

෭ୂ௕΍ͬͨΓɺΦʔϓχϯάϜʔϏʔ࡞ͬͨΓɺެࣜΞϓϦ࡞ͬͨΓɺϊϕϧςΟ࡞ͬͨΓɻ
 ࠷ߴͷΧϯϑΝϨϯεΛ࡞ΔͨΊʹελοϑͱҰॹʹؤு͍ͬͯ·͢ʂ

Slide 5

Slide 5 text

iOSDC Japan 2018 ࢝ಈ͠·ͨ͠! ΋ͪΖΜϝϧΧϦ΋εϙϯαʔ΍Γ·͢!! ୈҰճ͔Β3೥࿈ଓ!!

Slide 6

Slide 6 text

ࣗݾ঺հ • GitHub: motokiee • twitter: @motokiee • ι΢κ΢ → ϝϧΧϦ • iOSΤϯδχΞ • Ϗʔϧ͕޷͖ • iOSDC Japan 2016 / 2017 / 2018 ίΞελοϑ

Slide 7

Slide 7 text

͕޷͖ ࿡ຊ໦ͷBrewdogͱ͍͏ΫϥϑτϏΞ όʔʹि2͘Β͍Ͱߦͬͯ·͢ʢiOSDC ͰBrewdogʹग़ձ͍ࠍΕͨʣ 
 ౦ژʹདྷͨͱ͖͸ͥͻʂ

Slide 8

Slide 8 text

͖ΐ͏ͷ࿩

Slide 9

Slide 9 text

ίʔυΛॻ͘͜ͱʹूத͢Δ

Slide 10

Slide 10 text

Ͳ͏΍ͬͯʁ

Slide 11

Slide 11 text

ίʔυΛॻ͘͜ͱʹूத͢Δํ๏ • ϛʔςΟϯάΛݮΒ͢ • ܦඅਃ੥ͱ͔׳Εͯͳͯ࣌ؒ͘ͷ͔͔Δ࡞ۀΛݮΒ͢ • ੩͔ͳ؀ڥͰूத͢Δ • υϦϯΫങ͍ʹߦͬͨϦ͢ΔҠಈ࣌ؒΛݮΒ͢

Slide 12

Slide 12 text

ϝϧΧϦͩͱ ͍͍ͩͨ؀ڥ੔͍ͬͯΔ

Slide 13

Slide 13 text

ίʔυΛॻ͘͜ͱʹूத͢Δํ๏ • ϛʔςΟϯάΛݮΒ͢
 → ϛʔςΟϯά͸ܾΊΔ৔ɻ͍ͨͣΒʹਓΛݺ͹ͳ͍ • ܦඅਃ੥ͱ͔׳Εͯͳͯ࣌ؒ͘ͷ͔͔Δ࡞ۀΛݮΒ͢
 → ࣾ৯ΞϓϦಋೖͳͲ࠷খݶʹͳΔΑ͏഑ྀ͞Ε͍ͯΔ • ੩͔ͳ؀ڥͰूத͢Δ
 → ूதBOXϧʔϜ͕͋Δ • υϦϯΫങ͍ʹߦͬͨϦ͢ΔҠಈ࣌ؒΛݮΒ͢
 → υϦϯΫແྉ

Slide 14

Slide 14 text

Ͱ͸ΤϯδχΞ͸ԿΛ͢Δ͔ʁ

Slide 15

Slide 15 text

Automation, Karakuri

Slide 16

Slide 16 text

͢ͳΘͪ

Slide 17

Slide 17 text

ࣗಈԽͱ࢓૊ΈԽ

Slide 18

Slide 18 text

ίʔυΛॻ͘Ҏ֎ͷ͜ͱΛͳΔ΂ࣗ͘ಈԽ • Ϗϧυͷ഑෍ • ϦϦʔε࡞ۀ • αϒϛοτ • ϨϏϡʔ

Slide 19

Slide 19 text

※ ϝϧΧϦ Χ΢ϧνʔϜͰͷऔΓ૊Έʹ͍ͭͯઆ໌͍ͯ͠ ·͕͢ɺϝϧΧϦ΋΄΅ಉ͜͡ͱΛ͍ͯ͠·͢

Slide 20

Slide 20 text

ίʔσΟϯάͷޮ཰ͱ࢓૊ΈԽ

Slide 21

Slide 21 text

swiftlint autocorrect

Slide 22

Slide 22 text

• Τϥʔ΍ϫʔχϯάΛࣗಈͰमਖ਼͢ΔίϚϯυ • ίʔσΟϯάن໿͸ࡉ͔ܾ͘ΊͣʹσϑΥϧτઃఆ ○ ͔ͳΓࡉ͔ܾ͘Ίͨ͜ͱ΋͕͋ͬͨσϑΥϧτͰ େ͖ͳ໰୊͕ى͖ͨ͜ͱ͸ͳ͍

Slide 23

Slide 23 text

Danger

Slide 24

Slide 24 text

• ίʔυϨϏϡʔͷࣗಈԽπʔϧ • DangerfileͰઃఆΛهड़ • ϦϦʔεϊʔτͷߋ৽(ޙड़)๨Ε΍ɺιʔε ίʔυͷมߋͱυΩϡϝϯτԽ͕࿈ಈ͢Δ΋ ͷɺTODO:΍FIXME:͕࢒͍ͬͯͳ͍͔؂ࢹ

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

ϑΥʔϚοτɺίʔσΟϯά͔Β೿ੜ͢Δ࡞ۀͳͲ ๨Ε͕ͪͳ͜ͱΛޮ཰Խ → ઃܭͱίʔυͷ඼࣭ʹूத

Slide 27

Slide 27 text

Ϗϧυͷ഑෍

Slide 28

Slide 28 text

αϒϛοτલ΍QAظؒͰ ΍Δ͜ͱ͸ҙ֎ͱଟ͍

Slide 29

Slide 29 text

σβΠφʔͷUIνΣοΫ ʮ͋ͷػೳͷσβΠϯͬͯ΋͏ݟΒΕΔʁʯ

Slide 30

Slide 30 text

όοΫΤϯυνʔϜͱͷ࿈ܞ
 ʮ͋ͷAPIͬͯ΋͏ݕূ։࢝Ͱ͖·͢ʁ 
 xx೔ϦϦʔεͳΜͰ͚͢Ͳʯ

Slide 31

Slide 31 text

QAνʔϜ΁ͷ࿈བྷ

Slide 32

Slide 32 text

CIͷઃఆ(Bitrise) • Unit Test͸push͝ͱʹ
 → յΕͨ৔߹ʹ͙͢ݕ஌ • masterϒϥϯνʹpush/mergeͰFabric΁Ξοϓϩʔυ
 → ଞͷ։ൃϝϯόʔ͕͙͢ʹ৽͍͠ػೳΛࢼ͢͜ͱ͕Ͱ͖Δ • release/* ΁ͷpush/mergeͰFabric΁ͷΞοϓϩʔυˍiTunes Connect΁ ͷΞοϓϩʔυ
 → ϦϦʔεީิ͸QAऴྃΛ଴ͨͣʹiTCʹΞοϓϩʔυ

Slide 33

Slide 33 text

ϦϦʔεީิ͕Ξοϓϩʔυ͞Εͨ͜ͱΛSlackͰ௨஌ɺQAνʔϜ͸ ϏϧυΛ͙͢ʹ৮ΕΔˍ։ൃϝϯόʔ͸αϒϛοτ͕͍͍ۙͮͯΔ͜ ͱ͕෼͔Δ

Slide 34

Slide 34 text

“ਖ΋ੵ΋Ε͹ࢁͱͳΔ” • खಈͰ఻͑ͳ͍ͱ͍͚ͳ͍ͷͰϦϦʔε༻Ϗϧυ͕ऴΘ͔ͬͨͲ͏͔Λ ؾʹ͍ͯ͠ͳ͍ͱ͍͚ͳ͍ = ूதͰ͖ͳ͍ • ผͷ͜ͱʹूதͯ͠๨Ε͍ͯͨΓ͢ΔͱQAνʔϜ͸࿈བྷΛ଴ͭ͜ͱʹͳ Δ • ΤϯδχΞɺQAΤϯδχΞͱ΋ʹଟ͘ͷ࣌ؒΛແବʹ͍ͯͨ͠ʢ͸ͣʣ

Slide 35

Slide 35 text

ϦϦʔεؔ࿈࡞ۀ

Slide 36

Slide 36 text

iTunes Connectؔ࿈ͷ࡞ۀ • ϦϦʔεϊʔτͳͲͷϝλσʔλߋ৽ • αϒϛοτ • ϦδΣΫτରԠ • ϦϦʔε࡞ۀ

Slide 37

Slide 37 text

iTunes Connectͷϝλσʔλ؅ཧ

Slide 38

Slide 38 text

Pull RequestϕʔεͰࠩ෼؅ཧ

Slide 39

Slide 39 text

iTunesConnectͷ εςʔλε؂ࢹ

Slide 40

Slide 40 text

iTunesConnectͷεςʔλε؂ࢹ • ੵΈॏͳΔͱෛ୲ʹͳΔ • αϒϛοτޙͷ৹ࠪঢ়گ͸ΤϯδχΞҎ֎΋ؾʹͳΔ • αϒϛοτޙ͸ΤϯδχΞ͕εςʔλεʹ͍ͭͯ࿈བྷ͢Δ • ʮreject͞Ε·ͨ͠ʯʮ৹ࠪ௨ͬͨͷͰϦϦʔε͠·͢ʯͳͲ • ؾʹ͸ͳΔΜ͚ͩͲɺiOSΤϯδχΞҎ֎͸ͦ͜·Ͱதࢭͯ͠ͳ͍

Slide 41

Slide 41 text

͜Μͳײ͡ͷը૾ΛSlackʹషͬͯप஌͍ͯͨ͠

Slide 42

Slide 42 text

ΊͪΌͪ͘Ό໘౗

Slide 43

Slide 43 text

Google Apps ScriptͰiTunes ConnectͷϝʔϧνΣοΫ & Slack౤ߘ

Slide 44

Slide 44 text

ਓؒͷ΍Δ͜ͱͰ͸ͳ͔ͬͨ ※ϝϧνϟϦνʔϜ΋ಉ༷ͷεΫϦϓτ࢖ͬͯ·͢

Slide 45

Slide 45 text

GASͰ࢖͑ΔscriptΛgistͰެ։ͯ͠·͢ https://gist.github.com/motokiee/39a875e97349fe9325314bdae9d3af2a

Slide 46

Slide 46 text

࠷ऴతʹiTunes ConnectΛ։͘ͷ͸

Slide 47

Slide 47 text

1.৹ࠪʹఏग़͢Δͱ͖ a.ఏग़͢ΔϏϧυΛઃఆ͢Δͱ͖ 2.ϦϦʔε͢Δͱ͖ ͚ͩʂ

Slide 48

Slide 48 text

େࣄͳϘλϯΛϙνΔ͜ͱ͚ͩ

Slide 49

Slide 49 text

·ͱΊ • ೋ౓΍Δ͜ͱ͸ࣗಈԽɺ࢓૊ΈԽ͢Δ • ίʔυͷ඼࣭Λ্͛ΔͨΊʹɺίʔυ΍ઃܭʹूத͢ΔͨΊʹ༨ ܭͳ͜ͱΛߟ͑ͳ͍Α͏ʹࣗಈԽɾ࢓૊ΈԽ͢Δ