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
hikalab
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yuya Kaido
April 23, 2016
Programming
210
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
hikalab
Yuya Kaido
April 23, 2016
More Decks by Yuya Kaido
See All by Yuya Kaido
droidkaigi-2019
yuyakaido
7
4.9k
matching-dev-meetup-1
yuyakaido
1
240
minami-aoyama-night-6
yuyakaido
1
1.3k
eureka-meetup-10
yuyakaido
0
850
droidkaigi-2018
yuyakaido
4
6.2k
navitime-eureka-1
yuyakaido
0
110
droidkaigi-2017
yuyakaido
11
8.4k
retty-tech-cafe-8
yuyakaido
0
210
mti-eureka-tech-beer
yuyakaido
0
510
Other Decks in Programming
See All in Programming
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
12
19k
自動化したのに回らない テスト運用の壁―AI時代の品質責任と生産性
mfunaki
0
350
「つくるAI」だけではバグは見つからない ~テストに必要な「見つけるAI」を分離させる戦略~
mfunaki
0
120
生成AIで帳票OCRが「簡単に」作れる時代になった?
kon_shou
0
1.1k
AWS DevOps AgentのAzure接続機能を検証して見えた活用法/Use Cases Verified for the AWS DevOps Agent's Azure Connectivity Feature
masakiokuda
1
250
freeeにおけるEvalsの実践例の紹介
freee
PRO
0
130
VibeCodingからAgenticWorkflowへ
starfish719
0
690
20260722_microCMSで考える、AI時代のコンテンツ運用設計
yosh1
0
440
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
220
言葉の格闘技のススメ~紙とペンと言葉から始める、キャリアの描き方~
progresscicada
2
160
全PRの83%がAIレビューだけでマージできるようになった開発組織はその後どうなったか
athug
1
1.9k
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
2
340
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
370
ラッコキーワード サービス紹介資料
rakko
1
4.4M
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
470
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
220
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Agile that works and the tools we love
rasmusluckow
331
22k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
Designing for humans not robots
tammielis
254
26k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
The agentic SEO stack - context over prompts
schlessera
0
870
Transcript
Couples Android Team ώΧˑϥϘ yuyakaido
ࣗݾհ • ւ౻༏ʢ͔͍Ͳ͏Ώ͏ʣ • גࣜձࣾΤϨΧ • 1ͷΠϯλʔϯΛܦͯɺ20154݄ʹ৽ଔೖࣾ • AndroidͷνʔϜϦʔμʔ
yuyakaido yuyakaido
גࣜձࣾΤϨΧ • ࣗࣾαʔϏεͷاըɾ։ൃɾӡӦ • ΦϯϥΠϯσʔςΟϯάαʔϏεɿ • Χοϓϧઐ༻ΞϓϦɿ • ࣾһɿ104໊ •
IAC ΤϯδχΞ 51 ඇΤϯδχΞ 53
࣍ • େنνʔϜͰͷޮతͳ։ൃ • AndroidͳΒͰͷۤ࿑ • ·ͱΊ
࣍ • େنνʔϜͰͷޮతͳ։ൃ • AndroidͳΒͰͷۤ࿑ • ·ͱΊ
Couplesͷن • ػೳ • νʔϜϝϯόʔ • ϦϙδτϦ
Couplesͷػೳ
Couplesͷػೳ
νʔϜϝϯόʔ • ϦϦʔε·Ͱ3ਓͰ։ൃ • ࣄۀͷ֦େʹͬͯ૿һ • ࠷ऴతʹ8ਓ • ࣾһɿ3ਓ •
ۀҕୗɿ4໊ • Πϯλʔϯɿ1໊
ϦϙδτϦͷن 10902 commits 2556 files 304499 lines
େنνʔϜͰޮతʹ։ൃ͢ΔͨΊʹ • νʔϜͷׂ • ϥΠϒϥϦͷར༻ • ίʔυϨϏϡʔ • ςετ •
ܧଓతΠϯςάϨʔγϣϯͷಋೖ
νʔϜͷׂ • 8໊ɿࣾһ3໊ɺۀҕୗ4໊ɺΠϯλʔϯ1໊ ࣾһ ࣾһ ۀҕୗ ۀҕୗ ࣾһ ۀҕୗ
Πϯλʔϯ ۀҕୗ ৽ػೳ։ൃ ࠂػೳ։ൃ
ϥΠϒϥϦͷར༻ • ௨৴ • Volley -> OkHttp, Retrofit • Glide
• DB • ActiveAndroid -> Android-Orma • ͦͷଞ • RxJava, Dagger
ϥΠϒϥϦΛ͏ϝϦοτ • ։ൃΛݮग़དྷΔ͜ͱ • ϝϯςφϯεͷݮ • ௨৴पΓͷ੬ऑੑࢭ
ίʔυϨϏϡʔ • తɿΫΦϦςΟͷ୲อ • GitHubͷϓϧϦΫΤετΛར༻ develop feature ϓϧϦΫΤετˍίʔυϨϏϡʔ
ίʔυϨϏϡʔͷϙΠϯτ • มߋͷతɺ֬ೝ߲Λ໌֬ʹ͓ͯ͘͠ • ग़དྷΔ͚ͩখ͘͞ϓϧϦΫΤετΛग़͢ • ίʔσΟϯάنΛܾΊ͓ͯ͘ • దʹٕज़తͳԥΓ߹͍Λ͢Δ
ςετ • େنΞϓϦΛશͯਓྗͰςετ͢Δͷඇݱ࣮త • ςετϑϨʔϜϫʔΫΛͬͯޮతʹςετ • Ϣχοτςετ → JUnit/Robolectric •
UIςετ → Espresso
JUnit/Robolectric • JUnitɿJavaͷςετϑϨʔϜϫʔΫ • Ϣχοτςετ • RobolectricɿAndroidͷςετϑϨʔϜϫʔΫ • AndroidϑϨʔϜϫʔΫͷϞοΫ •
ຊདྷ࣮ػͰͳ͍ͱςετ͍͠ͷͰɺ࣮ػ ͳ͠Ͱςετ͕ՄೳʹͳΔ
Espresso • UIͷಈ͖ΛؚΊͨςετ͕ॻ͚Δ
શମઃܭ Repository UseCase Presenter View Dao Client Database Server
Presentation Domain Infrastructure
Presentation • Ͳ͏දࣔ͢Δ͔Λهड़ • MVPϞυΩ • PresenterPure Java (ContextҎ֎) •
PresenterJUnit/RobolectricͰςετ • ViewEspressoͰςετ(Robolectricซ༻)
Domain • ԿΛ࣮ݱ͢Δ͔Λهड़ • Pure Java (ContextҎ֎) • JUnit/RobolectricͰςετ
Infrastructure • Ͳ͏࣮ͬͯݱ͢Δ͔Λهड़ • DB • API • Pure Java
(ContextҎ֎) • JUnit/RobolectricͰςετ
ςετʹڵຯͷ͋Δํ • ͕ςετॻ͚ॻ͚͓͡͞ΜʹͳͬͨܦҢͱͦ ͷաఔͰͬͨ͜ͱ • https://speakerdeck.com/yuyakaido/ droidkaigi-2016 • ςελϒϧͳઃܭΛໝͯ͠Έͨ •
https://speakerdeck.com/yuyakaido/ android-testing-bootcamp-1
ܧଓతΠϯςάϨʔγϣϯͷಋೖ push hook distribute notify mention build & test
ςετͷϙΠϯτ • EspressoΛ͏͜ͱͰUIͷಈؚ͖Ίͨςετ͕هड़ग़དྷ Δ͕ɺUIςετඇৗʹ͕͔͔࣌ؒΓɺCI͕ճͤͳ͘ͳΔ • ग़དྷΔ͚ͩJUnitͰߴʹςετ • JUnitͰςετ͕͍͠Օॴ݁߹ςετΛߦ͏߹ EspressoΛ͏ •
ఘΊ؊৺
࣍ • େنνʔϜͰͷޮతͳ։ൃ • AndroidͳΒͰͷۤ࿑ • ·ͱΊ
AndroidͳΒͰͷۤ࿑ • ػछґଘ • iOSϑΝʔετͰͷ։ൃʹΑΔฐ
ػछґଘ • ༷ʑͳϝʔΧʔͷΧελϚΠζ • ΧελϚΠζ͕ݪҼͷόά͕ͪ´ • ։ൃஈ֊Ͱશͯݕ͢Δͷ͍͠
ػछґଘΛݕ͢ΔͨΊʹ • ࣾݕূΛͬͨςετ • 20ͷݕূ༻ • ֎෦ςετϕϯμʔͰͷςετ • ςετέʔεʹج͍ͮͨςετ
iOSϑΝʔετͰͷ։ൃ • iOSͷϦϦʔεޙʹAndroidʹணख • AndroidৗʹiOSΛ͍͔͚ΔܗͰ։ൃ • iOSͰͷ༷มߋ͕Androidʹڞ༗͞Εͳ͍
GoogleεϥΠυ
GoogleεϥΠυΛ͏͜ͱͰ GoogleεϥΠυ σβΠφʔ ΤϯδχΞ ߋ৽ ଈ࣌ө
࣍ • େنνʔϜͰͷޮతͳ։ൃ • AndroidͳΒͰͷۤ࿑ • ·ͱΊ
·ͱΊ • େنνʔϜͰͷޮతͳ։ൃ • νʔϜΛׂͯ͠ෳػೳͷಉ࣌։ൃ • ϥΠϒϥϦΛར༻ͨ͠ޮతͳ։ൃ • ίʔυϨϏϡʔͱςετʹΑΔ࣭ͷ୲อ •
AndroidͳΒͰͷۤ࿑ • ػछґଘɿ༷ʑͳͰͷςετ • iOSϑΝʔετʹΑΔฐɿ༷มߋ͕શମʹڞ༗͞ΕΔΈ
Thank you :) Credit: NASA Earth Observatory/NOAA NGDC