So we are uploading to the App Store. What a nervous time, what if Apple dont like my work? How devasted will I be? How can I show my face around town. All these self-doubting thoughts ran through my head and guess what happened. After a week sitting in idol, Apples review team found a bug testing the app on the iPad and it wasnt that bad. You weren’t expecting the fairy tale were you?
Anyways knocked back first time round, really all I could do was think “shit oh well, lets get cracking on fixing that up” and now while we are at it, lets create the app to scale up for the iPad.
You see this app was only targeting at the iPhone, so I didn’t think to even test on the iPad, I had fired up the simulator to take some of the mandatory Apple imposed screenshots, though it never crossed my mind. Except for that time when I thought, maybe I should make this for iPad too.
Lesson number 1
If you are developing an app regardless of the device you are targeting test it on both iPad and iPhone, simulator to start with but once you get down the track more, you really want to put it onto your devices. My app had the target device listed as iPhone. So I am unsure why the Apple review team decided to test on the iPad. Regardless I could argue with them, but I took the approach, well lets get it working on both.. It cant hurt.
Lesson number 2
Prototype functionality prior to getting to code. Yeah it makes sense now, but I was so keen to get the app up and running that I pretty much knocked up some rapid wireframes in Omni Graffle and sent on a lose spec to the developer. They had questions and lots of them. The next app I have started designing in Axure to get an interactive prototype accompanied by a functional specification to ensure I have got my head around some of the preliminary foundation work.
Lesson number 3
Research the Apple iOS Developer Guide. There is so much information in there that you cant possibly go through it all prior to starting the design. Though it is very useful to jump back to when you are stuck with a design or development decision.
Lesson number 4
Create yourself a test matrix. A simple excel spreadsheet with test name, steps and pass/fail check box will be your friend. I didn’t do this and as stuff, I would forget bugs only to stumble across them again at later stages. A record of what tests you have run on what device and how that test went is invaluable to your sanity while getting the app ready for release. For my next release I will be using a test matrix and the whole testing process will be a lot more structured.
So overall to sum up my experience with the first app, it was good but I have a lot better understanding of the amount of effort it takes to get a good app into the store, so now I need to aim for that GREAT app.
So what will you do differently this time around?
- Plan and Sketch up the app. I did this but admittedly a bit too rushed, but check out the view from the office I have been a bit distracted watching the world go by.
- Build an interactive prototype. This helps to give you a deep understanding of how this thing is going to be used. I found a great pattern library for Axure that Im bursting to use. http://axureland.com/axure_blog/entry/mobile_prototyping_with_axure_rp_6.0
- Spend the time to write the functional specification. Regardless of who is building the thing, this document helps you stay on track. Sure it can be altered along the way, but treat this as your roadmap and you will head in the right direction.
- Test, Test and more Testing. I under estimated how much I needed to test and the level. The iOS simulator was good for initial view and sanity checks, but nothing beats picking up the device and running the app through its paces.
- Document those results. When testing document what you are testing, use steps and if the scenario passed or failed. This will help your systematically iron out those bugs.
I hope this helps you to start getting running with your next application, once I start to refine my processes and tools, I hope to contribute back to the world with a series of downloads and references to things that helped me out.