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
Spoonを使わずにテストケースでスクショを撮りたい
Search
Victor Lee
June 28, 2018
Programming
0
290
Spoonを使わずにテストケースでスクショを撮りたい
Victor Lee
June 28, 2018
Tweet
Share
More Decks by Victor Lee
See All by Victor Lee
Create Flutter Plugins
konyavic
2
2.5k
ライブラリーだってクラッシュレポートが見たい
konyavic
0
550
5プラットフォームをサポートしているプッシュ通知SDKをFCMに移行した話
konyavic
2
1.2k
Background Execution LimitsのAndroid Pの変更点?
konyavic
0
550
SDK開発にUIテストを導入してみた
konyavic
1
2.2k
Other Decks in Programming
See All in Programming
脳の「省エネモード」をデバッグする ~System 1(直感)と System 2(論理)の切り替え~
panda728
PRO
0
130
C-Shared Buildで突破するAI Agent バックテストの壁
po3rin
0
430
HTTPプロトコル正しく理解していますか? 〜かわいい猫と共に学ぼう。ฅ^•ω•^ฅ ニャ〜
hekuchan
2
600
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
330
AI前提で考えるiOSアプリのモダナイズ設計
yuukiw00w
0
210
Findy AI+の開発、運用におけるMCP活用事例
starfish719
0
2k
Flutter On-device AI로 완성하는 오프라인 앱, 박제창 @DevFest INCHEON 2025
itsmedreamwalker
1
180
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
220
生成AI時代を勝ち抜くエンジニア組織マネジメント
coconala_engineer
0
37k
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
470
AIの誤りが許されない業務システムにおいて“信頼されるAI” を目指す / building-trusted-ai-systems
yuya4
7
4.3k
perlをWebAssembly上で動かすと何が嬉しいの??? / Where does Perl-on-Wasm actually make sense?
mackee
0
290
Featured
See All Featured
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
2
78
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.5k
30 Presentation Tips
portentint
PRO
1
180
The Curious Case for Waylosing
cassininazir
0
200
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
0
1k
Rails Girls Zürich Keynote
gr2m
95
14k
It's Worth the Effort
3n
187
29k
Fireside Chat
paigeccino
41
3.8k
Building the Perfect Custom Keyboard
takai
2
670
Making Projects Easy
brettharned
120
6.5k
Ruling the World: When Life Gets Gamed
codingconduct
0
120
Are puppies a ranking factor?
jonoalderson
0
2.6k
Transcript
4QPPOΛΘͣʹ ςετέʔεͰεΫγϣΛࡱΓ͍ͨ 4IJOKVLVBBS !LPOZBWJD
!LPOZBWJD ཥঝӹʢΓͪ͐Μ͍ʣɾग़ɾຊ ࡶ৯ܥΤϯδχΞ dࠐΈ04ݚڀ⾣dήʔϜ։ൃ⾣d4%,։ൃ
‣ ΞϓϦϝοηʔδ ‣ Ϣʔβʔૢ࡞ͰτϦΨʔ ‣ μΠΞϩάɾ ΦʔόʔϨΠɾόφʔ ‣ ηάϝϯτ ‣
"#ςετ ‣ ίϯόʔδϣϯܭଌ ‣ ɾɾɾ
ςετέʔεͰΞϓϦϝοηʔδͷදࣔΛ֬ೝ͍ͨ͠ ‣ όϦΤʔγϣϯ͕ଟ͗͢Δ ‣ ΞϓϦϝοηʔδͷछྨ ‣ ղ૾ ‣ ը૾ͷΞεϖΫτൺ ‣
จࣈ ‣ ɾɾɾ ‣ 6*ςετͰΞαʔγϣϯॻ͘ͷඇݱ࣮త ‣ ςετέʔεͰࣗಈͰεΫγϣࡱΓ͍ͨ
4QPPO
‣ ࣗಈͰεΫγϣΛࡱΔ ‣ ෳฒྻ࣮ߦ ‣ ศར Spoon
ͱ͜ΖͰʜ
৺͋Γ ‣ ΞϓϦϝοηʔδදࣔͷํͪΐͬͱҧ͏͚Ͳ͏·͘ࡱΕΔ͔ʁ ‣ 4%,ͷ6*ςετ"OESPJE5FTU0SDIFTUSBUPS͕΄΅ඞਢ ‣ ͜Ε4QPPOͷSVOOFSͱ͏·͘ڞଘͰ͖ΔͩΖ͏͔ʁ ‣ 6*ςετͰ͏ΞϓϦ͋·Γґଘ૿ͨ͘͠ͳ͍ ‣
ͦͦεΫγϣࡱΔ͘Β͍ͳΒ؆୯ʹͰ͖ΔͷͰͳ͍͔ʁ
‣ 9$6*4DSFFOͰ ؆୯ʹͰ͖Δ XCUITestͷ߹
4QPPOͷ࣮ΛݟͯΈΔ
‣ #JUNBQͰ$BOWBTॳظԽ ‣ BDUJWJUZ HFU8JOEPX HFU%FDPS7JFX ESBX DBOWBT
‣ ͜Ε͚ͩʂ
͜ͷ··ͬͯΈΔ
None
None
ͬͺΓϝοηʔδ͕ඳը͞Εͳ͍
-BZPVU*OTQFDUPS
4FMFDU8JOEPXͰ .BJO"DUJWJUZ͕ݸฒΜͰΔ
None
ΞϓϦϝοηʔδʢμΠΞϩάʣ ‣ %JBMPH'SBHNFOUͰ࣮͞Ε͍ͯΔ ‣ "DUJWJUZͱผͷ7JFXπϦʔʹͳΔ ‣ ͬͺΓͩΊʁ
‣ #JUNBQͰ$BOWBTॳظԽ ‣ BDUJWJUZ HFU8JOEPX HFU%FDPS7JFX ESBX DBOWBT
‣ ͜Ε͚ͩʂ
7JFX͑͋͞ΕESBX͢Δ͚ͩ
7JFX͑͋͞ΕͰ͖Δ ‣ 'SBHNFOU5BHΛ͍ͬͯΔ Fragment fragment = activityRule.getActivity() .getFragmentManager() .findFragmentByTag(fragmentTag); if
(fragment != null) { View view = ((DialogFragment) fragment).getDialog() .getWindow() .getDecorView() .getRootView(); view.draw(canvas); }
None
ͣΕΔͷͰௐ Fragment fragment = activityRule.getActivity() .getFragmentManager() .findFragmentByTag(fragmentTag); if (fragment !=
null) { View view = ((DialogFragment) fragment).getDialog() .getWindow() .getDecorView() .getRootView(); int[] loc = new int[2]; view.getLocationOnScreen(loc); canvas.translate(loc[0], loc[1]); view.draw(canvas);
None
ͬͨʂ
ͱ͜ΖͰʜ
όφʔλΠϓ%JBMPH'SBHNFOUͰͳ͍ ‣ 1PQVQ8JOEPXΛ͍ͬͯΔ ‣ TFU$POUFOU7JFX ‣ 5BHͰऔΓग़ͤͳ͍ ‣ ͬͺΓͩΊʁ
7JFXͷࢀরΛ ΞϓϦ͔Βςετέʔεʹ͍͍ͤ
None
·ͱΊ ‣ ςετέʔεͰεΫγϣΛࡱΔʹɺ7JFXͷࢀর͕͋ΕΑ͍ ‣ %JBMPH'SBHNFOUͷεΫγϣΛࡱΔʹɺ5BHͰ'SBHNFOUͷࢀরΛऔ Γग़ͦ͏ ‣ 1PQVQ8JOEPXͰग़ͨ͠7JFXͷεΫγϣΛࡱΔʹɺ༧Ί7JFXͷࢀ রΛ͍࣋ͬͯͳ͍ͱ͍͚ͳ͍ʢςετέʔε͕ϗϫΠτϘοΫεతʹ ͳΔʣ