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
Using KSScreenshotManager
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Chuck Shnider
June 16, 2013
Programming
97
0
Share
Using KSScreenshotManager
Slides from my talk at Ottawa Cocoaheads on March 14, 2013.
Chuck Shnider
June 16, 2013
More Decks by Chuck Shnider
See All by Chuck Shnider
A look back at GameDev on Apple II
chucks
0
610
Fun With Auto Layout
chucks
0
130
Introducing Skateway 2.0
chucks
0
51
Other Decks in Programming
See All in Programming
脱 雰囲気実装!AgentCoreを良い感じにWEBアプリケーションに組み込むために
takuyay0ne
3
420
Codex の「自走力」を高める
yorifuji
0
1.3k
実践ハーネスエンジニアリング #MOSHTech
kajitack
7
5.3k
ファインチューニングせずメインコンペを解く方法
pokutuna
0
250
条件判定に名前、つけてますか? #phperkaigi #c
77web
2
910
LM Linkで(非力な!)ノートPCでローカルLLM
seosoft
0
310
KagglerがMixSeekを触ってみた
morim
0
360
我々はなぜ「層」を分けるのか〜「関心の分離」と「抽象化」で手に入れる変更に強いシンプルな設計〜 #phperkaigi / PHPerKaigi 2026
shogogg
2
740
夢の無限スパゲッティ製造機 -実装篇- #phpstudy
o0h
PRO
0
180
Goの型安全性で実現する複数プロダクトの権限管理
ishikawa_pro
2
1.4k
Symfony + NelmioApiDocBundle を使った スキーマ駆動開発 / Schema Driven Development with NelmioApiDocBundle
okashoi
0
250
事業会社でのセキュリティ長期インターンについて
masachikaura
0
130
Featured
See All Featured
For a Future-Friendly Web
brad_frost
183
10k
Accessibility Awareness
sabderemane
0
88
New Earth Scene 8
popppiees
2
2k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
700
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
95
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
490
Why Our Code Smells
bkeepers
PRO
340
58k
Marketing to machines
jonoalderson
1
5.1k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
320
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.5k
Transcript
KSScreenshotManager Chuck Shnider twi er: @cshnider ∑
It starts small enough…
None
None
None
None
We’re Gonna Need a Bigger Slide…
None
Production Work
Heaven forbid you have to update them later!
KSScreenshotManager wri en by Kent Sutherland from Flexibits twi er:
@KSuther
@KSuther
h ps://github.com/ksuther/KSScreenshotManager Open-Source
KSScreenshotManager •Make your code generate the screenshots •Fully-Automated •Runnable from
scripting environments •Sample Python Script included •Uses “WaxSim” to drive the iOS Simulator
Like Test Automation •Not “For Free” •Cheaper to repeat over
time •Effort scales more slowly than manual screenshots
Modifying Your Code •WARNING Private API Usage! •Make sure none
of this ships to the AppStore •Conditional Compile and perhaps use a new target
Modifying Your Code •Add KSScreenshotManager and KSScreenshotAction.h / .m to
your project. #de ne CREATING_SCREENSHOTS
Modifying Your Code •Create a subclass of KSScreenshotManager •Override -(void)setupScreenshotActions;
setupScreenshotActions •Create instances of KSScreenshotAction •block-based API with optional cleanup
blocks •synch or async, status bar or no [self addScreenshotAction:newAction];
KSScreenshotAction block •Get the app to the correct state •Cheat
as necessary •Fake Data, Mock Objects, etc. •Private APIs, both app and OS
AppDelegate Changes #if CREATING_SCREENSHOTS dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 *
NSEC_PER_SEC)); dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ MyScreenshotManager *screenshotManager = [[MyScreenshotManager alloc] init]; [screenshotManager setTableViewController:viewController]; [screenshotManager takeScreenshots]; }); #endif
Demo