Slide 1

Slide 1 text

VASILYͰͷΞϓϦ։ൃʹ͓͚Δ ࣗಈԽͷऔΓ૊Έ Minami Aoyama Night #2 Ryosuke Horie VASILY, inc.

Slide 2

Slide 2 text

ࣗݾ঺հ @Horie1024 ▸ ງߐ ྄հ / Ryosuke Horie ▸ લ৬: ϙʔλϧαΠτ Web / ΞϓϦ։ൃ ▸ 2೥લʹVASILYʹத్ೖࣾ ▸ ΞϓϦ։ൃ෦ AndroidνʔϜ ▸ Twitter GitHub Qiita: @Horie1024

Slide 3

Slide 3 text

ձࣾ঺հ ▸ ձ໊ࣾ: גࣜձࣾVASILY / VASILY, inc. ▸ ॴࡏ஍: ౦ژ౎඼઒۠੢ޒ൓ా2ஸ໨23-5
 δχΞεϏε 6F ▸ ैۀһ: 35໊ ▸ ΤϯδχΞ: 16໊

Slide 4

Slide 4 text

2016 Google Play ϕετΠϊϕʔςΟϒΞϓϦ େ৆ड৆

Slide 5

Slide 5 text

▸ ݟ͔ͭΔɺങ͑ΔɺͨΊΒΕΔʮIQON(ΞΠίϯ)ʯ ▸ ձһ਺250ສ ▸ ΞΠςϜ૯਺1200ສ఺Ҏ্ ▸ 300Ҏ্ͷECαΠτͷ঎඼σʔλΛܝࡌ Θͨ͠ͷʮ޷͖ʯ͕͜͜ʹ͋Δ

Slide 6

Slide 6 text

▸ SNAP by IQON ▸ https://snap.ne.jp/ ▸ ਂ૚ֶशʹΑΔεφοϓࣸਅ͔ΒͷΞΠςϜݕग़ ▸ ྨࣅΞΠςϜͷදࣔɾߪೖ ͕͋͜Είʔσʹ΋ͬͱۙͮ͘

Slide 7

Slide 7 text

▸ KDDIגࣜձࣾͱఏܞ ▸ ӡӦͷECϞʔϧʮWowma!ʯʹը૾ղੳٕज़Λఏڙ ▸ Wowma!αΠτ಺ͰWowma!ίʔσSNAPΛ։࢝ ▸ ΞϓϦ։ൃͰ΋ڠྗ ▸ Ұॹʹ࡞Γ͍ͨਓืूʂSwift, KotlinͰ։ൃʂ Wowma! ✕ IQON

Slide 8

Slide 8 text

໨࣍ ▸ ։ൃମ੍ͷ঺հ ▸ ࣗಈԽʹ͍ͭͯ ▸ ԿނࣗಈԽ͢Δͷ͔ ▸ ۩ମྫͷ঺հ

Slide 9

Slide 9 text

։ൃମ੍ VASILYͷΞϓϦ։ൃΛࢧ͑Δ

Slide 10

Slide 10 text

։ൃମ੍ ▸ ༷ʑͳνʔϜͷڠྗ͕ඞཁ ▸ ΞϓϦ։ൃ෦ ▸ σβΠϯ෦ ▸ ։ൃ෦

Slide 11

Slide 11 text

։ൃମ੍ ΞϓϦ։ൃ෦ ▸ iOSɺAndroidΞϓϦ։ൃ ▸ IQONΛؚΉΞϓϦ։ൃશൠΛ୲౰ ▸ iOS ▸ 3ਓ ▸ Android ▸ 2ਓ + Πϯλʔϯ1ਓ

Slide 12

Slide 12 text

։ൃମ੍ ΞϓϦ։ൃ෦ ▸ ։ൃ؀ڥ ▸ iOS ▸ Swift 3.0.2 ▸ Android ▸ Java, Kotlin, ReactNative

Slide 13

Slide 13 text

։ൃମ੍ σβΠϯ෦ ▸ WebɺiOSɺAndroid
 ͦͷଞσβΠϯ͕ؔ܎͢Δ෦෼͢΂ͯ ▸ iOSɺAndroidɺOSผͰઐ೚ͷσβΠφʔ ▸ IQONಠࣗͷσβΠϯΨΠυϥΠϯΛ࡞੒ ▸ ֤OSͷσβΠϯΨΠυϥΠϯʹ४ڌ

Slide 14

Slide 14 text

։ൃମ੍ ։ൃ෦ (όοΫΤϯυ) ▸ ج൫ͱͳΔγεςϜͷݚڀͱ։ൃ ▸ API ▸ Ϋϩʔϥʔ ▸ Πϯϑϥ ▸ σʔλαΠΤϯε

Slide 15

Slide 15 text

ࣗಈԽ VASILYͷΞϓϦ։ൃΛࢧ͑Δ

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

ࣗಈԽ ੒Ռʁ ▸ VASILYͰΞϓϦ։ൃʹٻΊΒΕΔ੒Ռ ▸ ඼࣭ ▸ εϐʔυ

Slide 22

Slide 22 text

ࣗಈԽ ੒Ռʁ ▸ VASILYͰΞϓϦ։ൃʹٻΊΒΕΔ੒Ռ ▸ ඼࣭ ▸ ௿Ϋϥογϡ཰ ▸ όά͕গͳ͍ ≒ ѱ͍ϨϏϡʔɾ໰͍߹Θ͕ͤগͳ͍ ▸ ಈ࡞͕ܰշɺ࢖͍΍͍͢UI etc… ▸ εϐʔυ ▸ ։ൃ଎౓

Slide 23

Slide 23 text

ࣗಈԽ ԿނࣗಈԽ͢Δͷ͔ʁ ▸ ٻΊΒΕΔ඼࣭ɾεϐʔυΛ࣮ݱ͢ΔͨΊ

Slide 24

Slide 24 text

ࣗಈԽ ԿނࣗಈԽ͢Δͷ͔ʁ ▸ ٻΊΒΕΔ඼࣭ɾεϐʔυΛ࣮ݱ͢ΔͨΊ ▸ ۩ମతʹߦ͍ͬͯΔͷ͸ҎԼͷ3఺ ▸ CI/CD؀ڥͷߏங ▸ ։ൃϑϩʔͷվળ ▸ ։ൃҎ֎ͷۀ຿վળ

Slide 25

Slide 25 text

CI/CD؀ڥͷߏங

Slide 26

Slide 26 text

ࣗಈԽ CI/CD؀ڥͷߏங iOS Android CIαʔό Travis CI Wercker ੩తղੳ - ○ Ϣχοτςετ - ○ ࣗಈσϓϩΠ - ○ ▸ iOS͸Travis CIΛར༻ ▸ ϏϧυͷΈ࣮ߦ ▸ Swift LintΛϩʔΧϧͰ࣮ߦ ▸ Android͸WerckerΛར༻ ▸ Android LintɺϢχοτςετΛ࣮ߦ

Slide 27

Slide 27 text

ࣗಈԽ AndroidͷCI/CD؀ڥ ▸ CIαʔό ▸ ౰ॳCircle CIΛར༻ ▸ OOMͷଟൃ ▸ Circle CI͔ΒWerckerʹҠߦ ▸ Ϗϧυ͕࣌ؒ10෼͔Β3෼ʹ୹ॖ

Slide 28

Slide 28 text

ࣗಈԽ AndroidͷCI/CD؀ڥ ▸ ࣾ಺഑෍ʹfabric BetaΛར༻ ▸ QAɾϦϦʔεલ֬ೝ࣌ʹࣗಈ഑෍

Slide 29

Slide 29 text

ࣗಈԽ AndroidͷCI/CD؀ڥ ▸ ࣗಈσϓϩΠ ▸ master΁ͷϚʔδΛτϦΨʔ ▸ ΞϧϑΝঢ়ଶͰAPKΛΞοϓϩʔυ ▸ ಈ࡞֬ೝޙɺ੡඼൛ʹมߋ ▸ ίϯιʔϧ͔ΒखಈͰมߋ ▸ ϦϦʔε׬ྃ

Slide 30

Slide 30 text

ࣗಈԽ ΞʔΩςΫνϟͱςετ ▸ ΞϓϦͷΞʔΩςΫνϟ ▸ MVVM ΋͘͠͸ MVP Architecting Android...The clean way?ΑΓ

Slide 31

Slide 31 text

ࣗಈԽ ΞʔΩςΫνϟͱςετ ▸ ΞϓϦͷΞʔΩςΫνϟ ▸ MVVM ΋͘͠͸ MVP ▸ υϝΠϯ૚ʹ͍ͭͯςετΛॻ͘ ▸ ΧόϨοδ͸͋·Γؾʹ͠ͳ͍ ▸ ϓϨθϯςʔγϣϯ૚ɾσʔλ૚ ▸ ςετ͸ॻ͍͍ͯͳ͍ Architecting Android...The clean way?ΑΓ

Slide 32

Slide 32 text

ࣗಈԽ ϓϨθϯςʔγϣϯ૚ͷςετΛ͠ͳ͍ʁ ▸ ࣗಈԽ͞Εͨςετ͸ίετ͕ߴ͘ग़དྷ͍ͯͳ͍ ▸ ϨΠΞ΢τ͕ෳࡶͰසൟʹมΘΔࣄ͕ଟ͍ ▸ ςετίʔυΛϝϯςφϯεग़དྷͳ͍ ▸ CIαʔόͰಈ͔͢ʹ͸ΤϛϡϨʔλ͕ॏ͍ ▸ AWS Device FarmɺFirebase Test LabΛݕূ͕ͨ͠ະ࢖༻ (Androd) ▸ GitHub + CircleCIͰAWS Device FarmͰͷςετΛࣗಈԽ ▸ Firebase Test LabΛ࢖ͬͨAndroidΞϓϦͷςετ ▸ खಈͰͷςετɺQAΛް࣮͘ࢪ

Slide 33

Slide 33 text

։ൃϑϩʔͷվળ

Slide 34

Slide 34 text

ࣗಈԽ ։ൃϑϩʔͷվળ ▸ iOSɺAndroidڞʹಉ͡ϑϩʔ ▸ ։ൃϑϩʔΛ؍࡯͠վળͰ͖ͦ͏ͳՕॴΛൃݟ ▸ ίʔυ΋͘͠͸πʔϧͰग़དྷΔͱ͜Ζ͔ΒࣗಈԽ ▸ ੜ࢈ੑͱޮ཰Λྑͯ͘͠඼࣭ͱεϐʔυΛ্͛Δ ࢓༷ UIઃܭ APIઃܭ ࣮૷ ΞϓϦ࣮૷ QA ϦϦʔε

Slide 35

Slide 35 text

ࣗಈԽ UIͷઃܭͱ࣮૷ ▸ ΤϯδχΞɺσβΠφʔͷ΍ΓऔΓ͕ൃੜ ▸ ग़དྷΔ͚ͩݮΒ͍ͨ͠ ▸ ΍ΓऔΓ͕ଟ͘ൃੜ͢Δͱޮ཰͕ѱ͍ https://www.websequencediagrams.com

Slide 36

Slide 36 text

ࣗಈԽ UIͷઃܭͱ࣮૷ ▸ σβΠϯ࢓༷ͷॻ͖ग़͠ͱ఻ୡ ▸ πʔϧΛಋೖͯࣗ͠ಈԽ ▸ SketchɺZeplinΛ׆༻ ▸ 1ClickͰZeplin΁ͷΤΫεϙʔτ ▸ ΤϯδχΞ͸ZeplinͰ࢓༷֬ೝ

Slide 37

Slide 37 text

ࣗಈԽ APIͷઃܭͱ࣮૷ ▸ API͕࣮૷͞ΕΔ·ͰΞϓϦͷ࣮૷͕ਐ·ͳ͍ ▸ apiaryͰAPIϨεϙϯεΛઃܭ ▸ ఆٛͨ͠ϨεϙϯεΛฦ͢ϞοΫαʔό͕ࣗಈੜ੒ ▸ apiaryͷϞοΫαʔόΛར༻͠ΞϓϦ։ൃ ▸ APIͷ࣮૷Λ଴ͨͣʹ։ൃΛਐΊΒΕΔ

Slide 38

Slide 38 text

ࣗಈԽ QA ▸ ϦϦʔεલʹ࣮ࢪ QAγʔτʹهೖ ▸ ࢦఠ఺ʹରԠ͠ͳ͚Ε͹ϦϦʔεෆՄ ▸ QAͷ४උ͕͔͔࣌ؒΔ ▸ ४උΛࣗಈԽ ▸ ϦϦʔεϊʔτɺQAγʔτͷ࡞੒ ▸ ΞϓϦࣾ಺഑෍ (AndroidͷΈ) ▸ http://tech.vasily.jp/entry/android_qa_automation

Slide 39

Slide 39 text

։ൃҎ֎ͷۀ຿վળ

Slide 40

Slide 40 text

ࣗಈԽ ։ൃҎ֎ͷۀ຿վળ ▸ ࣾ಺ͰखಈͰߦ͍ͬͯΔ࡞ۀΛࣗಈԽ ▸ ࣗ෼ɺॴଐνʔϜҎ֎ͷਓͷੜ࢈ੑɺۀ຿ޮ཰ͷ޲্Λॿ͚Δ ▸ ࣾ಺શମͰ੒ՌΛग़ͤΔΑ͏ʹ͢Δ

Slide 41

Slide 41 text

ࣗಈԽ ։ൃҎ֎ͷۀ຿վળ ▸ ྫ: ఆྫϛʔςΟϯάࢿྉͷࣗಈੜ੒ ▸ Slack͔ΒBotܦ༝Ͱ࡞੒ ▸ Qiita APIΛ׆༻ ▸ खಈͰ࡞੒͢Δ࣌ؒΛ࡟ݮ

Slide 42

Slide 42 text

ࣗಈԽ ։ൃҎ֎ͷۀ຿վળ ▸ ࣾ಺νϟοτBotษڧձΛ։࠵ ▸ BotΛ࡞ΕΔਓΛ૿΍͢ ▸ ֤͕ࣗ՝୊Λݟ͚ͭվળͰ͖ΔΑ͏ʹ͢Δ໨త

Slide 43

Slide 43 text

·ͱΊ

Slide 44

Slide 44 text

·ͱΊ ▸ ࣗಈԽ͸੒ՌΛग़ͨ͢ΊʹऔΓ૊ΜͰ͍Δ ▸ ࣗಈԽ͢Δ͜ͱͰۀ຿ޮ཰ɺੜ࢈ੑΛ޲্ͤ͞੒ՌΛग़͠΍͘͢͢Δ ▸ ։ൃҎ֎ͷ෦෼ͰࣗಈԽΛਐΊΔ͜ͱͰࣾ಺શମͰ੒ՌΛग़͠΍͘͢ͳΔ͸ͣ

Slide 45

Slide 45 text

We’re Hiring!

Slide 46

Slide 46 text

͋Γ͕ͱ͏͍͟͝·ͨ͠