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
コンテキストの使い捨てをやめる — ビジネスルール駆動開発と miko —
ioki
0
260
Oxcを導入して開発体験が向上した話
yug1224
4
370
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
560
act1-costs.pdf
sumedhbala
0
150
AI 輔助遺留系統現代化的經驗分享
jame2408
1
1.1k
ローカルLLMを使ってB2Bサービスを作っていての学び
yaotti
0
230
Performance Engineering for Everyone
elenatanasoiu
0
250
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
5.6k
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
4
1.6k
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
7
1.7k
「なぜそう決めたのか」を残し続ける仕組み ― Notion AI カスタムエージェント × Slack連携による設計判断の自動記録 - NIKKEI Tech Talk #47
niftycorp
PRO
0
250
dRuby over BLE
makicamel
2
400
Featured
See All Featured
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.6k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Site-Speed That Sticks
csswizardry
13
1.2k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
210
Amusing Abliteration
ianozsvald
1
220
How to Think Like a Performance Engineer
csswizardry
28
2.7k
Deep Space Network (abreviated)
tonyrice
0
220
Why Our Code Smells
bkeepers
PRO
340
58k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Building the Perfect Custom Keyboard
takai
2
810
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
320
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