Reveal, now in public beta, was originally created to enable its developers to debug client applications. Over time, they found that the tool became so useful on its own that it deserved to be productized.
Developer Sean Woodhouse tells TUAW, "We built Reveal to help us debug applications for our clients. The applications we build, particularly for iPad, can have extremely complicated view structures, and Reveal's ability to isolate and focus on a subset of the view hierarchy has been critical to manage that complexity. The ability to change view properties also lets us test simple visual changes without recompiling."
If you're thinking that Reveal sounds a lot like Spark Inspector, which I recently wrote about, you're right. Reveal covers much of the same ground in terms of application inspection, tweaking and exploration. It does so, however, with its own flair and interface strengths. I am very impressed by this product.
The app provides a handy "tl;dr" jumpstart for anyone testing it out. Choose Help > Integration Guide. All you need to do to get started is link in a few frameworks, set a build flag and run your app in the simulator. Reveal automatically detects and integrates with any app running its custom framework. Even better, the app stores that framework in its own bundle, so there's no other material to incorporate. From the app download to up and running, it took me maybe a minute to get going.
Once running, select your running app. You can tweak items in the View inspector (the third of the four inspector panes) and your changes are automatically injected into the application. You can see the simulator update live. For the app I was testing, I messed around with frames and content modes, and found the app to perfectly adjust those items. Elements in the other three panes appeared to be inspect-only in my testing.
Reveal is not targeted at Auto Layout at this time, and some of my tweaks put Auto Layout's nose out of joint a bit, such as when I attempted to set a view's affine transform to non-rectangular results.
This app will be best for anyone still working in the frames and bounds world, who wants to be able to adjust their interfaces in real time. It's perfect for developers who prefer not to rely entirely on Interface Builder and who use extensively use code. With Reveal, you'll be able to update interfaces without endlessly performing the tweak-build-test cycle. Instead, you explore in a live playground until you've found the interface you're looking for.
Like Spark Inspector, I would have liked to have had a product output of some kind, whether it was PaintCode-like code generation, bookmarks of saved interfaces (for later review and comparison) or just settings charts. Unfortunately, neither product offers these options at this time.
I'd also love if Reveal integrated with constraints. I almost never deal directly with frames and bounds any more now that Auto Layout has debuted, and I think I would find a tool that let me create, inspect and validate those rules a lot more valuable.
That said, Reveal is a lovely app even if it's one I wish I had had about two years ago before Auto Layout premiered. Its interface is top-notch, it's easy to use and I really enjoyed exploring it.
Because it's in open beta, I highly recommend that you download a copy and poke around. You may discover that it's exactly the dev tool you've been missing.