Creating apps: differences between Android and iOS
Creating apps for Android and for iOS may seem very similar to the untrained eye, but the truth is that each of these two operating systems has its own peculiarities. There are many differences when it comes to Android and iOS − both in the technical foundations of app development and in the process of creating an application itself.
And not only at the technical level but also in terms of design and mobile strategy. In other words, the whole conception of an app will be related to and will depend on the operating system chosen. Therefore, developers who are switching from one OS to the other, or who are initiating themselves in the other programming language, will be noticing this to a large extent.
Differences in development
Let’s see first the differences that can be found at the mobile development level when creating apps for Android and for iOS mobile devices.
The project’s structure
The structure of an iOS project is quite free within Xcode, since you can create folders and files wherever you want and then establish references between them. However, there will always be certain nomenclatures (e.g. icons for different resolutions) that all developers must respect.
When creating apps for Android − on the other hand − we find ourselves dealing with a much more rigid structure. The nomenclature in Android development should be respected regardless of whether it’s a folder, file or resource. Any Android mobile development process will always be very well structured.
Testing the app
An app’s testing stage is an essential part of the mobile app creation process. The same applies to games and any other kind of software. We must make sure that the app we’re developing works perfectly. The iOS simulator and the Android emulator are often used for this purpose.
A tangible difference is that the iOS simulator is much faster than its Android counterpart. However, the Android emulator has the comparative advantage of actually being an effective virtual machine with a virtualised CPU, which makes it more realistic than its iOS equivalent. In fact, the iOS simulator often fails to render accurate and realistic representations of Apple’s devices.
For this reason, we should always carry out testing on real mobile devices to see the app’s interaction flow and the errors it may contain in a real piece of hardware.
Being different operating systems, their apps are programmed in different programming languages. This is precisely their most distinctive feature: iOS makes use of Objective-C / Swift for creating apps, while Android makes use of Java.
Here is where we come across the visual differences between creating an app for Android or for iOS. The end user will also perceive these differences in app design. At a technical level, the developer will build XML files onto Android interfaces. These are very similar to iOS’ XIB files. However, the latter are not readable.
As for animations − for instance − iOS is far better prepared than Android. Google has tried to fix this through the preview of Android L and by establishing an app design trend known as Material Design. In the meantime, Apple has always been focusing on soft, complex and powerful animations and looking after its aesthetics and user experience very carefully; Google − on the other hand − has been dealing with these but considers hardware its main objective.
Another big difference between Android and iOS is the ‘Back’ button feature included in Android but that doesn’t exist in iOS. All the app development process must be carried out bearing this in mind.
Such button is used for navigation in Android. In iOS, however, the developer should conceive his app’s flow otherwise, be it by indicating on the screen how to go back, or through another kind of interaction flow when such direct navigation is not needed.
Other differences in development
- Delegate vs Adapter: iOS uses a delegate when using delegation patterns. In Android such patterns are represented with an adapter. Although they are meant for different platforms and expressed through words, these are very similar concepts.
- UIViewController vs Activity: we’ll be using the Activity class when programming in Android to represent certain screen display on an Android mobile device. In iOS, this job will be taken on by a controller called UIViewController. It’s also used for managing the lifecycles of events, subviews, etc. So, they perform the same role, even if they are not exactly the same.
- Unlock: Android devices are unlocked by sliding your finger up and iOS devices are unlocked by sliding your finger to the right.
- Preferences and access permissions: these are better organised in iOS devices, where they can all be found grouped together in the device’s general preferences section. They are more scattered in Android and one must navigate through the device a little bit to find them.
- Maps: we can use either Apple’s maps or Google Maps when creating apps for iOS. However, we’ll usually use Google Maps when creating apps for Android.
Other differences when creating apps
When it comes to creating apps, differences among operating systems are not to be found exclusively at the technical level. Design and marketing are clearly affected by them at a very basic level. Let’s see how to deal with these differences.
Cost of creating mobile apps
We’ve already discussed the differences in cost between creating apps for Android or for iOS in previous articles. In fact, the iOS development process is slightly more expensive − although the difference is not that important − due to the fact that the demand for iOS apps is lower than that for Android apps and to the requirement of using Apple original materials, which are more expensive.
As we have already discussed, an app’s design is closely related to its development process. This is why an app’s design is also visually different depending on whether it has been developed for Android or for iOS. Each of these OS has its own interaction and style logic, which is strongly influenced by the two big companies which have respectively created them. It’s therefore advisable to have expert app designers in one or both operating systems to advise us in our project. Only then can we create genuinely fine native apps.
App Store Optimization
As previously discussed in Good & bad practices in ASO, App Store Optimization is not the same for an Android app than for an iOS app. We will have to take this fact into account when optimising the app to position it well within the stores. We’ll have to pay special attention to the differences in title and description; all the other variables are more or less the same for both cases.
Monetisation and return on investment
The return on investment is generally not the same for an Android app than for an iOS app. Focusing on the revenue source (the way of monetising the app itself), we can notice that iOS apps are more likely to charge users for downloading them and for in-app purchases. Android applications are usually free to download and get monetised through ads embedded in them.
Well, there our list of differences between creating apps for Android and for iOS!