Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
VASILYでのアプリ開発における自動化の取り組み
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Ryosuke Horie
March 17, 2017
Research
810
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
VASILYでのアプリ開発における自動化の取り組み
Ryosuke Horie
March 17, 2017
More Decks by Ryosuke Horie
See All by Ryosuke Horie
Androidifyから学ぶFirebase AI Logic SDKの使い方
horie1024
0
81
GitHub Copilot Use Cases at ZOZO
horie1024
1
3.4k
Miro × ZOZO ZOZOのMiro活用事例紹介
horie1024
0
3.1k
GitHub Copilotは開発者の生産性をどれだけ上げるのか?ZOZOでの全社導入とその効果 / How Much Does GitHub Copilot Improve Developer Productivity? The Company-wide Implementation and Its Effects at ZOZO
horie1024
36
30k
ZOZOTOWNにおける開発生産性向上に関する取り組み / Initiatives to Improve Development Productivity at ZOZOTOWN
horie1024
8
6.8k
How does the Relay connect Android app development and Design?
horie1024
2
2.3k
既存画面の Jetpack Composeでの書き換え: FAANSでの事例紹介 / Case study of rewriting existing screens with Jetpack Compose
horie1024
0
2.1k
スキルマップを作った話 / Create a skills map
horie1024
3
4.8k
Miroを使った開発効率向上のための取り組み / Using Miro Efforts to Improve Development Efficiency
horie1024
0
2.7k
Other Decks in Research
See All in Research
大規模言語モデルは誰を覚えているか / Who Do Large Language Models Memorize?
upura
0
120
【Zozo Research 技術共有会】三次元領域の現在と展望
mickey_0226
3
550
Visual SLAM未来予測 / Future Prediction in Visual SLAM
koide3
1
870
LLM Compute Infrastructure Overview
karakurist
2
1.6k
SLAMはどこまで解決されたのか?
tomonom
0
1.1k
GLIM とMegaParticles:正規分布近似の限界とタイトカップリング&パーティクルフィルタの進展 / GLIM and MegaParticles : Progress of the distribution representation in SLAM
koide3
0
690
HackSick vol.7 LT資料【LLMアーキテクチャ入門・事前学習時の躓き所解説】 スパースなAttention・状態空間モデル
rikkabotan7
0
150
超効率化への挑戦:1bit LLMの現状と展望
yumaichikawa
0
140
Harness Engineering and Al Agent
kzinmr
3
1.9k
ふとした出会いで生まれたSkillが、 社内利用1位になるまで
mikimhk
13
14k
議論 学術ムーブメントを成功させるために何が必要なのだろうか
rmaruy
0
110
EIRによる不正端末のブロッキング 5G時代におけるデバイス識別と不正対策の進化
stellarcraft
0
110
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
The Invisible Side of Design
smashingmag
301
52k
Designing for humans not robots
tammielis
254
26k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
How to Talk to Developers About Accessibility
jct
2
510
Bash Introduction
62gerente
615
220k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
410
VelocityConf: Rendering Performance Case Studies
addyosmani
332
25k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
570
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Transcript
VASILYͰͷΞϓϦ։ൃʹ͓͚Δ ࣗಈԽͷऔΓΈ Minami Aoyama Night #2 Ryosuke Horie VASILY, inc.
ࣗݾհ @Horie1024 ▸ ງߐ ྄հ / Ryosuke Horie ▸ લ৬:
ϙʔλϧαΠτ Web / ΞϓϦ։ൃ ▸ 2લʹVASILYʹத్ೖࣾ ▸ ΞϓϦ։ൃ෦ AndroidνʔϜ ▸ Twitter GitHub Qiita: @Horie1024
ձࣾհ ▸ ձ໊ࣾ: גࣜձࣾVASILY / VASILY, inc. ▸ ॴࡏ: ౦ژ۠ޒా2ஸ23-5
δχΞεϏε 6F ▸ ैۀһ: 35໊ ▸ ΤϯδχΞ: 16໊
2016 Google Play ϕετΠϊϕʔςΟϒΞϓϦ େड
▸ ݟ͔ͭΔɺങ͑ΔɺͨΊΒΕΔʮIQON(ΞΠίϯ)ʯ ▸ ձһ250ສ ▸ ΞΠςϜ૯1200ສҎ্ ▸ 300Ҏ্ͷECαΠτͷσʔλΛܝࡌ Θͨ͠ͷʮ͖ʯ͕͜͜ʹ͋Δ
▸ SNAP by IQON ▸ https://snap.ne.jp/ ▸ ਂֶशʹΑΔεφοϓࣸਅ͔ΒͷΞΠςϜݕग़ ▸ ྨࣅΞΠςϜͷදࣔɾߪೖ
͕͋͜Είʔσʹͬͱۙͮ͘
▸ KDDIגࣜձࣾͱఏܞ ▸ ӡӦͷECϞʔϧʮWowma!ʯʹը૾ղੳٕज़Λఏڙ ▸ Wowma!αΠτͰWowma!ίʔσSNAPΛ։࢝ ▸ ΞϓϦ։ൃͰڠྗ ▸ Ұॹʹ࡞Γ͍ͨਓืूʂSwift,
KotlinͰ։ൃʂ Wowma! ✕ IQON
࣍ ▸ ։ൃମ੍ͷհ ▸ ࣗಈԽʹ͍ͭͯ ▸ ԿނࣗಈԽ͢Δͷ͔ ▸ ۩ମྫͷհ
։ൃମ੍ VASILYͷΞϓϦ։ൃΛࢧ͑Δ
։ൃମ੍ ▸ ༷ʑͳνʔϜͷڠྗ͕ඞཁ ▸ ΞϓϦ։ൃ෦ ▸ σβΠϯ෦ ▸ ։ൃ෦
։ൃମ੍ ΞϓϦ։ൃ෦ ▸ iOSɺAndroidΞϓϦ։ൃ ▸ IQONΛؚΉΞϓϦ։ൃશൠΛ୲ ▸ iOS ▸ 3ਓ
▸ Android ▸ 2ਓ + Πϯλʔϯ1ਓ
։ൃମ੍ ΞϓϦ։ൃ෦ ▸ ։ൃڥ ▸ iOS ▸ Swift 3.0.2 ▸
Android ▸ Java, Kotlin, ReactNative
։ൃମ੍ σβΠϯ෦ ▸ WebɺiOSɺAndroid ͦͷଞσβΠϯ͕ؔ͢Δ෦ͯ͢ ▸ iOSɺAndroidɺOSผͰઐͷσβΠφʔ ▸ IQONಠࣗͷσβΠϯΨΠυϥΠϯΛ࡞ ▸
֤OSͷσβΠϯΨΠυϥΠϯʹ४ڌ
։ൃମ੍ ։ൃ෦ (όοΫΤϯυ) ▸ ج൫ͱͳΔγεςϜͷݚڀͱ։ൃ ▸ API ▸ Ϋϩʔϥʔ ▸
Πϯϑϥ ▸ σʔλαΠΤϯε
ࣗಈԽ VASILYͷΞϓϦ։ൃΛࢧ͑Δ
ࣗಈԽ ԿނࣗಈԽ͢Δͷ͔ʁ
ࣗಈԽ ԿނࣗಈԽ͢Δͷ͔ʁ ▸ ָΛ͢ΔͨΊ
ࣗಈԽ ԿނࣗಈԽ͢Δͷ͔ʁ ▸ ָΛ͢ΔͨΊ ▸ ࣗಈԽ͢Δ͜ͱࣗମָ͕͍ͨ͠Ί
ࣗಈԽ ԿނࣗಈԽ͢Δͷ͔ʁ ▸ ָΛ͢ΔͨΊ ▸ ࣗಈԽ͢Δ͜ͱࣗମָ͕͍ͨ͠Ί ▸ ۀޮɺੜ࢈ੑΛ্͠ՌΛग़ͨ͢Ί
ࣗಈԽ ԿނࣗಈԽ͢Δͷ͔ʁ ▸ ָΛ͢ΔͨΊ ▸ ࣗಈԽ͢Δ͜ͱࣗମָ͕͍ͨ͠Ί ▸ ۀޮɺੜ࢈ੑΛ্͠ՌΛग़ͨ͢Ί
ࣗಈԽ Ռʁ ▸ VASILYͰΞϓϦ։ൃʹٻΊΒΕΔՌ ▸ ࣭ ▸ εϐʔυ
ࣗಈԽ Ռʁ ▸ VASILYͰΞϓϦ։ൃʹٻΊΒΕΔՌ ▸ ࣭ ▸ Ϋϥογϡ ▸ όά͕গͳ͍
≒ ѱ͍ϨϏϡʔɾ͍߹Θ͕ͤগͳ͍ ▸ ಈ࡞͕ܰշɺ͍͍͢UI etc… ▸ εϐʔυ ▸ ։ൃ
ࣗಈԽ ԿނࣗಈԽ͢Δͷ͔ʁ ▸ ٻΊΒΕΔ࣭ɾεϐʔυΛ࣮ݱ͢ΔͨΊ
ࣗಈԽ ԿނࣗಈԽ͢Δͷ͔ʁ ▸ ٻΊΒΕΔ࣭ɾεϐʔυΛ࣮ݱ͢ΔͨΊ ▸ ۩ମతʹߦ͍ͬͯΔͷҎԼͷ3 ▸ CI/CDڥͷߏங ▸ ։ൃϑϩʔͷվળ
▸ ։ൃҎ֎ͷۀվળ
CI/CDڥͷߏங
ࣗಈԽ CI/CDڥͷߏங iOS Android CIαʔό Travis CI Wercker ੩తղੳ -
◦ Ϣχοτςετ - ◦ ࣗಈσϓϩΠ - ◦ ▸ iOSTravis CIΛར༻ ▸ ϏϧυͷΈ࣮ߦ ▸ Swift LintΛϩʔΧϧͰ࣮ߦ ▸ AndroidWerckerΛར༻ ▸ Android LintɺϢχοτςετΛ࣮ߦ
ࣗಈԽ AndroidͷCI/CDڥ ▸ CIαʔό ▸ ॳCircle CIΛར༻ ▸ OOMͷଟൃ ▸
Circle CI͔ΒWerckerʹҠߦ ▸ Ϗϧυ͕࣌ؒ10͔Β3ʹॖ
ࣗಈԽ AndroidͷCI/CDڥ ▸ ࣾʹfabric BetaΛར༻ ▸ QAɾϦϦʔεલ֬ೝ࣌ʹࣗಈ
ࣗಈԽ AndroidͷCI/CDڥ ▸ ࣗಈσϓϩΠ ▸ masterͷϚʔδΛτϦΨʔ ▸ ΞϧϑΝঢ়ଶͰAPKΛΞοϓϩʔυ ▸ ಈ࡞֬ೝޙɺ൛ʹมߋ
▸ ίϯιʔϧ͔ΒखಈͰมߋ ▸ ϦϦʔεྃ
ࣗಈԽ ΞʔΩςΫνϟͱςετ ▸ ΞϓϦͷΞʔΩςΫνϟ ▸ MVVM ͘͠ MVP Architecting Android...The
clean way?ΑΓ
ࣗಈԽ ΞʔΩςΫνϟͱςετ ▸ ΞϓϦͷΞʔΩςΫνϟ ▸ MVVM ͘͠ MVP ▸ υϝΠϯʹ͍ͭͯςετΛॻ͘
▸ ΧόϨοδ͋·Γؾʹ͠ͳ͍ ▸ ϓϨθϯςʔγϣϯɾσʔλ ▸ ςετॻ͍͍ͯͳ͍ Architecting Android...The clean way?ΑΓ
ࣗಈԽ ϓϨθϯςʔγϣϯͷςετΛ͠ͳ͍ʁ ▸ ࣗಈԽ͞Εͨςετίετ͕ߴ͘ग़དྷ͍ͯͳ͍ ▸ ϨΠΞτ͕ෳࡶͰසൟʹมΘΔࣄ͕ଟ͍ ▸ ςετίʔυΛϝϯςφϯεग़དྷͳ͍ ▸ CIαʔόͰಈ͔͢ʹΤϛϡϨʔλ͕ॏ͍
▸ AWS Device FarmɺFirebase Test LabΛݕূ͕ͨ͠ະ༻ (Androd) ▸ GitHub + CircleCIͰAWS Device FarmͰͷςετΛࣗಈԽ ▸ Firebase Test LabΛͬͨAndroidΞϓϦͷςετ ▸ खಈͰͷςετɺQAΛް࣮͘ࢪ
։ൃϑϩʔͷվળ
ࣗಈԽ ։ൃϑϩʔͷվળ ▸ iOSɺAndroidڞʹಉ͡ϑϩʔ ▸ ։ൃϑϩʔΛ؍͠վળͰ͖ͦ͏ͳՕॴΛൃݟ ▸ ίʔυ͘͠πʔϧͰग़དྷΔͱ͜Ζ͔ΒࣗಈԽ ▸ ੜ࢈ੑͱޮΛྑ࣭ͯ͘͠ͱεϐʔυΛ্͛Δ
༷ UIઃܭ APIઃܭ ࣮ ΞϓϦ࣮ QA ϦϦʔε
ࣗಈԽ UIͷઃܭͱ࣮ ▸ ΤϯδχΞɺσβΠφʔͷΓऔΓ͕ൃੜ ▸ ग़དྷΔ͚ͩݮΒ͍ͨ͠ ▸ ΓऔΓ͕ଟ͘ൃੜ͢Δͱޮ͕ѱ͍ https://www.websequencediagrams.com
ࣗಈԽ UIͷઃܭͱ࣮ ▸ σβΠϯ༷ͷॻ͖ग़͠ͱୡ ▸ πʔϧΛಋೖͯࣗ͠ಈԽ ▸ SketchɺZeplinΛ׆༻ ▸ 1ClickͰZeplinͷΤΫεϙʔτ
▸ ΤϯδχΞZeplinͰ༷֬ೝ
ࣗಈԽ APIͷઃܭͱ࣮ ▸ API͕࣮͞ΕΔ·ͰΞϓϦͷ࣮͕ਐ·ͳ͍ ▸ apiaryͰAPIϨεϙϯεΛઃܭ ▸ ఆٛͨ͠ϨεϙϯεΛฦ͢ϞοΫαʔό͕ࣗಈੜ ▸ apiaryͷϞοΫαʔόΛར༻͠ΞϓϦ։ൃ
▸ APIͷ࣮Λͨͣʹ։ൃΛਐΊΒΕΔ
ࣗಈԽ QA ▸ ϦϦʔεલʹ࣮ࢪ QAγʔτʹهೖ ▸ ࢦఠʹରԠ͠ͳ͚ΕϦϦʔεෆՄ ▸ QAͷ४උ͕͔͔࣌ؒΔ ▸
४උΛࣗಈԽ ▸ ϦϦʔεϊʔτɺQAγʔτͷ࡞ ▸ ΞϓϦࣾ (AndroidͷΈ) ▸ http://tech.vasily.jp/entry/android_qa_automation
։ൃҎ֎ͷۀվળ
ࣗಈԽ ։ൃҎ֎ͷۀվળ ▸ ࣾͰखಈͰߦ͍ͬͯΔ࡞ۀΛࣗಈԽ ▸ ࣗɺॴଐνʔϜҎ֎ͷਓͷੜ࢈ੑɺۀޮͷ্Λॿ͚Δ ▸ ࣾશମͰՌΛग़ͤΔΑ͏ʹ͢Δ
ࣗಈԽ ։ൃҎ֎ͷۀվળ ▸ ྫ: ఆྫϛʔςΟϯάࢿྉͷࣗಈੜ ▸ Slack͔ΒBotܦ༝Ͱ࡞ ▸ Qiita APIΛ׆༻
▸ खಈͰ࡞͢Δ࣌ؒΛݮ
ࣗಈԽ ։ൃҎ֎ͷۀվળ ▸ ࣾνϟοτBotษڧձΛ։࠵ ▸ BotΛ࡞ΕΔਓΛ૿͢ ▸ ֤͕ࣗ՝Λݟ͚ͭվળͰ͖ΔΑ͏ʹ͢Δత
·ͱΊ
·ͱΊ ▸ ࣗಈԽՌΛग़ͨ͢ΊʹऔΓΜͰ͍Δ ▸ ࣗಈԽ͢Δ͜ͱͰۀޮɺੜ࢈ੑΛ্ͤ͞ՌΛग़͘͢͢͠Δ ▸ ։ൃҎ֎ͷ෦ͰࣗಈԽΛਐΊΔ͜ͱͰࣾશମͰՌΛग़͘͢͠ͳΔͣ
We’re Hiring!
͋Γ͕ͱ͏͍͟͝·ͨ͠