Daily Archives: 9 January, 2009

You are browsing the site archives by date.

Lessons Learned Coding an iPhone Application

I found this wonderful post over at Reddit by tophat02 describing his experience developing his first iPhone application:

apple-application-store

My app is a very simple game, but I think I’ve learned enough during this process to distill some important lessons that may help you if this is something you’ve been wanting to do…

  • It’s easy to get started, not so easy to finish. That was the common theme
  • Start simple. I chose to do a simple game with a little bit of OpenGL, you may choose to do a little productivity app. Whatever it is, the goal of your first iPhone app should be to learn the ropes, not publish your magnum opus. If you spend too much time getting the iPhone to do really complicated things, you’ll burn out quickly, in my opinion
  • Don’t shell out for the $100 version that lets you push apps to your iPhone until you have AT LEAST the rough draft of your app completed and running on the simulator. There’s nothing worse then spending $100 on something and then never using it because you’ve lost interest.
  • Speaking of the simulator, beware of subtle differences in app behavior between the simulator and the actual hardware. This is especially true of OpenGL programming. You’ll have things that display fine on the simulator but not on the hardware, and vice versa. Don’t give up, though! It’s usually something simple, or, to put it another way “UR DOIN IT WRONG”
  • Don’t be afraid to charge for your app if you think it’s useful or entertaining enough to people. 0.99 doesn’t deter that many people, although you may get harsher reviews than you would for a free app; speaking of which…
  • Don’t be afraid of reviews! This is still, after all, the internet, so the Greater Internet Fuckwad Theory is still in effect. Just filter out the “this sucks!” ones (as well as the “this rocks!” ones, for that matter, they’re equally unhelpful), and just focus on the reviews that give you constructive criticism and ideas. Use those to plan your next release. Wish me luck with this, by the way :)
  • Make a “next release”, even if you only fix a bug or two. You want to learn the WHOLE process here, and that includes updating your app. I haven’t had to do this yet, but I plan to within the next month
  • If you’re new to the whole Objective-C/Cocoa thing, but you’re also a pretty good programmer, using this new environment is going to bug you for a while. Most of us have an aesthetic sense that our code is pretty or at least has a good architecture. When you first start out, everything will feel like a hack. Just let it be. It’s a small app, not an enterprise application mantained by 100 people. Who cares if it’s hacky as long as you learn something?
  • But don’t confuse hacky with “doesn’t work”, of course!
  • Finally, “just do it!” The HARDEST PART, I’m telling you right now, is not the programming or even finding someone to do a good icon, it’s getting through all of Apple’s damn red tape. To distribute apps on the app store (especially paid apps), there are a myriad of tax forms, contracts, certificates you have to download to your computer and put in the right place, complicated instructions to prepare your app for distribution, the list goes on and on. To top it all off, you won’t be sure you did everything right until about a week when Apple publishes or rejects your app. Don’t despair, just work through it and get it submitted. Once you do it once, the next time should be much easier!