The confrontation between the two giants of the operating system universe – Android and iOS – are the constant subject of online battles that have already bored everyone to death. Do not rush to set this article aside, though, and move directly to expressing ‘the only’ correct opinion in the comments.
The ‘iOS vs. Android development platform’ is a fundamental problem and task to be overcome by any new application development project. Considering the recent news about how Android has successfully captured 80% of the market, the choice becomes even more complicated.
This article will focus not only on the manager’s or customer’s assumptions but also on the technical aspects from the developer’s point of view.
Round 1: Choosing a comfortable development environment
You can still write code in a text editor, and a lot of people keep doing it till today, but in terms of performance it is more efficient to use the IDE (Integrated Development Environment).
In the case of Apple we have the Xcode, and it is a pleasure to work in such an environment. It is flexible, fast, powerful and able to be helpful, without being overly intrusive. And it’s getting better, despite the desperate measures taken by Apple to retain full control over the iOS applications and devices. The debugger runs smoothly, and simulation is fast and responsive. While working with Xcode, there is also a really effective tool-hunter for bugs at your disposal.
In recent years, Eclipse has served as the actual operating development environment for Android. Slow, clumsy, illogical, ill-conceived, excessively complex, and often virtually incomprehensible, it is a real mess. Its debugger is so inconvenient that you spend most of your time tinkering with logs. And do not forget about the Android emulator, which takes a few minutes to download at first, or it won’t be able to connect to the ADB.
Are there any advantages of the Android app development to be mentioned? Guys from Google constantly update Android Studio IDE, which is nice to work with. But for today the Xcode is still more mature.
Here iOS dominates and wins.
Round 2: Creating an attractive user interface
At this point, it looks as though Apple will become a unanimous winner in this nomination. It presents the opportunity to assemble a simple, attractive interface, quickly and easily with its constructor.
Nevertheless, while the tool is perfect for simple things, problem arise when the configuration complexity increases. As the applications develop, simple things suddenly become complicated, and the multiscreen “Storyboards” are not pleasurable.
Android provides developers with a set of icons, while iOS developers are forced to engage third-party services or draw their own icons.
Android development platform theory is provided by comparable visualization tools, but in practice you write XML files that contain instructions for the graphic drawing that, with some luck, leads to a correct display of applications within all screen formats of Android devices.
Apple is moving in the same direction, and its Auto Layout is clearly honed for the future expansion of screen variations on iOS devices.
In this round, we will give iOS the preference for two reasons:
- It is still much easier to comprehend just 3 screen sizes (including the iPad and iPhone) and 2 formats of aspect ratio. Android’s diversity adds the complexity in this context.
- The overall attractiveness of default visual elements (pop-up menus, messages, etc.).
Here iOS wins.
Round 3: Selecting a programming language for a project
According to the research, Java is the most popular programming language among mobile developers. Most Android applications are written in Java language; however, iOS is based on Objective C. There are exceptions like Xamarin, but in most cases such separation is justified.
Java has its own advantages. For example, a simpler error trapping and tracing system. Over the past few years, development for Android has had another significant advantage regarding waste collection, i.e. the automatic memory cleaning of unnecessary objects. Now iOS’s development platform has the same feature.
Objective C is known to be better and cleaner than Java. At the same time, according to the research from Developer Economics, Objective C has had its day:
Google also considers the possibility of transition from the Java programming language to Apple’s Swift application development for Android. It was reported by The Next Web (TNW) and stipulated that Swift was designed not to replace Java, at least in the beginning. It comes amid litigation between a search engine and Oracle, which accuses Google of illegal Java uses, as the newspaper noted.
Sources also say that Google sees a higher potential for growth in Swift rather than in Java. In 2015, Swift was transferred to the ‘open source’ model. It allows Google to use the programming language without the permission of Apple. And Swift’s ‘openness’ increases its attractiveness to Google regarding its adaptation to the Android mobile platform.
So, our points go to Swift, an iOS rising star.
Round 4: Increasing your application capabilities with API
Android and iOS have huge software libraries available to developers, and, generally speaking, they are quite similar. Most of the work is performed by controllers at the same time, and, in general, iOS View Controller is the equivalent of Android Activity.
What Android does not really have is a full analog of the Core Data framework. In the end, it is better to work with iOS Collection View Controller than with Android List Adapter.
Here iOS wins.
Round 5: Enabling Internet connection
The storeroom of both systems has a variety of tools, and APIs for cooperation with the Network. Moreover, both platforms virtually perform as a full-fledged browser, which can be integrated into the application as you like.
Links have to be processed in the background and should not interfere with the application itself. To implement the multithreading feature, Android uses AsyncTask. It works promptly and makes it easy to determine whether a user is on the web at the moment. iOS has also similar features, but they are implemented at a relatively low level.
Here Android wins.
Round 6: Increasing your app social reach
Since social sharing provides huge opportunities to grow an app, it is important that much weight should be given to this consideration as well.
Sharing is obviously not one of the advantages of iOS app development. And it seems that Android will win this round with a 100% knockdown: it has a robust system of interaction between applications called Intents; and overall, Android is much more loyal to requests and transmissions of data among applications.
Here Android wins.
Round 7: Releasing your app
The release of Android applications is incredibly simple. Eclipse’s tools allow you to build the application promptly; and once you do, you’ve already got an APK file that you can send via email, post online, or download on Google Play, making it available across the world within just an hour.
In addition, there is an opportunity for Android developers to track the system statistics and crash reports up to a specific line of code. If necessary, you can make updates instantly.
Publication in the iOS App Store is a real nightmare and a significant disadvantage. You will spend at least a day fighting with certificates and distribution profiles.
No matter how many times you’ve done it before, and how you are trying to facilitate the process with the next version of Xcode, you will still face a lot of problems. Application testing becomes even more complicated unless you use Test Flight. Add to this iTunes Connect, which is not even comparable with the Google Play Developer Console.
By the way, if you want to distribute iOS apps distribute apps on the App Store you need to pay 99 USD annualy for the Apple Developer Program membership; or 299 USD for development companies. But (!) you don’t need to pay a penny for releasing your app on Google Play.
Here Android wins, unconditionally.
Round 8: Making money
There is one significant reason to give iOS more points in this category: on average, iOS App Store generates 75% more revenue.
Those who place their applications in the Apple App Store usually observe a sharp increase in sales of its products. The first-day revenue grows by an average of 52% for the iPad application, and 41% for the iPhone app respectively.
It is clear that there are more devices running Android than iOS. We see soaring numbers of downloads from Google Play, but it almost doesn’t affect the revenue.
If you want to make money with your app, do it with iOS. But once your iOS app is uploaded to the App Store, think about developing a version for Android.
Google Play is catching up, with fast revenue growth in countries like Japan, South Korea, and China (Google Play is banned there but people still use Android apps). Entering these markets and delivering to more users may double your success.
To prove our words check out some statistics.
Apple users are used to giving money to get what they want, but the quantity of Android users making transactions through their smartphones will more than compensate for this over the next few years.
On this stage iOS wins.
And the Winner Is…
These epic battles will continue in this giant software development arena for a long period.
All in all, it is much easier to grasp the development for iOS than Android. It also takes priority when it comes to monetization. Meanwhile Android remains the most popular platform overall.
Here in MindK, we strive to find a single integral solution in terms of the choice between Android and iOS that will allow our customers to solve their business problems, and at the same time to make the development process faster and hassle-free. At the stage of business analysis, we study the client’s business, its goals, and preferences of the application’s end user. Only after that is the choice made either in favour of the Android or iOS platform.