June 6th, 2009 by Mike Fulton
Posted in Apple, iPhone

I’ve been experimenting around a bit with programming for the iPhone, and I’ve reached the point where I’d like to do something real, instead of yet another variation of “Hello World” or a test of some API call. 

I’m not really that concerned with the issue of how to create an application.  While I don’t care for Objective C at all, I can swallow my dislike long enough to get stuff done.  And for the most part, Apple’s APIs are sufficiently straightforward and there are enough examples that I don’t foresee any problems in figuring how to get at the goodies.

The problem I’ve got is trying to decide what sort of application to create.  Part of the problem is that, to be honest, I’m sort of approaching this whole thing from what might be considered the wrong direction.  Normally, my modus operandi is that I identify a need of some sort and then design a program that addreses it.  The “need” could be something simple like wanting to rename a bunch of files using search and replace, or just about anything. 

 The point is, the “need” sort of inherently defines what your program needs to do.  But in this case, my “need” is to “write an iPhone application” so a crucial part of the equation, namely exactly what that application is supposed to actually do, remains undefined.

Programming for a small mobile device is not really that much different from programming for a regular desktop computer.  What is different is designing an application for a small mobile device.  Designing a program isn’t the same thing as actually doing the programming.  Designing is about deciding what functions the programs should have and how they should work.  Sometimes designing and programming are interleaved together if the same person is performing both tasks, but they are still separate problems.

Desktop applications come in all sizes and shapes.  Some are large with more functions than you can keep track of, like Microsoft Word, while others are very simple and very small, and aimed at doing one specific task, such as YouTube Downloader.  MS Word has so many functions that even experts who’ve used the program for years and years still find themselves discovering something new from time to time.  On the other end of things, programs don’t get too much more simple than YouTube Downloader.  It has two functions.  You can download a video from a YouTube webpage, and you can convert already-downloaded video files from SWF to MPEG-4.

Complex applications like MS Word are not always that much more complex to design and program than smaller, more simple programs.  They can be more complex by orders of magnitude, but it really depends on how much one part of the program interacts with and depends on other parts of the program.  Some large programs could just as easily be broken down into a dozen smaller individual programs, but it’s simply more convenient to keep everything together in one package.

Fortunately for developers, Apps for the iPhone tend to be “simple and small” rather than large and complex.  They do vary somewhat in complexity, but most are specifically targetted towards solving one specific problem. 

Unfortunately, I’m having some trouble figuring what sort of problem I want to solve.   Meh… that’s not true.  I’ve had plenty of ideas.  The problem is every idea I come up with, it seems like 10 other developers have already done it first.  I’m not looking to make it rich off iPhone application development, but I would sort of like to figure out an application where a few people don’t mind dropping $0.99 to $2.99 for something they find useful.  But if my application is #11 to join the marketplace, and many or most of the others are free, nobody’s going to want to buy mine.

So, I’m still brainstorming.  Hopefully a bright idea will find itself coming my way soon.  Of course, I’m entirely open to suggestions and requests, but keep in mind that I’m looking to do something that will be useful and interesting to a lot of people, not something that will benefit just one or two people.  Unless, of course, y’all wanna pay me a lot of money.  In that case, I don’t care.

Leave a Reply