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.3k
retty-tech-cafe-8
yuyakaido
0
200
mti-eureka-tech-beer
yuyakaido
0
500
Other Decks in Programming
See All in Programming
TAKTでAI駆動開発の品質を設計する
j5ik2o
6
1.2k
Skillsは効率化、Agentsは"自分の拡張"——Builder時代のエージェント編成(CC Night 2026)
wemra
1
120
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
330
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
500
ふつうのFeature Flag実践入門
irof
7
3.7k
Signal Forms: Beyond the Basics @ngBaguette 2026 in Paris
manfredsteyer
PRO
0
240
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
10
3.6k
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
110
コンテキストの使い捨てをやめる — ビジネスルール駆動開発と miko —
ioki
0
190
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
320
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
270
New "Type" system on PicoRuby
pocke
1
850
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
Unsuck your backbone
ammeep
672
58k
Un-Boring Meetings
codingconduct
0
310
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
65
55k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
270
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
720
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
170
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
230
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
Leo the Paperboy
mayatellez
7
1.8k
Google's AI Overviews - The New Search
badams
0
1k
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