Eg. Another stupid Fart app or something of that sort. Not for money or recognition or anything else except maybe the experience you get from it. Are there any caveats one should be a aware of before deciding to go through with it?
migrated from stackoverflow.com May 31 '11 at 18:48
I would specifically suggest NOT doing that for a couple of reasons
1) I think the most convoluted part of app development is the submission process, and that if you encounter that with an app you don't 'care' about, it's just a headache, whereas if you're going through it with an app you've given time and effort to, you'll be 'rewarded' with a successful submission
2) There is enough clutter out there already. Do you want your real apps competing for eyes with the 'simple' ones?
Publishing on the App Store requires enough knowledge on tools and programming to produce a non trivial app (trivial ones get rejected).
If you are looking into iOS development, publishing an app is likely to present challenges beyond those that you find in books or experiments of your own. It's also something that you can mention on a job interview. Anyone can buy the developer license, but only getting published proves you did your homework.
I don't know what is your case. For me, it took months and it was hard, but I enjoyed it. So that's my reward right there. If you don't do it for the shake of it, you can as well look for inspiration somewhere else.
Yes, you can learn a lot just by creating an initial application for the App Store. This is exactly what I did, and if I had it all to do over again I'd approach this the same way.
As I describe in my answers here and here, I built and released an open source application for the launch of the App Store three years ago. I wrote this entirely as a learning exercise, and released the source code so that others could pick up things from it as well. It taught me lessons about OpenGL ES, basic UIKit controls, networking, and the application submission process (back when that was even more Voodoo than it is today) that I would not have picked up from a book or online tutorial.
I chose to build a molecular modeler, which is a slightly more challenging project than a simple sound board application. I did this because I had an interest in seeing whether something like this was possible on a mobile device, and because did research that could benefit from having something like this out there. It took about three weeks of nights-and-weekends work to get the initial version together and submitted for review, and I've been tinkering with it ever since.
Releasing it for free made me feel more relaxed about it, because I didn't have a responsibility to provide value for a paying customer. Negative reviews still hurt, because I take pride in the product, but they don't make me feel as guilty as they would had the person paid for the application. Also, by releasing my first application for free, I got to feel out the marketplace and get all of my business infrastructure in place for when I did want to charge for something.
That little learning experience application will have been downloaded over 1.5 million times as of tomorrow, so I consider it a resounding success. Many of the people I now regularly correspond with as developers first contacted me as a result of seeing that application out there. My subsequent for-pay product wouldn't have done as well as it did, had I never released that free application.
Also, anyone interested in consulting within the iOS space really should have an application on the App Store that they can point to. Too many companies and individuals have been burned by consultants that promised the world for their iOS applications, only to be found out as having no real experience (or worse, coming to Stack Overflow for us to do their job for them). I get regular consulting offers sent to me simply due to people seeing my application on the store.
Therefore, I highly recommend creating a first application to learn the ins and outs of the platform, but I suggest challenging yourself on this. Find an area that you have unique personal experience with and create an application that draws from this. Don't just put together yet another to-do list, but find a niche for yourself and make an application that you can be proud of. Strip that down to the minimal number of features required to be a functional 1.0, and develop a free application based on that. If you also release the source code and write about your development process, you can also stir up a lot of traffic for your own website when you do this, which can pay off later.
But a trial-balloon/test app has to be unique and useful enough that Apple won't reject it out of hand. You should try to make an app you would find at least a little useful, or the exercise will be of much lesser value (e.g. it's better to debug stuff you care about). You can always remove the trial app from sale after your friends and family download it to "oooh" and "aaah" over your being a real iPhone dev.
That said, there are lots and lots of steps that have to be done exactly right to get an app properly provisioned and submitted and approved for the App store; and a trial run can be quite valuable in making sure you've got all the steps figured out before a deadline approaches. Companies have missed deadlines by overlooking one step, and not knowing which one.
I once put a small cheap easy app in the store as a trial run, after being away from iOS development for awhile, and (re)learned enough from the experience to greatly lower the risk of making some mistakes on a much more important app with a much more critical deadline that I was about to submit for a major client.
I've heard of contracting and job opportunities being offered as a result of a small easy free (but non-buggy!) app actually being in the App store.
I once forgot to remove one of my test apps from sale after Apple approved it... and it sold almost a hundred copies.
Why try to publish a useless app when, for the same effort, you can publish a useful one?
There may be half a million apps in the app store, but a large number of those are poorly written, relatively useless, and just not worth bothering with. You'll have more fun if you know that people actually enjoy using your app, or are able to do something that genuinely helps them. Perhaps more importantly, you'll get more and better experience supporting your users, getting feedback from them, updating the app, etc.
Developing an iPhone app - like almost any programming task - is very much worth the experience to a programmer. Publishing it, in my opinion, not so much, unless the experience you seek is specifically with the App Store approval process. If you want feedback on you app, show it privately to a few of your peers and/or do some ad-hoc distribution. That way, you'll get feedback on how well you did without the faff of the App Store Police. Even with the wider audience, you'll probably not get that much more feedback, and most of what you do get will tend to be unreasonable moans or gushing praise - have a look at the reviews section of almost any app for examples.