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
Ryosuke Horie
March 17, 2017
Research
1
760
VASILYでのアプリ開発における自動化の取り組み
Ryosuke Horie
March 17, 2017
Tweet
Share
More Decks by Ryosuke Horie
See All by Ryosuke Horie
GitHub Copilotは開発者の生産性をどれだけ上げるのか?ZOZOでの全社導入とその効果 / How Much Does GitHub Copilot Improve Developer Productivity? The Company-wide Implementation and Its Effects at ZOZO
horie1024
35
23k
ZOZOTOWNにおける開発生産性向上に関する取り組み / Initiatives to Improve Development Productivity at ZOZOTOWN
horie1024
8
5.9k
How does the Relay connect Android app development and Design?
horie1024
2
1.8k
既存画面の Jetpack Composeでの書き換え: FAANSでの事例紹介 / Case study of rewriting existing screens with Jetpack Compose
horie1024
0
1.6k
スキルマップを作った話 / Create a skills map
horie1024
3
4.4k
Miroを使った開発効率向上のための取り組み / Using Miro Efforts to Improve Development Efficiency
horie1024
0
2.3k
ktlintカスタムルールのパッケージ化と再利用/Package and reuse ktlint custom rules
horie1024
1
1.1k
Jetpack Benchmarkでの ViewのInflateパフォーマンスの可視化と改善 / The Jetpack Benchmark. Visualizing and improving View Inflate performance
horie1024
3
1.1k
ZOZOTOWNでの Dagger Hilt対応について/Migration to Dagger Hilt at ZOZOTOWN.
horie1024
1
2k
Other Decks in Research
See All in Research
文献紹介:A Multidimensional Framework for Evaluating Lexical Semantic Change with Social Science Applications
a1da4
1
220
MetricSifter:クラウドアプリケーションにおける故障箇所特定の効率化のための多変量時系列データの特徴量削減 / FIT 2024
yuukit
2
120
VisFocus: Prompt-Guided Vision Encoders for OCR-Free Dense Document Understanding
sansan_randd
1
240
Weekly AI Agents News! 8月号 プロダクト/ニュースのアーカイブ
masatoto
1
190
機械学習でヒトの行動を変える
hiromu1996
1
300
言語処理学会30周年記念事業留学支援交流会@YANS2024:「学生のための短期留学」
a1da4
1
240
最近のVisual Odometryと Depth Estimation
sgk
1
270
Matching 2D Images in 3D: Metric Relative Pose from Metric Correspondences
sgk
1
320
Weekly AI Agents News!
masatoto
25
24k
Generative Predictive Model for Autonomous Driving 第61回 コンピュータビジョン勉強会@関東 (後編)
kentosasaki
0
210
[CV勉強会@関東 CVPR2024] Visual Layout Composer: Image-Vector Dual Diffusion Model for Design Layout Generation / kantocv 61th CVPR 2024
shunk031
1
450
Introducing Research Units of Matsuo-Iwasawa Laboratory
matsuolab
0
920
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Designing Experiences People Love
moore
138
23k
Site-Speed That Sticks
csswizardry
0
24
GitHub's CSS Performance
jonrohan
1030
460k
What's new in Ruby 2.0
geeforr
343
31k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
24k
Docker and Python
trallard
40
3.1k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
47
2.1k
BBQ
matthewcrist
85
9.3k
How STYLIGHT went responsive
nonsquared
95
5.2k
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!
͋Γ͕ͱ͏͍͟͝·ͨ͠