Review: Charles Proxy - Useful development tool; ugly interface
During the testing of one of my projects, our QA folks mentioned a tool called Charles Proxy that they used to throttle the connection speed down to 3G speed as some issues can only be reproduced on slow connections. I pretty much ignored the product as I wasn't assigned any bugs related to this. A few weeks later, I was assigned a bug dealing with 3G. As I really didn't want to try to reproduce the issue on a device over 3G (the iPhone simulator makes it easy to reproduce issues, but as Apple points out, there is nothing like testing on a real device), I downloaded Charles Proxy and gave it a whirl. Unfortunately the limitations in the demo quickly required me to cough up the $50. As much as I was reluctant to cough up the money for an app that doesn't look like a Mac app, it has already paid for itself.
Throttling down the connection speed seems to be one of the small features of Charles Proxy. It is a full tool for analyzing web traffic. When developing iPhone applications that talk to web services (which is pretty much everything these days), being able to look at the packets, headers, responses, XML results, and JSON results. In addition, it gives timing results for the requests so that I can see where slowdowns exist.
I've used it to determine that a client's server was slow (they reported poor performance), that a different client's web server wasn't doing compression on text/plain files, and to see where I made incorrect requests to the server.
The major downside of the software is that the interface doesn't look like a Mac app. As I've written before, I really dislike apps on the Mac that don't look like Mac apps. Cross platform apps just aren't my cup of tea.
Pros
- Extremely useful for iPhone app development involving web services.
- Lots of information about web requests; requests, responses, headers, etc.
- Easy setup; it auto-configures the Mac proxy settings when it starts and changes it back when it quits.
- Ability to throttle down the connection speed.
- Lots of settings.
Cons
- Ugly Mac interface.
- A bit costly. (Maybe not for a developer tool.)
Summary
If you're developing iPhone (or even Mac apps) that involve web services, Charles Proxy is an absolute necessity. If you ignore the ugly interface (I'm not talking about the layout, just the interface elements don't look very Mac like), the app works well and gets the job done. It could be prettier, but the tool is extremely useful.