Recently I posted a rant about my frustration with the glut of low-res apps that are hitting the Photography section of the App Store. There were many excellent comments on the post, including several from developers. In case you missed some of the newer ones (or just gave up because of LoFi’s wonky .css for comments that doesn’t allow the margin tag), below I’ve reposted some highlights from comments that were written by app developers. I used the nicks they provided in the comments.

From Glyn Evans, c0-developer of Format126 and publisher of The iPhoneography Blog:

In my opinion Apple should force developers to disclose the maximum size in the apps description, making this element of the description part of the approval process, and so no size, no tick in the box, and no approval.

From thescw, app consultant and beta tester:

If developers can make a flashy looking at times state of the art photography app & then lack the damn knowledge to do justice to their own hard work giving users full resolution, you are kidding yourself if you think anything you have produced is even slightly successful. The only reason many of these apps even get a good rating or sales is 1) deceit due to lack of descriptive details (resolution sizing) or 2) Teens & Tweens with iPod Touch & iPhones buying these apps to send to their friends using MMS & Instant Messengers. But the day they realize that the hard work they put into making the photo that is nothing bigger than the size of the screen they will be very unimpressed.

So these developers are taking a sneaky deceptive route which is honestly a “take the money & run” approach. For rarely will these developers ever upgrade the app, reply to an email, have a valid website, give out their contact info.

Renzo Verleysen from phoenxsoftware who develop MonoPhix and FlashPhix was the first coder to post a comment. Here are some highlights:

Why developers release low resolution apps can be explained in multiple ways.
One of the problems comes with Apple and the iPhone SDK. If you capture an image from the cameraroll you have the choice as developer to open it as an original or to “allow editing”. This means that people will be faced with a dialog which allow them to resize and crop. The maximum size of the cropped image is 320×320 if I’m not mistaking. So many developers go the “easy” way and choose this….

The next problem is indeed that some filters are too complicated to be performed in a fast way on full resolution images on the iPhone. Even desktop computers have problems with efficiently handling some graphics operations. So people develop a great app and put a lot of time in it and then find out that their filter is too intense for the iPhone’s hardware and requires minutes to apply to a full resolution image. So to get the app out in time they simply lower the resolution….

I’m not justifying the developers, but I was once in the same shoes. Luckily with the help of the Apple Dev Support engineers I managed to get full resolution PNG/JPEG support in most of my apps. The only one that’s still lacking full resolution support is iPhix, but that’s just because I haven’t had any time to update it yet. I’m eager to do so and when it’s updated it will flawlessly operate full resolution images without delaying anything.

Takayuki Fukatsu, developer of TiltShift Generator, wrote:

Lower image with 320×480 app basically has Three reason.
1: Developer is stupid.
2: App using super cpu / memory extensive processing, or developer’s skill issue.
3: That is free version and you need to pay for hi-res.

Also 1200×1600 app has reason.

1: Application is old, made on early 3G ages.
2: Backward compatibility for both 3G and 3Gs.
3: App using super cpu / memory extensive processing, also backward compatibility for 3G.

Another well know row-rez size is 320 x 427 has more serious problem for resolution. The reasons for this is …  App uses screen capture, therefore it is restricted with iPhone’s screen size. Problem is that apple doesn’t provide easy way to detect camera size or iPhone generation.

Joe Macirowski, developer of Auto Adjust, added:

What’s interesting is that it’s actually an extra step in the code to down sample an image from the library to 320×480. My only guess is that it’s to conserve memory in favor of not crashing…, but through extensive testing I’ve found that a first generation iPod Touch running iTunes in the background can easily (although slowly) deal with bitmapped 1600×1200 images from the library, and the iPhone 3GS can work with the 2560×1600 OS X wallpapers (and actually haven’t found the ceiling on what the iPad can do). I’m absolutely astonished that apps do this. It really doesn’t make sense.

The latest comment comes from Chromocam, who’s developing a series of new iPhone photography apps. In his comments on Life In LoFi, he writes:

I blame a few lines of code that developers might cling to….

Basically, dumping any view straight to memory and then from there you can save it easily to the photo library. The trick is to have offscreen coregraphics buffers, which isn’t too difficult, but it can be scary rotating and translating some big chunks of memory. And therein lies the fun….

On the Chromocam blog, he writes further:

Why would some apps like CameraBag or MonoPhix save at nice resolutions, and yet others save at 320 x 480, the iPhone screen resolution? Well, the answer is… lazy programmers.

I can’t say that I blame the programmers though. Apple has not made it particularly easy to play with large image buffers in memory. Actually, they’ve made working with images extraordinarily easy, as long as you are just displaying them and maybe moving them here and there. But rotating, applying filters, working byte by byte with them gets a little trickier.

You can read all of the comments here. As of this writing there are 26 spread across two pages, and they’re still coming in. The comments are a good read and provide a lot of insight into the frustration of the users and app developers who care about the quality of their apps and their reception in the iPhoneography community.

=M=

~~~~