Note: This post is in the perspective of an Android developer first learning iOS. Check out Part 1 for more info.
Everything on iOS isn’t necessarily the best. Android has several big things going for it from a developer’s perspective. Even though I can certainly see the power behind iOS, I still find myself enjoying developing for Android more.
iOS gets harder once you get past the basics
Properly handling memory within your application can be pretty tricky. It’s very easy to overlook a release call here and there, only to have it come back to haunt you later (I know this has been updated with iOS 5, but it still isn’t bullet proof).
UI Design is more restricted
Part of the reason why UI Design is easier on iOS is because Apple takes away most of your options. While developing for Android, I don’t have to worry if Google likes how I implement my buttons, or how I expect the user to navigate around my application. However, on iOS, it’s very common to worry about Apple’s restrictions and UI Guidelines while designing your application.
iOS is less forgiving; It’s easier to shoot yourself in the foot
It’s much easier to fall into an unworkable architecture in iOS than it is in Android. For example (which I’m sure is a newbie mistake, but bare with me), there is a good amount of pitfalls when attempting to put a Tab Controller inside a Navigation Controller. If your pieces are set up just right, it can be very difficult to assure all of your controllers are receiving the callbacks that you are expecting them to receive.
Android documentation > iOS documentation
One of the most difficult parts of picking up iOS from an Android perspective is that the documentation isn’t quite as good as Android’s. A quick search in Google with something like “Android Intent Service Example” will leave you plenty of information about the Intent Service and a few examples of how it could be used. This kind of information isn’t as easy to locate for iOS.
With that being said, I still plan on continuing development for iOS. I plan to release my first application within the next month or so (RB Recorder). And once my first app is out, I’m certainly going to continue down the iOS road. Maybe my opinions will change with more experience with the platform. But for now…
Android > iOS
What do you think the pros and cons are for developing on iOS versus Android?