Sometimes I ask myself the question: why do I develop for iOS? I could also do Haskell development, do cool HTML5 stuff, or build compilers. As an indie developer, these are some important reasons for me.
The iPhone and iPad are the high-end of the smartphones and tablets. This means that the people who use it are willing to pay more money for a better experience. As a side effect, they are also willing to pay for apps, and willing to pay for in-app purchases. For an indie developer, this is great. The more willing your customers are to spend, the better it is for us. Ultimately, it comes down to the developer making something that is worth the money, but it’s a lot easier to sell to high-end customers.
There are a lot of disadvantages to having a closed environment, which is beyond the scope of this post. However, for customers it is mostly a big advantage: they can trust the applications. Because every single application has been reviewed by Apple, they know they can trust it. Because in-app purchases are built into the iOS Platform, they know they can trust the payments, which again makes it easier for developers to charge for something.
Lots of possibilities for innovation
Innovation can definitely be everywhere, but I have the feeling we’re still only seeing the tip of the iceberg when it comes to innovation on mobile devices. There is so much more we can still do with the location sensors, the fact that we always carry our phones, always have an internet connection, et cetera. With the web or on the desktop there is still a lot of room for innovation too, but it is a lot harder to come up with new ideas.
More difficult than web development
It is more difficult to get started with iOS programming than with web development. You need to do memory management, need to work with design patterns, learn a new language, and more. In web development, you can gradually ease in to it by first modifying HTML, then building your own HTML site, adding PHP, and so on. This makes the barrier to entry harder, which means it is easier to get noticed as an iOS developer.
Apple provides awesome libraries. Even though I don’t like Objective-C so much, the frameworks they provide are really great. For example, animation is super-easy, and everything is very well thought out. This makes it a pleasure to work with.
Culture of quality
On Mac and iOS, there has always been a culture of quality. Applications are very polished, and you can see that developers really put effort into building their products. This is a lot of fun and very inspiring for a developer. It pushes you to raise the bar and have higher standards. The defaults provided by Apple are very high quality too, which means it’s easy to build something that works and looks good.
These are the reasons why I choose to develop for iOS. Of course, it is very biased, so I look forward to seeing your comments.
Discuss at Hacker News