As I said in an earlier post, we are in the early stages of producing an iPhone app. Since I will be doing most of the development of this app, whatever it turns out to be, I've been pretty immersed in learning Objective-C, the iOS environment, XCode, etc.
I produced a testbed application running the iPhone simulator on my iMac desktop. First things first, I wanted to verify that I could produce a list view of open opportunities from a search string passed to our server via our API (in development as well), and I wanted to view thumbnail images with the listed jobs, where appropriate. It was pretty easy to get this to work in my test application, but there was definitely a problem. When scrolling rows, there was a very noticeable delay happening when moving across rows that contained a thumbnail image.
I had some guesses as to what the problem(s) was. A couple were close, one was way off, but the point of my post is that finding the issues and then also determining how to resolve them was actually far easier than I would have expected.
Caching the images, and also loading them asynchronously, might seem elementary to experienced mobile app developers. You have a finite amount of storage space, you don't have a local database to query, but the visits out to the web server are costly. They need to happen, but they need to be infrequent, and they need to not hinder the user experience by having the application wait for content delivery. But consider how long it would take even an experienced developer to arrive at this solution the first time, without the benefit of the experiences shared by development community that exists everywhere on the internet. I found solutions (and several code examples) very quickly, and what could have been a big hurdle was relatively painless. I'm sure this is step 7 of 1000, and they won't all be this easy, but I'm happy about how it went.
I've done a large amount of proprietary development in my time. Nowhere to go for help, just an instruction set and a goal. I have to say, I like this development world quite a bit more. I hope that some of the things we create and document can similarly help others in the future.