Indie Developer Notes On Lessons Learned Building An Application For The iTunes App Store
During this process I also realised I had to compile the application on a Mac based machine so I ended up purchasing a 13” MacBook Air – and of course an iPad 2 as that was going to be the target system. Up until this point I had always leaned towards Windows but was pleasantly surprised how easy it was to transition across to the Apple platform (although I haven’t given up on PC yet!) although I still use a PC on a day to day basis. The machine was quite expensive but if you’ve thought about developing applications for the App Store you need to prepare yourself for these costs and those that are yet to come.
LESSON 1: There is no low-cost point of entry for developing games for IOS as an indie developer
For the development environment I signed up for an Apple developer account and enrolled in the iPhone Developer Program (IOS Developer Program requires an annual fee – the iPad was linked in with the iPhone program) and signed up for iTunes Connect which is the partner-facing website for the iTunes store. The IOS Developer Program required a number of documents to be sent to Apple (as I created these accounts under our business account) however the process was completed in just under two weeks.
Once the process was complete I could download and begin to explore the Apple development application XCode and was making good progress but it was taking some time and there were a number of updates to the IOS platform to contend with along the way. Looking around for alternatives I discovered a number of tools which were describing themselves as cross-platform development tools and which indicated they may speed up the development process whilst offering more flexibility about the target platform.
LESSON 2: Learning a new application development environment takes a lot of time
GameSalad was the first such tool I looked at but, alas, it was not for me. It was straight forward enough to use but being an “old-school” developer I knew I needed something else. At this point I turned to Corona, from Anscamobile, which utilises LUA at its development end. A few months earlier I had produced a small application in LUA for the Creative Zen X-Fi2 (see A Closer Look At The Creative Zen X-Fi2 Part Three) and had found the system quite agreeable so Corona was quickly chosen and I got to work. Corona is chargeable if you want to build applications on it however there is a trial period where you can build application and run them locally on your device or using the included emulator. Corona doesn’t have a big presence over here in the UK, which is a shame, as it’s a really neat platform. If you’re a UK based developer using Corona, or interested in Corona, let me know I’d love to hear from you.
LESSON 3: There are always other ways to achieve what you want to do so don’t stick with the first one you see
The application itself took a little while to put together as I wanted to build a framework I could reuse for future projects, and because this particular application requires a hefty bunch of graphics which were all created using Photoshop and Illustrator. Audio was required too which took a lot longer than first anticipated – we spent quite a bit of time recording voice based audio but decided against it at the last moment.
LESSON 4: Everything always takes much longer than you first expect
The application itself is called “Odd Spotting” and is a fun little app, if you like puzzle games, which challenges you to find the odd one out from a screen of objects ranging from umbrellas and candles to ice-creams and sandwiches and you get awarded either a gold, silver, or bronze star depending on how quickly you achieve it (some of the later levels are pretty tricky so let me know if you earn gold stars!). There are 64 levels set across three difficulties and a great deal of time was spent trying to balance the game play so it had some logical progression and you can choose to play as one of two characters from our Star Cats project: DJ or Jelly.
One of the real obstacles to overcome during development was drawing a line under the development, performing as much testing and code checking as possible, and taking the decision to call the particular version complete.
I do enjoy the development process and the temptation to add features, refine graphics, change the way things work, and a host of other things might have meant I would still be working on the application even now but I had to take the decision to stick to the design and build new ideas and enhancements into future versions.
LESSON 5: Design, design, design and stick to the design
Some of the ideas for enhancements include a casual gameplay mode which randomly places any one of the available levels, a bonus mini-game, more characters to choose from (at the moment you can choose to play as DJ or Jelly), even more levels, and a number of refinements on the interface itself.
LESSON 6: Finishing the project should be the first priority – everything else can happen in a future update
LESSON 7: Test thoroughly and when you’ve finished exhaustive testing get others to test for you
At this point, I had to prepare a range of icons, other images, and descriptions which were required for submission to the iTunes store via the iTunes Connect service. I also had to register the Corona environment, by signing up for an IOS Developer Account, and recompile my application under the new license which, as a process, was a little more drawn out than I would have liked.
LESSON 8: It’s not a sprint – it’s a marathon – so keep some enthusiasm and energy in reserve
There were some hoops to jump through in making the step from compiling and running an application locally on my iPad to producing an application I could upload the iTunes Connect service. These largely centred around the Apple iOS Provisioning Portal which required the creation of a development certificate, a distribution certificate for the application, registration of the development device, the creation of an App ID, a development provisioning Profile, and distribution provisioning profiles. A lot of this information and how it all inter-relates i available through the iOS Development Guide (see Becoming a Member of the iOS Developer Program) and it’s worth reading it thoroughly – I wish I had read it up front as it would have saved a lot of time.
LESSON 9: Read the seemingly boring stuff right up front
On 6th July I created a submission entry listing for Odd Spotting and uploaded the finished binary and received an email saying “Your app status is Waiting for Review” so I waited with my fingers crossed and, to be honest, I rather expected an initial rejection as this was my first app, but on the 14th July I received another email “Your app status is Processing for App Store” and ten minutes later I received another email saying “Your app status is Ready for Sale” and sure enough a visit to the iTunes Preview store showed Odd Spotting in all its glory, see iTunes Preview: Odd Spotting.
Lesson 10: Once submitted – don’t keep checking your email every five minutes. It could take a week or longer.