
UIDebuggingInformationOverlay - ryanipete
http://ryanipete.com/blog/ios/swift/objective-c/uidebugginginformationoverlay/
======
smilliken
> be sure that the code doesn’t make it into your App Store build, else you’re
> likely to get rejected.

Doesn't appear to be the case! Here's a list of 611 apps using this class:
[https://mixrank.com/appstore/apps?expiration=2017-06-26&list...](https://mixrank.com/appstore/apps?expiration=2017-06-26&list.id=2dc1c31118&page_size=250&sharedby=scott%40deltaex.com&auth=74113e5f9290dcec)

Notably, it looks like Google, Facebook, Netflix, and Uber are all using it
(or have a dependency that is). There's been a handful that were using it
since early 2015, and a surge of several hundred towards the end of last year.

Here's the other related classes:

    
    
        UIDebuggingInformationRootTableViewController
        UIDebuggingInformationTopLevelViewController
        UIDebuggingInformationValue
        UIDebuggingInformationValueTableViewCell
        UIDebuggingInformationValueViewObserver
        UIDebuggingInformationViewController
        UIDebuggingInformationValueView
        UIDebuggingInformationOverlay
        UIDebuggingInformationValueViewNumber

~~~
ryanipete
Interesting! I just assumed.

------
saidajigumi
Related to this, I'll highly recommend Reveal[1], a macOS app which allows for
(semi-)live view debugging of iOS apps. Reveal provides view hierarchy info,
and renders it on (the mac's) screen in a highly inspectable way.

Specifically, both flat 2D and a really great 3D exploded renderings of the
active views are available. This is really brilliant for acquiring a deeper
understanding of many initially opaque aspects of iOS view construction.

Likewise, the inspectors let you tweak and adjust autolayout constraint
values, frames, bounds, and other view settings live. All together, working
with Reveal restores a refreshing amount of the ease of view debugging and
iteration speed that I love about working with modern in-browser debugging.

[1] [https://revealapp.com/](https://revealapp.com/)

~~~
LeoNatan25
With the advancements in Xcode, I really don't think Reveal is worth it. It
also requires embedding a binary framework (I think it's closed source) in
your application, which can be messy for debug vs production builds. Just not
worth the hassle.

~~~
siphor
You don't need to embed a binary framework for Reveal. And I think it's still
a lot better than the Xcode tool..

I like using it to fine tune the positions of views instead of guessing and
re-running which happens occasionally. (Can't do that w/ Xcodes built in tool)

~~~
LeoNatan25
Looks like it to me, or use some scripts in the debugger for the simulator.

[http://support.revealapp.com/kb/getting-started/reveal-
integ...](http://support.revealapp.com/kb/getting-started/reveal-integration-
guide)

Still not the most convenient. I'm not sure why they need that server, because
they can discover and modify everything using the runtime.

------
CodeWriter23
Dude! You win HN for the week, at least in the eyes of this guy, currently iOS
developer guy. Just yesterday I was thinking to myself, how I needed some kind
of tool to help me visualize the view hierarchy. I ended up setting different
background colors on various views to understand my problem.

Thank you.

~~~
thedjinn
Don't forget there's also Xcode's built-in view debugger. Very useful tool!

~~~
CodeWriter23
Ha! My second hero of the week. Note to self: explore all menu options.

------
gallerdude
Not surprised all that much of Apple's hidden tools. I'd totally sign a NDA in
order to see the hidden past of Apple.

------
vshni02
Flex does same + more (network logs)
[https://github.com/Flipboard/FLEX](https://github.com/Flipboard/FLEX)

------
disposition2
Just a note about your site. The 'Website' link on the left pane, it seems to
404 on just about every page. It looks like it is a relative link, rather than
static because the domain is getting appended to the end of each source URL.

Neat find.

~~~
ryanipete
Thanks for the heads up!

------
catoc
Doesn't seem to work anymore in iOS11 (developer beta on device)

------
mchrome
Pretty cool. Hopefully they make it public in the next developer release.

------
jclardy
I wonder when this was actually added, maybe it is getting ready for an actual
release in iOS 11 later this year.

~~~
ianburns
Looking back at UIKit headers it looks like it was added in iOS 9.

------
Kipters
Shameless plug: My post[0] about how to call it from Xamarin

[0] [https://kipters.net/post/ios-debugging-
overlay/](https://kipters.net/post/ios-debugging-overlay/)

