Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
hikalab
Search
Yuya Kaido
April 23, 2016
Programming
0
190
hikalab
Yuya Kaido
April 23, 2016
Tweet
Share
More Decks by Yuya Kaido
See All by Yuya Kaido
droidkaigi-2019
yuyakaido
7
4.8k
matching-dev-meetup-1
yuyakaido
1
220
minami-aoyama-night-6
yuyakaido
1
1.2k
eureka-meetup-10
yuyakaido
0
810
droidkaigi-2018
yuyakaido
4
6k
navitime-eureka-1
yuyakaido
0
90
droidkaigi-2017
yuyakaido
11
8.1k
retty-tech-cafe-8
yuyakaido
0
190
mti-eureka-tech-beer
yuyakaido
0
480
Other Decks in Programming
See All in Programming
ゆくKotlin くるRust
exoego
1
110
チームをチームにするEM
hitode909
0
350
Cap'n Webについて
yusukebe
0
140
Findy AI+の開発、運用におけるMCP活用事例
starfish719
0
1.5k
S3 VectorsとStrands Agentsを利用したAgentic RAGシステムの構築
tosuri13
6
360
Go コードベースの構成と AI コンテキスト定義
andpad
0
130
AIコーディングエージェント(NotebookLM)
kondai24
0
210
ViewファーストなRailsアプリ開発のたのしさ
sugiwe
0
510
モデル駆動設計をやってみようワークショップ開催報告(Modeling Forum2025) / model driven design workshop report
haru860
0
280
認証・認可の基本を学ぼう後編
kouyuume
0
240
複数人でのCLI/Infrastructure as Codeの暮らしを良くする
shmokmt
5
2.3k
SwiftUIで本格音ゲー実装してみた
hypebeans
0
450
Featured
See All Featured
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
340
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
0
940
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
400
Balancing Empowerment & Direction
lara
5
810
Reality Check: Gamification 10 Years Later
codingconduct
0
1.9k
Designing for Performance
lara
610
69k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.4k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
1.9k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
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