Developing applications for iOS is not like developing applications for Android OS. Google is much more open to what can submit to the Google Play store, whereas Apple has strict guidelines that could stop your development efforts in their tracks; this will become a balancing act of developing useful mobile apps and garnering Apple’s approval.
If you were planning on using that cool third-party API that worked on the Android version of your own app, you can just throw that out the window. Chances are it isn’t approved by Apple. It is enough to make many mobile app developers weary of developing for iOS.
So then why develop apps for iOS?
The iPhone market is just too big to ignore and although the submission and approval process for the iTunes store is strenuous, there are some significant advantages to developing for the iOS platform as opposed to Android. One reason that comes to mind is the lack of fragmentation of devices and OS versions. This immediately makes developing and testing iOS apps significantly easier.
Due to the closed nature of iOS, fragmentation is not as big of an issue as Android, however that doesn’t mean there isn’t some work to be done in this sector of testing. Apple currently has several supported devices and your testing shouldn’t just include iPhone. The iTouch and iPad have access to the same iTunes store as their iPhone counterpart, but some of the requirements in screen resolution and aspect ratio will differ.
Another important difference across devices is different generations of processors, memory and storage space available. These are all important aspects to test. As with other mobile platforms, you may use emulators for testing, but keep in mind that emulators will only give you a broad picture of how your app will respond on a device. Batter life, processing power, and memory will be allocated much differently in an emulator than on an actual iOS device.
App Store Approval
I’ve worked in one form or another on a few projects has had to go through the approval process in with Apple in order to be approved and certified. The process has changed every year since the first project I worked on back in 2007. Keeping up with Apple’s requirements for app submission is work in itself and if you don’t meet their requirements, which can be subjective at times, you can plan on your project going into a holding pattern.
Before you start developing, and especially before you start testing your application, you will need to check the requirements to see if your app is even feasible on the iTunes marketplace. Consider this: Apple will even reject your app proposal if your app has no perceived usefulness or if you are targeting a specific market while leaving other markets out.
I don’t know any horror stories first hand, but I can imagine a situation where a development team spends a significant amount of time developing an iOS app just to be denied any chance of being accepted into the iTunes marketplace--That is a truly grimacing thought.
Of course, that seems like a very grim view of the iTunes marketplace, but there are some serious benefits to this approval process. Firstly, security and privacy is very important to all users in any market. If your app willingly grabs users’ information without their consent, you can bet you will get a rejection letter from Apple.
Before you even start to develop an app, it will be wise to check out the App Review Guidelines. Keep in mind that there are different guidelines for Mac and iOS.
Beta testing is where you will need to start using the App Distribution Guide provided by Apple. An Ad Hoc provisioning profile will need to be created for distribution of the beta version of your mobile application. This will allow your beta users to use your app without needing access to Xcode (the only development IDE for iOS applications). You can find the guide here.
This is also a great way to get your team use to the submission process that Apple uses.
I hope I didn’t scare you too much about developing applications for iOS; it’s just in my nature. Anyways, unlike Android, Apple has gone to great leaps to make sure that apps provided on the iTunes store are of the utmost integrity, so the hassle does force your app to have a better chance of being well-received.
Of course, bugs can still make it passed the submission process and that is on you to use processes, such as manual testing and test automation when necessary to maintain mobile app quality. Remember, app quality equals user acceptance and that’s the road to app success.