SlideShare a Scribd company logo
NSLog? Build&Run much?
And otherwise?
Pit Garbe, 11.07.2013
Montag, 29. Juli 13
UI Debugging
• instead of logging und iteratively changing the UI
• better use the helicopter vantage point
• be able to change parts of the UI in a running App
• (sometimes) even pull in the changes into code
• find mistakes, bugs, potential performance issues
Montag, 29. Juli 13
How do you do it?
• in the beginning there was NSLog, or more
advanced: CocoaLumberjack (DDLog)
• to log something different, you’d often have to
build and run
• to log UI stuff, you’d have to write inconvenient,
long log statements, that are hard to read in code as
well as in their output
• sometimes quite useless (debugging graphics with
text??)
Montag, 29. Juli 13
NSLogger
• https://github.com/fpillet/NSLogger
• nice performance log client, that also displays
images, NSData, log level, markers and does
remote logging (look mom, no cable!)
• there is a bridge to send all your DDLog lines to
NSLogger
• still mostly text based, needs many build & run
cycles if you want to log new stuff
Montag, 29. Juli 13
Montag, 29. Juli 13
DCIntrospect
• https://github.com/domesticcatsoftware/
DCIntrospect
• oldest tool I’m aware of (~ 2 years)
• to be used in the running App (in the Simulator)
• controlled by keyboard and touch input
•pod 'DCIntrospect', '~> 0.0.2'
Montag, 29. Juli 13
DCIntrospect
In AppDelegate.m
#import <DCIntrospect/DCIntrospect.h>
in appDidFinishLaunching…,
after makeKeyAndVisible:
#if TARGET_IPHONE_SIMULATOR
[[DCIntrospect sharedIntrospector] start];
#endif
The rest will be explained in the OSD help screen.
Montag, 29. Juli 13
DCIntrospect
• to be used mostly in the Simulator becaus of keyboard input
• but some parts can be used on the device
• highlight views, show views origin & size (with distance to window)
• move views around, change their sizes
• log view properties (incl. subviews, actions, targets)
• log accessibility properties
• manuelly call setNeedsDisplay, setNeedsLayout and reloadData
• highlight all the view outlines
• highlight all transparent views
• warn of misaligned views
• print view hierarchy
• free
• a lot of forks on GitHub, that are much younger (no idea, which to use)
Montag, 29. Juli 13
DCIntrospect
Montag, 29. Juli 13
PonyDebugger
• https://github.com/square/PonyDebugger
• pod 'PonyDebugger'
• with Chrome Developer Tools
• View Hierarchie (as XML), editable
• analyze network traffic
• remote logging and introspection (like NSLog but with expandable
objects that don’t clutter the screen unless you want to)
• Core Data browser
• iOS 5 +
• free
Montag, 29. Juli 13
Spark Inspector
• http://www.sparkinspector.com/
• 3D presentation of view hierarchy
• show (all) notifications (can be filtered of course), can resend them
• live updating the current screen of the App
• all views and their properties, all the way down to CALayer
transform can be edited on the fly
• uses swizzling (App Store safe, but you don’t want to leave it in
anyway)
• OS X 10.8+, iOS 5+
• $ 39.99 or  30 day trial
Montag, 29. Juli 13
Spark Inspector
• assistant helps to setup with your project (if you don’t like that, use
CocoaPods) 
• Device or Simulator
• system views can be hidden
• rotation of 3D view can be attached to device orientation
• can disable clip to bounds, i.e. myou can see outside the screen
border and also see how much a view renders but ultimately clips
away
Montag, 29. Juli 13
Montag, 29. Juli 13
Reveal
• http://revealapp.com
• pod 'Reveal-iOS-SDK'
• 2D/3D presentation of view hierarchy
• no live updating, only manual snapshot
• change view properties on the fly
• collapse subviews for less clutter, where you need it
• good for accessibility, VoiceOver tests
• Device or Simulator
• currently in Beta, try for free
• OS X 10.8+, iOS 6
Montag, 29. Juli 13
Montag, 29. Juli 13
Spark Inspector VS Reveal
Spark Inspector Reveal
min iOS version iOS 5 iOS 6
3D Yes Yes
change distance of layers Yes Yes
hide system views Yes –
Notifications Track all, send selected again –
disable clipping Yes –
Live Updating Yes –
Uses Swizzling Yes No
Price $ 39.99 (30 day trial) Beta, free
Montag, 29. Juli 13
XRay Editor (+Probe)
XRay Editor  http://mireus.com/xrayeditor/
• change view properties in running App
• can show a design overlay
• $24.99 Launch Sale
• 14 day trial
“Lite Edition”:
XRay Probe http://mireus.com/xrayprobe/
• show layout of running App (2D)
• $11.99 Launch Sale
• 14 day trial
Montag, 29. Juli 13
XRay Editor (+Probe)
pod 'XRay', '~> 1.2' 
insert in AppDelegate:
#import <XRay/XRay.h>
•didn’t work with CocoaPods, worked manually
•scrolling inside big UIScrollview upsets XRay Editor (in a
strange and interfering way)
•works on device as well
•iOS 5+
•there is an Xcode plugin, that allows to insert the changes you
made to the running App into your code
Montag, 29. Juli 13
Hierarchy Detective
• http://hierarchydetective.com
• https://github.com/chinmaygarde/hierarchydetective
• designed to be extended by modules, currently supports
UIKit, CALayer, cocos2d
• In the Wiki you can find info
how to support more view
hierarchy types
• didn’t try it yet
Montag, 29. Juli 13
Demo
Montag, 29. Juli 13

More Related Content

PDF
LibGDX: Cross Platform Game Development
PDF
Building games-with-libgdx
PPTX
Beginning android games
PDF
Intro to Building Android Games using libGDX
PPTX
High End Modeling & Imaging with Intel Iris Pro Graphics
PDF
Ubucon 19 - The making of ubuntu desktop for 20.04
PDF
Intro to Asha UI
PPTX
East Coast DevCon 2014: The Slate UI Framework - Architecture & Tools
LibGDX: Cross Platform Game Development
Building games-with-libgdx
Beginning android games
Intro to Building Android Games using libGDX
High End Modeling & Imaging with Intel Iris Pro Graphics
Ubucon 19 - The making of ubuntu desktop for 20.04
Intro to Asha UI
East Coast DevCon 2014: The Slate UI Framework - Architecture & Tools

What's hot (8)

PDF
Unity Visual Effect Graph
PPTX
November.2015.RealityBasedUI
PDF
Chrome game programming_with_for_play
PDF
Lib gdx 2015_corkdevio
PPTX
West Coast DevCon 2014: Build Automation - Epic’s Build Tools & Infrastructure
PDF
PhoneGap in 60 Minutes or Less
ZIP
Writing 3D Applications Using ruby-processing
PDF
Introducing Honeycomb
Unity Visual Effect Graph
November.2015.RealityBasedUI
Chrome game programming_with_for_play
Lib gdx 2015_corkdevio
West Coast DevCon 2014: Build Automation - Epic’s Build Tools & Infrastructure
PhoneGap in 60 Minutes or Less
Writing 3D Applications Using ruby-processing
Introducing Honeycomb
Ad

Similar to UI Debugging - Cocoaheads Dresden (English) (20)

KEY
Google App Engine Java, Groovy and Gaelyk
PPTX
PDF
Stackato v5
PDF
Esug java
PPTX
Untangling - fall2017 - week6
PDF
Counterclockwise past present future
PDF
Is it possible to write cross-native apps in 2020 ?
PDF
Saving Money with Open Source GIS
PDF
Rapid Game Development with RUby and Gosu – Ruby Manor 4
PDF
Desktop apps with node webkit
PPT
september13.ppt
PDF
Stackato v6
PPTX
Continuous integration by Rémy Virin
PDF
Off the Treadmill: Building a Drupal Platform for Your Organization
PDF
Mirror - Android UI development on steroids
PDF
From Renamer Plugin to Polyglot IDE
PDF
Head first android apps dev tools
PPTX
Mobile native-hacks
PPTX
From Web to Mobile with Stage 3D
PPT
ie450RobotStudio.ppt
Google App Engine Java, Groovy and Gaelyk
Stackato v5
Esug java
Untangling - fall2017 - week6
Counterclockwise past present future
Is it possible to write cross-native apps in 2020 ?
Saving Money with Open Source GIS
Rapid Game Development with RUby and Gosu – Ruby Manor 4
Desktop apps with node webkit
september13.ppt
Stackato v6
Continuous integration by Rémy Virin
Off the Treadmill: Building a Drupal Platform for Your Organization
Mirror - Android UI development on steroids
From Renamer Plugin to Polyglot IDE
Head first android apps dev tools
Mobile native-hacks
From Web to Mobile with Stage 3D
ie450RobotStudio.ppt
Ad

Recently uploaded (20)

PPT
Teaching material agriculture food technology
PPTX
MYSQL Presentation for SQL database connectivity
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Electronic commerce courselecture one. Pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Machine learning based COVID-19 study performance prediction
Teaching material agriculture food technology
MYSQL Presentation for SQL database connectivity
A comparative analysis of optical character recognition models for extracting...
Review of recent advances in non-invasive hemoglobin estimation
Per capita expenditure prediction using model stacking based on satellite ima...
NewMind AI Weekly Chronicles - August'25-Week II
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
sap open course for s4hana steps from ECC to s4
Chapter 3 Spatial Domain Image Processing.pdf
Assigned Numbers - 2025 - Bluetooth® Document
Unlocking AI with Model Context Protocol (MCP)
Advanced methodologies resolving dimensionality complications for autism neur...
Electronic commerce courselecture one. Pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Network Security Unit 5.pdf for BCA BBA.
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
Machine learning based COVID-19 study performance prediction

UI Debugging - Cocoaheads Dresden (English)

  • 1. NSLog? Build&Run much? And otherwise? Pit Garbe, 11.07.2013 Montag, 29. Juli 13
  • 2. UI Debugging • instead of logging und iteratively changing the UI • better use the helicopter vantage point • be able to change parts of the UI in a running App • (sometimes) even pull in the changes into code • find mistakes, bugs, potential performance issues Montag, 29. Juli 13
  • 3. How do you do it? • in the beginning there was NSLog, or more advanced: CocoaLumberjack (DDLog) • to log something different, you’d often have to build and run • to log UI stuff, you’d have to write inconvenient, long log statements, that are hard to read in code as well as in their output • sometimes quite useless (debugging graphics with text??) Montag, 29. Juli 13
  • 4. NSLogger • https://github.com/fpillet/NSLogger • nice performance log client, that also displays images, NSData, log level, markers and does remote logging (look mom, no cable!) • there is a bridge to send all your DDLog lines to NSLogger • still mostly text based, needs many build & run cycles if you want to log new stuff Montag, 29. Juli 13
  • 6. DCIntrospect • https://github.com/domesticcatsoftware/ DCIntrospect • oldest tool I’m aware of (~ 2 years) • to be used in the running App (in the Simulator) • controlled by keyboard and touch input •pod 'DCIntrospect', '~> 0.0.2' Montag, 29. Juli 13
  • 7. DCIntrospect In AppDelegate.m #import <DCIntrospect/DCIntrospect.h> in appDidFinishLaunching…, after makeKeyAndVisible: #if TARGET_IPHONE_SIMULATOR [[DCIntrospect sharedIntrospector] start]; #endif The rest will be explained in the OSD help screen. Montag, 29. Juli 13
  • 8. DCIntrospect • to be used mostly in the Simulator becaus of keyboard input • but some parts can be used on the device • highlight views, show views origin & size (with distance to window) • move views around, change their sizes • log view properties (incl. subviews, actions, targets) • log accessibility properties • manuelly call setNeedsDisplay, setNeedsLayout and reloadData • highlight all the view outlines • highlight all transparent views • warn of misaligned views • print view hierarchy • free • a lot of forks on GitHub, that are much younger (no idea, which to use) Montag, 29. Juli 13
  • 10. PonyDebugger • https://github.com/square/PonyDebugger • pod 'PonyDebugger' • with Chrome Developer Tools • View Hierarchie (as XML), editable • analyze network traffic • remote logging and introspection (like NSLog but with expandable objects that don’t clutter the screen unless you want to) • Core Data browser • iOS 5 + • free Montag, 29. Juli 13
  • 11. Spark Inspector • http://www.sparkinspector.com/ • 3D presentation of view hierarchy • show (all) notifications (can be filtered of course), can resend them • live updating the current screen of the App • all views and their properties, all the way down to CALayer transform can be edited on the fly • uses swizzling (App Store safe, but you don’t want to leave it in anyway) • OS X 10.8+, iOS 5+ • $ 39.99 or  30 day trial Montag, 29. Juli 13
  • 12. Spark Inspector • assistant helps to setup with your project (if you don’t like that, use CocoaPods)  • Device or Simulator • system views can be hidden • rotation of 3D view can be attached to device orientation • can disable clip to bounds, i.e. myou can see outside the screen border and also see how much a view renders but ultimately clips away Montag, 29. Juli 13
  • 14. Reveal • http://revealapp.com • pod 'Reveal-iOS-SDK' • 2D/3D presentation of view hierarchy • no live updating, only manual snapshot • change view properties on the fly • collapse subviews for less clutter, where you need it • good for accessibility, VoiceOver tests • Device or Simulator • currently in Beta, try for free • OS X 10.8+, iOS 6 Montag, 29. Juli 13
  • 16. Spark Inspector VS Reveal Spark Inspector Reveal min iOS version iOS 5 iOS 6 3D Yes Yes change distance of layers Yes Yes hide system views Yes – Notifications Track all, send selected again – disable clipping Yes – Live Updating Yes – Uses Swizzling Yes No Price $ 39.99 (30 day trial) Beta, free Montag, 29. Juli 13
  • 17. XRay Editor (+Probe) XRay Editor  http://mireus.com/xrayeditor/ • change view properties in running App • can show a design overlay • $24.99 Launch Sale • 14 day trial “Lite Edition”: XRay Probe http://mireus.com/xrayprobe/ • show layout of running App (2D) • $11.99 Launch Sale • 14 day trial Montag, 29. Juli 13
  • 18. XRay Editor (+Probe) pod 'XRay', '~> 1.2'  insert in AppDelegate: #import <XRay/XRay.h> •didn’t work with CocoaPods, worked manually •scrolling inside big UIScrollview upsets XRay Editor (in a strange and interfering way) •works on device as well •iOS 5+ •there is an Xcode plugin, that allows to insert the changes you made to the running App into your code Montag, 29. Juli 13
  • 19. Hierarchy Detective • http://hierarchydetective.com • https://github.com/chinmaygarde/hierarchydetective • designed to be extended by modules, currently supports UIKit, CALayer, cocos2d • In the Wiki you can find info how to support more view hierarchy types • didn’t try it yet Montag, 29. Juli 13