7 ms·
Show HN: Reveal – an iOS runtime inspection tool
- theraven 13y agoIt's in open public beta at the moment. We are a consultancy that work on large iOS application within large teams, with ever aging code-bases, and we built this to make our lives much much easier when it comes to debugging complex view hierarchies.
- jawngee 13y agoLooks beautiful. I've been using Spark Inspector but am not too comfortable with it modifying my Xcode projects. What's pricing going to look like?
- seanwoodhouse 13y agoYou still need to link your app against our library for Reveal to be able to inspect it, but the instructions guide you through it so you know exactly what's being modified in your project. Pricing will be announced when we come out of beta.
- bengotow 13y agoHey! Author of the Spark Inspector here - what would make you more comfortable with the setup assistant? I'd love to get you to use it ;-) You can modify your project yourself, but it's important that the framework is added to the debug build configuration only, and the Spark Inspector's setup assistant makes sure you do this right. If you drag and drop the framework into your project the way Reveal tells you to, that framework will be linked into Release builds (because of the '-ObjC' flag) - so you could accidentally allow people to inspect your published app!
- seanwoodhouse 13y agoOur integration guide is pretty explicit about how to link with the library so that it doesn't get linked in to Release builds. Everyone's environment is different, and we think it's a good thing that developers understand what changes are required to link with any third party framework.
- bengotow 13y agoAhh cool - I just followed the graphic on the "Getting Started" panel (the pic with the framework being dragged into the left sidebar) I already had the Spark Inspector framework linked in so I guess I was able to skip the instructions!
- dmishe 13y agoLooks cool. Would it be possible to use cocoapods?
- theraven 13y agoNot just yet, but we are working on it.
- seanwoodhouse 13y agoUpdate: there is now a pod spec in the Cocoapods Specs repo for Reveal. Head to http://support.revealapp.com/ http://support.revealapp.com/ if you have any issues.
- pablasso 13y agoSo any advantages for this over Spark Inspector? http://sparkinspector.com/ http://sparkinspector.com/
- seanwoodhouse 13y agoProbably best to try both and see what you think. We've used Reveal on some pretty huge apps and it stacks up fine. We're also very careful not to muck about too much with your running app, hence the snapshot approach rather than live updates.
- bengotow 13y agoHey folks! Developer of the Spark Inspector here. I've been playing around with Reveal all morning. I think the biggest difference between SI and Reveal is that SI links into your app more extensively. You don't have to click 'Refresh' to make it fetch changes because it swizzles itself into UIKit and NSNotificationCenter. Though method swizzling is somewhat of a dark art, it doesn't really have adverse side-effects if it's done right. I'm curious to know why Reveal takes such a minimally invasive strategy. In my opinion, choosing not to method swizzle will dramatically limit what Reveal can do beyond view hierarchy exploration and maybe logging. There are a lot of other tabs I'd like to add to the Spark Inspector to take it beyond view introspection, and they'll require deep linking into your app! The Spark Inspector also tries to mirror IB more closely (the sidebar panels have a more familiar feel.) It also allows you to see system views within your view hierarchy, which Reveal might be choosing to hide. Also, it seems that a lot of the items in the Reveal sidebar are read-only? (Maybe that's just a beta thing…) I do like that it has an "Application" tab in the sidebar for seeing UIApplication properties. At any rate - I welcome some competition, and it's great to see more tools being created for iOS developers! I'm planning to take the Spark Inspector beyond view introspection and NSNotificationCenter monitoring, and it'll be interesting to see where Reveal goes (and how much it'll cost!)
- allwein 13y agoI'm a current user of Spark Inspector. One of the things I saw in the Reveal demo that's missing in SI is the ability change the 3D Z-Index spacing between the views to make it a little easier to see.
- thomasjoulin 13y agoSee also the free and open source PonyDebugger by Square : https://github.com/square/PonyDebugger https://github.com/square/PonyDebugger They do view hierarchy debugging but also network loggin in Chrome Developer Tools,
- seanwoodhouse 13y agoYeah, PonyDebugger is definitely an inspiration...but we like native apps too :-)
- bengotow 13y agoThe network logging in PonyDebugger is a great feature - I use Runscope to grab and analyze API calls and the Spark Inspector for view introspection and debugging, but network logging might be coming to the Spark Inspector one of these days ;-)
- chrisdevereux 13y agoPonyDebugger is good also, but I definitely appreciate debugging apps that have had some extra love put into them. Debugging GUI code can be a huge pain, and visualising an interface's structure really benefits from a UI that goes beyond just showing the information. View hierarchy is a good example, but I'm sure there are others too. It'd also be cool if these apps could show more than just the GUI. Being able to introspect view controller state and model objects would be really useful sometimes. Like, when that intermittent glitch shows up again, being able to see aspects of the program state change over time and interactively setting properties to try and replicate it.
- ywang0414 13y agoLooks very cool! Trying it right now. Will report back.
- tszming 13y agoFree and opensource alternative: https://github.com/domesticcatsoftware/DCIntrospect https://github.com/domesticcatsoftware/DCIntrospect
- snprbob86 13y agoWould be awesome if the demo app was baked into the download. I'd love to be able to try the UI instantly without even having to load up my own application.
- seanwoodhouse 13y agoWe'll be 'pre-integrating' a few apps available on GitHub soon so you'll be able to play with Reveal by simply cloning and running those iOS apps. A full sample may be on the cards when we're out of beta.
- snprbob86 13y agoCool, but I'm mega lazy when testing new tools... The splash screen should have a big 1-click "Try Demo App" button :-)
- seanwoodhouse 13y agoNoted :-)
- chinmaygarde 13y agoThis looks awesome! I am writing my own version of a hierarchy viewer and debugger. Its a work in progress but you can check it out @ http://hierarchydetective.com/ http://hierarchydetective.com/
- suyash 13y agoIt only works with OSX 10.8? What about the others that are on Lion or older versions?
- seanwoodhouse 13y agoSorry 10.8 or higher for now.
- millerm 13y agoI'm quite stoked about this app. I've been using PonyDebugger for a few months now and it has been really helpful. It's rough but sometimes that can be enough to aid you in major ways. As for Reveal, I had it installed in two of my apps in just minute or so after seeing the post! It seems really promising. I'm looking forward to beta testing and sending my bug reports. I already have a few to send. :) Editing because I had not heard of Spark Inspector before. That also looks awesome. Are these all inspired by the Tilt plugin in Firefox? These visualization tools are so helpful. Time to go look at how much $ Spark Inspector is going to set me back.
- jongold 13y agoDoes it work with RubyMotion? Any tips for installing it for a beginner? :)
- seanwoodhouse 13y agoWe haven't tried it, but apparently it Just Works (tm). You just need to link against the framework as you would any other third party library. There is no API (yet), so no API bindings required.