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
Chuck Shnider
June 16, 2013
Programming
98
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
53
Other Decks in Programming
See All in Programming
KMP × Kotlin 2.3 - How Android Got Slower While iOS Builds Improved by 47%
rio432
0
120
UIの境界線をデザインする | React Tokyo #15 メイントーク
sasagar
2
420
GitHubCopilotCLIをはじめよう.pdf
htkym
0
320
書籍「ユーザーストーリーマッピング」が私のバイブル
asumikam
4
470
Kingdom of the Machine
yui_knk
2
1.4k
Claude Code × Gemini × Ebitengine ゲーム制作素人WebエンジニアがGoでゲームを作った話
webzawa
0
220
Road to RubyKaigi: Play Hard(ware)
makicamel
1
530
エラー処理の温故知新 / history of error handling technic
ryotanakaya
7
1.8k
ハーネスエンジニアリングにどう向き合うか 〜ルールファイルを超えて開発プロセスを設計する〜 / How to approach harness engineering
rkaga
27
19k
AI時代のエンジニアリングの原則 / Engineering Principles in the AI Era
haru860
0
1.1k
属人化しないコード品質の作り方_2026.04.07.pdf
muraaano
0
300
Spec Driven Development | AI Summit Vilnius
danielsogl
PRO
1
140
Featured
See All Featured
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
170
How to train your dragon (web standard)
notwaldorf
97
6.6k
Thoughts on Productivity
jonyablonski
76
5.1k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Everyday Curiosity
cassininazir
0
200
Documentation Writing (for coders)
carmenintech
77
5.3k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
Testing 201, or: Great Expectations
jmmastey
46
8.1k
Six Lessons from altMBA
skipperchong
29
4.2k
[SF Ruby Conf 2025] Rails X
palkan
2
1k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
Rails Girls Zürich Keynote
gr2m
96
14k
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