At the end of last week, the iPhone application I have been working on was released. It’s the free CBS News application for the iPhone (iTunes link), and it’s the best type of application from a developer standpoint: an application to be proud of. I developed the code that processes the APIs we ingest, and I also created the web views that display the data. Fortunately, that means I didn’t have to create the Objective-C that ties it all together (not that there’s anything wrong with Objective-C).
The great thing about this application is that it just works. Data is cached, so you see results quickly while updated news is loaded in the background. Tweets in the Twitter section that contain links to CBS News articles, blogs, or videos can be tapped on to directly view that content in application. Videos from top CBS News shows such as 60 Minutes and CBS Evening News with Katie Couric can be played directly in the app. Even the image galleries are searchable.
The reason that I say this is an application worthy of pride is because of all the “magic” that happens behind the scenes to make this application work. Most people who aren’t developers will use the Twitter section and tap one of the CBS News tweets and then tap on a “(view)” link to read the story. The flow is simple enough, it makes sense, and why shouldn’t you be able to view that story in the application? And that’s exactly right. There’s no point in including a Twitter section that just ends up always linking to the full CBS News site or that only includes CBS News tweets. That wouldn’t be much different from an RSS feed. Similarly, having all the in-story links open a new webview that just loads the next CBS News article from their site would be illogical and virtually unusable from the end-user perspective (and, really, that’s the perspective that matters).
Of course, the developer perspective is a lot different. An inexperienced developer might just assume we’re using some special Twitter API that includes metadata with article IDs or something that would make this really easy. A more experienced developer will know things are rarely that easy and will imagine the code involved with following links from TinyURL, bit.ly, and other URL shorteners, possibly to an RSS feed which then points to the real article. And maybe that developer would even consider that links to videos point to Flash videos, which aren’t usable on the iPhone. Anyway, there is even more involved than that, but all I’ll say is that this “magic” is complicated code that makes the end-user enjoy his/her experience and makes the developer proud.



