EDIT: I should note that I’m still open to writing iOS apps for people who want to pay me to do it. However, for my own personal projects I’ve gone completely off the platform. This blog post goes some way to explaining why…
I’ve been asked this question several times as I’ve spoken to people online and offline often about releasing iPhone applications. Projects I’ve talked about in the past:
You set a destination train station and the distance before you arrive that you want your alarm to go off on, and the app will automatically wake you from your slumber before you arrive. Some of you may have heard me go on about this app I helped some friends out with in 2010/11. I believe the Android port is still on Google Play (whether it still works or not is another question!). I’ve tried to port this to iOS on more than one occasion…
You enter a start amount of foreign currency and add transactions over the course of your trip/holiday/vacation to see a running total. Once you get back home you tap a button to see what you’ve got left is worth in your home currency.
Touch-based Strategy game/RPG game of some description
I’ve had a *lot* of ideas for these, ranging from a medieval battle system to just 90s style RPG storylines
So… why didn’t they happen?
As some of you will see from my LinkedIn page, during my second year at university I spent good money learning how to develop iPhone apps properly using the iOS4 SDK. So, it certainly wasn’t lack of ability or knowledge that prevented me from actually releasing something. These were the main issues:
Not withstanding the need to buy a Mac to begin with (as it’s the only thing XCode will run on), when I started trying to create iPhone apps, it was about £35-40 per year to release an application on the iPhone App Store. Granted, it was annoying you still had to pay this subscription just to test on normal devices (you have to get Apple’s permission, as they issue a certificate that expires after a year for each device you want to test on) or give away apps for free, but this wasn’t insurmountable. If your app sold well it’d cover the cost for a few years and if it didn’t then you didn’t make a big loss.
Now my understanding is it costs $99 (approx £65) per year and you’re competing against millions of other applications that are probably going to appear a lot more prominently (and in any case, there’s a growing trend of paid apps are decreasing in popularity in favour of free ad-supported ones). This is making the case for releasing apps as an indie/solo developer a lot less compelling (and you need to be very rich and have the patience of a saint to publish open source iOS apps!).
Because you have to develop things in exactly the way Apple insists, checking your code is exactly as Apple want it takes time. Plus, learning new iOS SDKs and all their quirks and foibles sucks time out of your life for very little pay-off as you can’t reuse what you’ve learned on other platforms. Speaking of which…
Arbitrarily moving the goalposts
With almost every single version of iOS Apple seems to make fairly odd decisions about what their developers want to change. Though I can see the thinking behind some changes such as increased battery life, making use of in-built services, etc, some changes arrive for no obvious reason.
An example I could use is the CommuteAlarm project that I had spent a considerable amount of my time working on. I made use of the iOS5 map widget (which used Google Maps in the iOS5 SDK) to locate rail/metro stations correctly, provide a circle overlay you expanded/contracted with a slider to work out where the alarm would go, and changed in scale if you pinched and zoomed on the map. You could also see a list of all the alarms you’d made.
However, before I finished the app ready for approval the new iOS6 SDK was released to developers. I took a look at this hoping that Apple’s arbitrary decision to switch maps providers wouldn’t affect my code. That idea turned out to be very optimistic indeed!
My choice was to either accommodate Apple’s arbitrary decision to change maps providers by completely rewriting my code or try to find a way of using an unsupported Google Maps control …which would also need me to completely rewrite my code. The final nail in the coffin was new functionality in Siri that enabled users to set location-based reminders, which effectively meant that the app I’d been working on for three or four months was rendered pointless by a new free part of the OS that would be in wide usage within a few weeks of launch.
I mentioned this a moment a go, but you can guarantee that if you have a great idea for an app someone else probably has already. If you think you can sell that application, think again because there’s already half-a-dozen dodgy-as-hell but free versions knocking around on there too. This to me means that paying $99 a year doesn’t make sense unless you’re planning on releasing dozens of applications (that re-hash existing apps but add something novel) and making a big deal about them on social media sites where there’s a fighting chance they might actually get noticed.
The Android equation
Now, let’s compare that to the Android proposition. To put apps on Google Play you only pay £20 once in your entire life and then can post as many as you like. This means that even if you are rehashing the same ideas in novel ways or your app completely flops it costs next-to-nothing and is ready for people to use as soon as you release it. A new SDK obsoleting your apps doesn’t screw you as hard as Apple because you haven’t had to pay for the ‘privilege’ of seeing it and it takes 1-2 years to become the majority-used version anyway. And of course, if you want to open source apps for Android you have no problems doing so.
It’s true that on iOS you wind up with more polished applications. But my present thinking is that you’d expect that from people spending such a huge amount of money developing applications, rewriting their apps to work with new OSs and going through a lengthy approval process. But it costs so much more if you just want to test out an idea or happen to be a lone developer that just wants to put something out there for people to use.
Where are they now?
After dying a little inside, I decided to shelve the project. I probably still have my code floating around on a hard drive somewhere, completely useless to anyone because it won’t work with iOS6 or above.
I’m sure anyone who’s used an iDevice for a few years can remember at least one occasion where they’ve seen the functionality of some apps effectively duplicated in iOS itself or mysteriously disappear when a new version of the OS comes out. That’s kind of what happened here, only my app never got its ‘time in the sun’ despite the stupid amount of time and money I put into making it happen. The phrase ‘soul-destroying’ just doesn’t quite cut it…
I killed this project in the early stages of development. Though in hindsight I could have actually knocked this up relatively quickly and released this, the CommuteAlarm fiasco had made me pretty disillusioned with iOS development by this point (to the point I’d cancelled my iOS developer account so I could be sure I wouldn’t be tempted to waste any more of my time or money on iOS projects). I did play around with the idea of releasing it on Windows Phone for a few weeks at one point, and may yet use the idea for my first published Android 4.x app. We shall see…
Touch-based Strategy game/RPG game of some description
I had a few ideas for these, but they never graduated beyond a few notes and pieces of paper I wrote on. I’m working on a futuristic sci-fi RPG using Python/Pyglet though (based on a game I wrote at sixth-form college) which I intend to open source some time before the end of this year.
UPDATE: Sour grapes?
I’ve been asked since I wrote this article if I regret the decision to devote so much time and effort towards iPhone development. I would have to say that without a second’s hesitation that this was still a worthwhile experience and something I enjoyed doing.
Sure, it annoyed me and cost a lot of time and money. However, it led me to explore the Apple ecosystem (something I wouldn’t otherwise have done), learn Objective-C and the MVC models (again, things I would never have had any experience with) and also how to adapt myself to complete the same tasks I’d normally use C++/C# with using different tools and techniques. Though ultimately my projects didn’t succeed, I learned a great deal and these are lessons I can take to future projects.
But would I recommend indies try and develop apps for the iPhone? If they’re a Mac user and want something to put on their CV/Resume or as a technical exercise (if they have some money floating around) then yes.
But, if you’re aiming to make money from applications then unless you’re developing games/niche business applications you should probably look into other mobile platforms as they’ll have a lower cost overhead and fewer barriers to entry. Android apps can be developed at almost no cost on any machine that will run Eclipse IDE. And though Microsoft charges to sell applications on its own Windows Phone App Hub, you can at least run the relevant IDEs on a wider range of machines and test on real devices before publishing.