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
0
95
Using KSScreenshotManager
Slides from my talk at Ottawa Cocoaheads on March 14, 2013.
Chuck Shnider
June 16, 2013
Tweet
Share
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
20260315 AWSなんもわからん🥲
chiilog
2
170
Java 21/25 Virtual Threads 소개
debop
0
260
Nostalgia Meets Technology: Super Mario with TypeScript
manfredsteyer
PRO
0
110
ロボットのための工場に灯りは要らない
watany
12
3.2k
Claude Code Skill入門
mayahoney
0
420
Claude Codeログ基盤の構築
giginet
PRO
7
3.6k
最初からAWS CDKで技術検証してもいいんじゃない?
akihisaikeda
4
170
Takumiから考えるSecurity_Maturity_Model.pdf
gessy0129
1
160
条件判定に名前、つけてますか? #phperkaigi #c
77web
2
780
Goの型安全性で実現する複数プロダクトの権限管理
ishikawa_pro
2
1.3k
コーディングルールの鮮度を保ちたい / keep-fresh-go-internal-conventions
handlename
0
230
Understanding Apache Lucene - More than just full-text search
spinscale
0
140
Featured
See All Featured
The SEO Collaboration Effect
kristinabergwall1
0
400
sira's awesome portfolio website redesign presentation
elsirapls
0
200
RailsConf 2023
tenderlove
30
1.4k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.1k
How to train your dragon (web standard)
notwaldorf
97
6.6k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Building AI with AI
inesmontani
PRO
1
820
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
430
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Designing for Performance
lara
611
70k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
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