Although Android phones can appear to some users very similar to the iPhone, the two operating systems are very different. These differences make it impossible for an application coded for one platform to be usable on the other without a serious overhaul of the back-end code. Likewise, the knowledge base required of Android programmers is very different from that required of iOS programmers, meaning that it can be difficult to coordinate the roll-out of a single application across both platforms. If you’ve got a great mobile app idea and need to hire a mobile app developer, this can mean problems.
Programmers fluent in both protocols are out there, but many freelance app coders work one environment or the other. According to a MacLife article last summer, a survey of 55,000 mobile application writers found that 10,199 were Android programmers, 43,185 coded Apple iOS apps, and only 1,412 claimed expertise on both platforms.
Building a development team capable of ignoring these differences and working together to create great cross-platform apps can be difficult, especially if you don’t understand the functional differences between the two operating systems. Here’s a link to a cartoon explaining the differences between iOS and Android. It’s a bit of hyperbole, but aren’t most cartoons?
While many of the differences between iOS and Android programming have to do with how the code is written, there are ten major functional differences from the user’s point of view. We’ll explore the first five differences in this post and the other five in a later post. Here are the first five:
- Multitasking: iOS was not designed with multitasking in mind, which makes sharing data between different applications that run concurrently highly unstable. Android OS was designed with multitasking, so applications operating in that environment have much easier access to data generated by multiple processes running at the same time.
- Widgets: Android allows the software on the device to embed “widgets” into the home screen desktop, meaning that data from your application can be instantly available without forcing the user through a number of menus and program selections to get the data needed. The iOS home-screen is a static collection of program icons.
- Application market restrictions: Apple restricts what apps are allowed in the App Store. Unless the user hacks the device (which will void the warranty and could cause other issues), iOS users are limited to apps in the App Store. Bottom line for you – if Apple rejects your app, most potential customers will never download it. In contrast, Android apps have an open market. This creates an easier path to market for developers.
- Notifications: Apple’s iOS only allows notifications in the form of pop-up windows. In addition, only one notification can be visible at a time, requiring the user to click through successive notifications. The Android OS uses a notification bar that can be pulled down to view all current notifications at once.
- Multiple hardware devices: The only devices that use iOS are made by Apple: iPhone, iPad, and iPod Touch. The Android OS runs on many different hardware platforms from many different vendors and manufacturers. This is an advantage and a disadvantage – having more devices means a bigger market but the downside is the different devices may require more programming to account for output differences between devices.
Hopefully, this list gives you some things to consider for development of your mobile app. We’ll conclude this list of multi-platform coding considerations in our next blog post, with an eye to ensuring that you have all the data you need in order to decide how to go ahead with your development project. In the meantime, if you have comments about the differences between developing iOS and Android apps, we’d love to hear about them – please leave a comment.