top | item 4455110

PonyDebugger: Chrome Developer Tools for Native iOS Apps

278 points| wlue | 13 years ago |corner.squareup.com

44 comments

order
[+] jazzychad|13 years ago|reply
I saw a demo of this a couple months ago at a small gathering. I was blown away. Another feature demo'd at the time was the ability to make obj-c calls in the chrome javascript console and have it be interpreted in the app runtime. e.g.

UIApplication.sharedApplication.delegate.navigationController.navigationBar.tintColor = UIColor.redColor;

and the app's navbar changed color. Is this still possible with this release? I haven't been able to try it out at work yet. Thanks for this awesome tool.

[+] mikelikespie|13 years ago|reply
Interactive console support is coming. We need to work out a few kinks before it is ready to go
[+] rsbrown|13 years ago|reply
This looks like a really valuable tool to have in the iOS development arsenal.

It also underscores my loathing for cutesy, irreverent naming conventions.

[+] mikelikespie|13 years ago|reply
The name came about because our internal HTTP library is named PonyExpress, and this tool was originally part of it. At least it is google-able, right?
[+] eridius|13 years ago|reply
There's only so many serious business-y names you can give to something like this. Those names are awfully generic. PonyDebugger is great because it's unique, googleable, and memorable.
[+] mikeash|13 years ago|reply
What would you call it?
[+] scottostler|13 years ago|reply
Awesome, will definitely give this a shot. It's great to see iOS development tools pick up tricks from the web world.

Personally, I can't wait for a Firebug-like tool for live debugging and tweaking of UIView hierarchies.

[+] mikelikespie|13 years ago|reply
PonyDebugger could be extended to support this very easily. We pretty much codegen "controllers" for all of Chrome Developer Tool prootocols's domain. One could map the UIView hierarchy to the DOM by just implementing a delegate.

You can look at the "*DomainController" classes here for examples: https://github.com/square/PonyDebugger/tree/master/ObjC/Pony...

For implementing DOM-like viewing it would require you to implement PDDOMCommandDelegate defined here: https://github.com/square/PonyDebugger/blob/master/ObjC/Deri...

Docs here: https://developers.google.com/chrome-developer-tools/docs/pr...

[+] devinfoley|13 years ago|reply
It seems that the state iOS development is improving at a very rapid pace. I can't wait to try this out.
[+] mikemurray|13 years ago|reply
Thanks for this! The Core-Data Browser will be especially useful for me. Verifying data was correctly stored had been somewhat of a pain before.
[+] alexbell|13 years ago|reply
This will improve my life I think, installing now and thank you!
[+] mikelikespie|13 years ago|reply
Glad to hear. If you run into any issues, please file it on the github page. We tried to simplify it a lot, but there are a lot of moving parts and we can improve even more.
[+] se85|13 years ago|reply
Wow, I never thought it would be possible to use the webkit developer tools for a completely different technology stack to such an extent.

Impressive to say the least.

[+] est|13 years ago|reply
This is really cool for my projects, however, are there any other tools that can be used ananlyze other binaries without compiling?
[+] Codhisattva|13 years ago|reply
Impressive looking tool. I hope the intern is getting paid because he's adding a lot of value to Square and the dev community too. (Seems like a chance to plug http://gittip.com/ now!)
[+] BHSPitMonkey|13 years ago|reply
I believe it wouldn't even be legal for an unpaid intern to be used for "actual work", as they're supposed to strictly be involved in mentoring/training activities. Hopefully Square knows that, and wouldn't try to treat its employees unfairly in the first place. They seem like a great company.
[+] wlue|13 years ago|reply
Definitely getting paid. Square treats us interns well. :)
[+] boerni1234|13 years ago|reply
It's also possible to inspect HTML/JS on WebView based apps (phonegap)?
[+] devonbleak|13 years ago|reply
Interesting tool.

I've done something like this in the past using Charles or Fiddler and the proxy settings on my iOS device.

[+] tylerc230|13 years ago|reply
What is the advantage of this tool over Charles?
[+] eridius|13 years ago|reply
Charles requires you to proxy your device's networking through your computer, which is annoying to set up, and doubly-so if you need to sniff https. PonyDebugger looks great because it doesn't interfere with the normal networking behavior.
[+] spearo77|13 years ago|reply
Browsing CoreData stores on the device is very handy.
[+] goggles99|13 years ago|reply
Very cool - but seems like more of a monitor than a debugger (titles are always over-sensationalized I suppose).