One up…

So yesterday Apple finally approved Traversity after 2 weeks in the App Review process. My education with regards to developing and deploying an app on the iPhone platform is more or less done. Save for bugfixes and feature improvements, Traversity should be on hold until I get the next app out.

Still, important lessons were learnt and it was a worthy project as a first foray into the whole thing. Go Dutch was not such a good platform, but I’ll save that for later.

So what did I learn?

  • MVC works. Bringing the model portion of the project into a stable state proved invaluable in speeding up development time with regards to the Views and the Controllers. There wasn’t much context switching with a rock solid model. It became just an exercise in getting the model API right and having the views and controllers happy together. 1 week of intensive model development = 2 weeks of pain free UI work. Traversity took 3 weeks to complete.
  • UI design should be functional. And 2 simple reasons at that. Familiarity and performance. If you really need functionality that does not exist in the system, try to logically extend existing controls. Make sure it makes intuitive sense and follows the HIG.
  • It helps if you can find a good designer when it comes to icons. UI helps too.
  • It is a bitch working alone. Between writing code, and designing the app, you still have to work on the publicity, the support options, the website, etc.
  • Version Control is your friend.
  • Its actually really fun!
  • Waiting for app review totally sucks. The rush to complete everything is just suddenly replaced by restlessness while you wait.
  • #ifdef means to remove the #define if you want to disable a feature.
  • Erica Sadun’s APIKit roughly catches stuff. Better if you just do otool and nm against known private APIs.
  • Its easy to talk about what you want to do, but eventually the best measure of everything is whether it is shipping. Prototypes are useless apart from saying that an idea exists.
  • A good release workflow helps speeds things up.
  • Strike a good balance between best practices and hackery to get things shipping.
  • Go back and do better by the hacks once you ship.

It was a fun experience nonetheless and I will be applying what I have learnt into the next app that I’m planning.