Monday, March 14, 2011

Massage Therapists Notebook: Lots of Firsts for Us

The App Store image for the app.
At the risk of jinxing the app approval process we wanted to get some of our thoughts down while we are still on the post-submission-adreniline high, before reality sets in.
Some Firsts

  • This is our first iPad application for ourselves
  • This is the first (non-contract) app we've written that is specifically for bringing revenue to the firm
  • This is our first large Core Data integration
  • This is the first time we've spent more than 20 hours strictly on "polish".


Tools We Used


What We Learned
Read the Apple Documentation. In general, especially if one of the system apps does it, the iOS SDK has lots and lots of functionality. At the beginning of this project we relied only on Google searching and stackoverflow.com to get over each hump or past each block. However, by the end, we would take one or two hours each day to read through one of the Apple guides. Very often, we discovered a built in piece of code or SDK function that let us go back an rip out whole methods, or even views.

Use a bug tracker or at least a timer. We feel like our productivity shot through the roof after we implemented FogBugz. Being able to write down all of the tasks and then being able to close them out was so satisfying. Also, having FogBugz record how much time we spent on each ticket was a real eye opener as to how bad we are at time estimations.

Use Version Control. Sometimes we went down a rabbit hole and couldn't get out for weeks. Initially we just used the XCode snapshot feature. This made us hesitant to ever roll back because we would have to roll back the whole project. Once we started using Mercurial and could roll back each file as well as see the differences, we did much better. Additionally, near the end, we were tired and prone to typos. Being able to see in the version control that we had accidentally deleted an extra line or semi colon kept us from going completely insane.

Just ship something. Honestly, the substantive changes we have made between what was submitted to Apple today and what we had on our hard drive last Summer are not that great. The code is cleaner, we are a better programmer now, and there is much more polish. However, the functions are largely unchanged. We could have shipped this a long time ago and then iterated with actual user feedback.

No comments:

Post a Comment