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

VASILYでのアプリ開発における自動化の取り組み

 VASILYでのアプリ開発における自動化の取り組み

Ryosuke Horie

March 17, 2017
Tweet

More Decks by Ryosuke Horie

Other Decks in Research

Transcript

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

  2. ࣗݾ঺հ @Horie1024 ▸ ງߐ ྄հ / Ryosuke Horie ▸ લ৬:

    ϙʔλϧαΠτ Web / ΞϓϦ։ൃ ▸ 2೥લʹVASILYʹத్ೖࣾ ▸ ΞϓϦ։ൃ෦ AndroidνʔϜ ▸ Twitter GitHub Qiita: @Horie1024
  3. ձࣾ঺հ ▸ ձ໊ࣾ: גࣜձࣾVASILY / VASILY, inc. ▸ ॴࡏ஍: ౦ژ౎඼઒۠੢ޒ൓ా2ஸ໨23-5


    δχΞεϏε 6F ▸ ैۀһ: 35໊ ▸ ΤϯδχΞ: 16໊
  4. 2016 Google Play ϕετΠϊϕʔςΟϒΞϓϦ େ৆ड৆

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

  6. ▸ SNAP by IQON ▸ https://snap.ne.jp/ ▸ ਂ૚ֶशʹΑΔεφοϓࣸਅ͔ΒͷΞΠςϜݕग़ ▸ ྨࣅΞΠςϜͷදࣔɾߪೖ

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

    KotlinͰ։ൃʂ Wowma! ✕ IQON
  8. ໨࣍ ▸ ։ൃମ੍ͷ঺հ ▸ ࣗಈԽʹ͍ͭͯ ▸ ԿނࣗಈԽ͢Δͷ͔ ▸ ۩ମྫͷ঺հ

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

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

  11. ։ൃମ੍ ΞϓϦ։ൃ෦ ▸ iOSɺAndroidΞϓϦ։ൃ ▸ IQONΛؚΉΞϓϦ։ൃશൠΛ୲౰ ▸ iOS ▸ 3ਓ

    ▸ Android ▸ 2ਓ + Πϯλʔϯ1ਓ
  12. ։ൃମ੍ ΞϓϦ։ൃ෦ ▸ ։ൃ؀ڥ ▸ iOS ▸ Swift 3.0.2 ▸

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

    ֤OSͷσβΠϯΨΠυϥΠϯʹ४ڌ
  14. ։ൃମ੍ ։ൃ෦ (όοΫΤϯυ) ▸ ج൫ͱͳΔγεςϜͷݚڀͱ։ൃ ▸ API ▸ Ϋϩʔϥʔ ▸

    Πϯϑϥ ▸ σʔλαΠΤϯε
  15. ࣗಈԽ VASILYͷΞϓϦ։ൃΛࢧ͑Δ

  16. ࣗಈԽ ԿނࣗಈԽ͢Δͷ͔ʁ

  17. ࣗಈԽ ԿނࣗಈԽ͢Δͷ͔ʁ ▸ ָΛ͢ΔͨΊ

  18. ࣗಈԽ ԿނࣗಈԽ͢Δͷ͔ʁ ▸ ָΛ͢ΔͨΊ ▸ ࣗಈԽ͢Δ͜ͱࣗମָ͕͍ͨ͠Ί

  19. ࣗಈԽ ԿނࣗಈԽ͢Δͷ͔ʁ ▸ ָΛ͢ΔͨΊ ▸ ࣗಈԽ͢Δ͜ͱࣗମָ͕͍ͨ͠Ί ▸ ۀ຿ޮ཰ɺੜ࢈ੑΛ޲্͠੒ՌΛग़ͨ͢Ί

  20. ࣗಈԽ ԿނࣗಈԽ͢Δͷ͔ʁ ▸ ָΛ͢ΔͨΊ ▸ ࣗಈԽ͢Δ͜ͱࣗମָ͕͍ͨ͠Ί ▸ ۀ຿ޮ཰ɺੜ࢈ੑΛ޲্͠੒ՌΛग़ͨ͢Ί

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

  22. ࣗಈԽ ੒Ռʁ ▸ VASILYͰΞϓϦ։ൃʹٻΊΒΕΔ੒Ռ ▸ ඼࣭ ▸ ௿Ϋϥογϡ཰ ▸ όά͕গͳ͍

    ≒ ѱ͍ϨϏϡʔɾ໰͍߹Θ͕ͤগͳ͍ ▸ ಈ࡞͕ܰշɺ࢖͍΍͍͢UI etc… ▸ εϐʔυ ▸ ։ൃ଎౓
  23. ࣗಈԽ ԿނࣗಈԽ͢Δͷ͔ʁ ▸ ٻΊΒΕΔ඼࣭ɾεϐʔυΛ࣮ݱ͢ΔͨΊ

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

    ▸ ։ൃҎ֎ͷۀ຿վળ
  25. CI/CD؀ڥͷߏங

  26. ࣗಈԽ CI/CD؀ڥͷߏங iOS Android CIαʔό Travis CI Wercker ੩తղੳ -

    ◦ Ϣχοτςετ - ◦ ࣗಈσϓϩΠ - ◦ ▸ iOS͸Travis CIΛར༻ ▸ ϏϧυͷΈ࣮ߦ ▸ Swift LintΛϩʔΧϧͰ࣮ߦ ▸ Android͸WerckerΛར༻ ▸ Android LintɺϢχοτςετΛ࣮ߦ
  27. ࣗಈԽ AndroidͷCI/CD؀ڥ ▸ CIαʔό ▸ ౰ॳCircle CIΛར༻ ▸ OOMͷଟൃ ▸

    Circle CI͔ΒWerckerʹҠߦ ▸ Ϗϧυ͕࣌ؒ10෼͔Β3෼ʹ୹ॖ
  28. ࣗಈԽ AndroidͷCI/CD؀ڥ ▸ ࣾ಺഑෍ʹfabric BetaΛར༻ ▸ QAɾϦϦʔεલ֬ೝ࣌ʹࣗಈ഑෍

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

    ▸ ίϯιʔϧ͔ΒखಈͰมߋ ▸ ϦϦʔε׬ྃ
  30. ࣗಈԽ ΞʔΩςΫνϟͱςετ ▸ ΞϓϦͷΞʔΩςΫνϟ ▸ MVVM ΋͘͠͸ MVP Architecting Android...The

    clean way?ΑΓ
  31. ࣗಈԽ ΞʔΩςΫνϟͱςετ ▸ ΞϓϦͷΞʔΩςΫνϟ ▸ MVVM ΋͘͠͸ MVP ▸ υϝΠϯ૚ʹ͍ͭͯςετΛॻ͘

    ▸ ΧόϨοδ͸͋·Γؾʹ͠ͳ͍ ▸ ϓϨθϯςʔγϣϯ૚ɾσʔλ૚ ▸ ςετ͸ॻ͍͍ͯͳ͍ Architecting Android...The clean way?ΑΓ
  32. ࣗಈԽ ϓϨθϯςʔγϣϯ૚ͷςετΛ͠ͳ͍ʁ ▸ ࣗಈԽ͞Εͨςετ͸ίετ͕ߴ͘ग़དྷ͍ͯͳ͍ ▸ ϨΠΞ΢τ͕ෳࡶͰසൟʹมΘΔࣄ͕ଟ͍ ▸ ςετίʔυΛϝϯςφϯεग़དྷͳ͍ ▸ CIαʔόͰಈ͔͢ʹ͸ΤϛϡϨʔλ͕ॏ͍

    ▸ AWS Device FarmɺFirebase Test LabΛݕূ͕ͨ͠ະ࢖༻ (Androd) ▸ GitHub + CircleCIͰAWS Device FarmͰͷςετΛࣗಈԽ ▸ Firebase Test LabΛ࢖ͬͨAndroidΞϓϦͷςετ ▸ खಈͰͷςετɺQAΛް࣮͘ࢪ
  33. ։ൃϑϩʔͷվળ

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

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

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

    ▸ ΤϯδχΞ͸ZeplinͰ࢓༷֬ೝ
  37. ࣗಈԽ APIͷઃܭͱ࣮૷ ▸ API͕࣮૷͞ΕΔ·ͰΞϓϦͷ࣮૷͕ਐ·ͳ͍ ▸ apiaryͰAPIϨεϙϯεΛઃܭ ▸ ఆٛͨ͠ϨεϙϯεΛฦ͢ϞοΫαʔό͕ࣗಈੜ੒ ▸ apiaryͷϞοΫαʔόΛར༻͠ΞϓϦ։ൃ

    ▸ APIͷ࣮૷Λ଴ͨͣʹ։ൃΛਐΊΒΕΔ
  38. ࣗಈԽ QA ▸ ϦϦʔεલʹ࣮ࢪ QAγʔτʹهೖ ▸ ࢦఠ఺ʹରԠ͠ͳ͚Ε͹ϦϦʔεෆՄ ▸ QAͷ४උ͕͔͔࣌ؒΔ ▸

    ४උΛࣗಈԽ ▸ ϦϦʔεϊʔτɺQAγʔτͷ࡞੒ ▸ ΞϓϦࣾ಺഑෍ (AndroidͷΈ) ▸ http://tech.vasily.jp/entry/android_qa_automation
  39. ։ൃҎ֎ͷۀ຿վળ

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

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

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

  43. ·ͱΊ

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

  45. We’re Hiring!

  46. ͋Γ͕ͱ͏͍͟͝·ͨ͠