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.
I think you are a little harsh about the aesthetics of the UI. Its’ a developer tool with menus that seem to be organized well. As a developer, I would think that you would respect cross-platform apps with feature parity that allow for collaboration across different smartphone OS’s and development platforms. There is a whole world out there of Windows, Android, Linux, etc. Plus, I believe this tool is Java based, they probably have only so much they can do with the UI. I personally think they should just focus on bringing the most useful and well organized tool to all platforms for all types of mobile and web development.
Why shouldn’t we expect a decent UI for a developer tool? Java apps generally look like garbage on the Mac and I don’t think there is an excuse. There are ways to make the core cross platform and make the UI specific to the platform.
Charles Proxy is an excellent tool and I’m not going to stop using it because the UI is ugly.