iOS and Android are the most commonly used operating systems for mobile devices and are fighting for the favor of end users. For laymen, the development of an app for Android may seem similar to development for iOS. The reality of developers, however, looks very different.
Each operating system has its own pitfalls, but also has advantages. Software developers Mike Gerasymenko and Dean Cook both work at Messenger Wire to address the challenges and opportunities in app development for Android and iOS operating systems.
1. What are the main differences in iOS and Android development?
Mike: There is a big difference in the development environments used. On Apple devices, we use IDEX code to create applications. Furthermore, one needs an Apple Developer account for developing and publishing iOS apps . Only developers who are registered there have the option of running apps on the device. Unlike the Google Play Store, the app store has stricter rules, including manual review for each version of the app. This complicates the iOS release process, as every developer must also consider the time taken to validate Apple’s app.
Dean: The operating systems are also different. The Android platform is more open, attracting more students, hackers and hardcore programmers. This is also influenced by the price of the hardware, since the Android phones are cheaper. In addition, the release process of the Android App activation in the Play Store is a little faster, but a one-time registration fee of $ 25 has to be paid. Furthermore, the Play Store provides better control over tiered rollouts. For example, it is possible to create a beta program.
2. What is more time consuming: iOS development or Android development?
Mike: There is no real trend towards a kind of development here. The development time of a feature is determined mainly by the capabilities of the developer and the level of detail of the feature specification. If you include the test time in the development time, it is clear that Android requires much more testing effort, since there are many different devices. Apple, on the other hand, focuses on placing only a few models on the market.
3. What are the challenges of iOS development and Android development?
Dean: For Android, the main challenges are that there are so many different devices that have different characteristics or specifications. The test effort, for example, to meet every hardware and screen size, thus becomes immensely high. Another point is that the community often wants to have quick fixes for a problem, which can lead to poor programming practices, for example, or there is not much focus on correct execution.
Mike: The challenges arise from the features of the device. In both iOS and Android development, when we develop the complicated solutions, we usually have to consider the limitations of the device, such as storage capacity, CPU performance, network throughput, and screen size. In addition, there are some operating system limitations, such as user permissions, background and foreground application status, different font sizes, and the ability to start the application in the split screen.
4. Does it make sense to build an iOS app first or an Android app first, or should you develop apps for both platforms at the same time?
Mike: This depends mainly on the destination country in which the app should appear. Android has a market share of over 80 percent, but is mainly found on older and cheaper devices. According to a recent study dominate in Northern Europe, North America and Australia, the devices from Apple. For a startup, it makes sense to start with a platform to prove its feasibility while keeping the price low. The development on multiple platforms increases the workload. For Wire, it’s important that Messenger support multiple platforms so that people can communicate, no matter what device they use. We call it Sync Engine: the app is synced on all platforms so that the user sees all content on all devices identically, can retrieve and edit. The Android and iOS teams work closely together for this. Other apps, like Ummo, were designed for iOS only.
5. Which programming languages do you have to master in iOS development and Android development?
Mike: The current standard for iOS is Swift , a programming language developed by Apple. Before Swift, iOS apps were developed with Objective-C. We are in the process of moving away from Objective-C. But since our codebase is very large, it is difficult to rewrite these lines of code in Swift. So we create the new features of the app in Swift and keep the old ones in Objective-C. Fortunately, Apple has made sure that both programming languages work together smoothly.
Dean: Developing Android apps requires knowledge of the Java programming language. But also knowledge in C ++ is an advantage. Other Java Virtual Machine languages are Scala or, more recently, Kotlin. Compared to Java, Kotlin has a clearer and simpler syntax and is already being used productively in frequently used apps, such as Pinterest.
6. What are the disadvantages in iOS development and Android development?
Mike: Generally speaking, mobile devices pose more of a migration challenge (updating one version to another without making the locally stored data inconsistent). Especially at Wire, where the history of a user is not stored in the cloud, but on the device. In addition, development time on mobile devices is significantly longer than web solutions, as there are longer feedback loops and less trial and error.
Another disadvantage is that testing on mobile platforms is generally difficult. All applications rely heavily on the SDK platform, which means that it is difficult to predict how their application will behave “in real”. Most solutions are expensive or very time consuming.
7. Is app developer an attractive profession?
Dean and Mike: App development is already a future trend for both men and women, which will continue. The use of mobile applications and tablets have long replaced traditional laptops and computers. Google Play alone currently offers 3.3 million apps, followed by around 2.2 million apps in the Apple App Store. Native apps provide tremendous opportunities for businesses to attract new audiences.
The profession of app developer therefore has great future potential and more and more companies are desperately looking for professionals in this field. So if you are interested in the job of the app developer, you should be particularly interested in user behavior and stay tuned for technical progress.
A big plus: Of course it also feels really good when friends and family start to use your co-developed product and give valuable feedback.