Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
VASILYでのアプリ開発における自動化の取り組み
Search
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
98
GitHub Copilot Use Cases at ZOZO
horie1024
1
3.6k
Miro × ZOZO ZOZOのMiro活用事例紹介
horie1024
0
3.2k
GitHub Copilotは開発者の生産性をどれだけ上げるのか?ZOZOでの全社導入とその効果 / How Much Does GitHub Copilot Improve Developer Productivity? The Company-wide Implementation and Its Effects at ZOZO
horie1024
36
31k
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.9k
Miroを使った開発効率向上のための取り組み / Using Miro Efforts to Improve Development Efficiency
horie1024
0
2.8k
Other Decks in Research
See All in Research
Harness Engineering and Al Agent
kzinmr
3
2k
超効率化への挑戦:1bit LLMの現状と展望
yumaichikawa
0
780
敵対生成プロンプト同時探索による内省型プロンプト最適化
kinoue_smarthr
0
430
SLAMはどこまで解決されたのか?
tomonom
0
1.4k
J-STAGEの現況と全文XML登載必須化について
xspa2012
0
300
Kunai: Toward a Verifier-Safe Layered DSL for Nested Encapsulation Packet Filtering on eBPF
takehaya
1
110
Evaluation génomique des femelles laitières croisées : comprendre la méthode pour accompagner les éleveurs à son utilisation
institudelelevage
PRO
0
140
論文紹介:Doc-to-LoRA: Learning to Instantly Internalize Contexts
yukako_nakano
0
190
IA for theory
gpeyre
1
460
Ghost in the 7‑Zip: The Shadow of Residential Proxies Creeping into Your Life
nttcom
0
2.1k
第64回CV・PRML勉強会 論文紹介:Linguistic Priors for Visual Decoupling: Towards Symmetric Vision-Brain Alignment
sokikatayama
0
240
Visual SLAM未来予測 / Future Prediction in Visual SLAM
koide3
1
1.1k
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Test your architecture with Archunit
thirion
2
2.4k
Code Reviewing Like a Champion
maltzj
528
40k
Balancing Empowerment & Direction
lara
6
1.3k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Chasing Engaging Ingredients in Design
codingconduct
0
340
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
530
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
710
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
690
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
340
Odyssey Design
rkendrick25
PRO
2
850
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!
͋Γ͕ͱ͏͍͟͝·ͨ͠