Is it still worth learning Android development?

The advantages and pitfalls of Android development

What do your students enjoy more: programming for Android or iOS?

Mirko Stocker: At the HSR, most of the students attend our module Mobile and GUI Engineering in the third semester and get to know Android development there. Once the initial hurdles of setup and finding your way around the development environment have been overcome, it usually starts - at least I think - to be fun. It would be very interesting to do the same with iOS, but unfortunately Apple doesn't make it that easy for you.

Martin Seelhofer: Yes, while the download of the SDK is sufficient for Android development, some hurdles have to be overcome at Apple in order to get a simple "Hello World" sample app to work on a device.

Why is that?

Stocker: You absolutely need a Mac. Since our students work on their own devices, widespread use in the classroom is unfortunately impossible, whereas Android development is equally supported on macOS, Windows and Linux. In project work, a team with the necessary hardware can of course decide to develop for iOS, and both Android and iOS projects are implemented for customers at the institute.

Which operating system is your favorite - and why?

Stocker: As a longtime open source enthusiast, I felt more and more drawn to Android, although I quickly discovered that Google's open source story is more of a window dressing than a commitment to free software. As an app developer, I don't benefit from using the basic system, in which a lot of other open source software is used anyway, but almost all apps - including those from Google itself - are closed source. But since I don't have a Mac either, I stayed with Android.

Seelhofer: My access to the mobile platforms was originally gained through game development, and the closed system and the manageable variety of devices with iOS turned out to be more promising. In the meantime, the variety of devices on iOS has grown to an unpleasant amount of form factors, resolutions and operating system versions from the developer's point of view, but Apple has made some clever adjustments in its programming interfaces (APIs) to ensure that this amount remains manageable. Due to the rather high investments in the equipment and the typical vendor lock-in in closed systems, I stayed with iOS.

What are the biggest differences from the developer's point of view?

Stocker: There are of course obvious differences such as the different programming languages ​​that are used: Objective-C and Swift on iOS, and Java and Kotlin for Android.

Seelhofer: The different navigation concepts and the similar but very different user interface libraries are also worth mentioning. In addition to the programming languages, you also have to get to know two very different APIs.

What are the biggest challenges for an Android developer?

Stocker: Although Android has been around for over 10 years, there are regular changes and news. So there are always adjustments to the authorization system, but fundamental things also change. For example, the way in which navigation between different screens is programmed. In addition, Google has decided to use the Kotlin programming language from JetBrains as the main language for Android development. As an Android developer, you always have to stay on the ball.

How does app development for iOS and Android differ when it comes to design issues?

Seelhofer: When designing an app, most UX / UI designers work independently of the operating system with specialized tools that enable the user to quickly map the user journey in clickable prototypes that can then be viewed on the target devices. This means that early in the process it is possible to try out what a design and the order of the screens feels like from the user's point of view. With regard to the technical implementation, there are then two fundamentally different approaches. You can choose to use the visual standards and navigation concepts that apply to each platform. Then you not only create the app's program code twice, but also create two different design prototypes. Alternatively, you can decide to create your own design standard and implement it on both platforms. The visual assets - for example icons, background graphics, colors - can then be used on both platforms.

How do the development costs differ?

Seelhofer: In order to be able to put apps in the Google Play Store, only a one-time fee of 25 US dollars is due. On iOS, a basic developer account costs $ 99 every year. Due to the need to compile an iOS app only with the help of a Mac, as well as the generally higher costs of Apple devices, the total costs for iOS development tend to be higher. However, since there is a much larger selection of device manufacturers with many different form factors and functions on the Android market, the costs also depend on how many test devices you want to purchase.

For years, Switzerland was considered the iPhone country, now Apple's dominance in this country seems to be crumbling. How does this affect the app economy?

Seelhofer: Apple is generating significantly more sales with the App Store than the Google Play Store, despite the iOS market share that is now quite low worldwide, of only around 13 percent. Even if no corresponding statistics are available for Switzerland, this should also apply to us. So if you want to earn money by selling apps, for example with games, iOS is still well served. If an app is provided free of charge as a supplement to a range of services, both platforms will of course still have to be offered.

Huawei introduced its own operating system last summer. At first it was said that “Harmony OS” could replace Android immediately. Now the manufacturer does not want to bring the OS to its smartphones, at least for the time being. How do you assess this development?

Stocker: Huawei has had a difficult year, but Harmony OS has been in development for a long time. I can well imagine that this statement was intended to show that they have a plan B if the US decides on further sanctions against Huawei. Huawei has now gone so far and will bring new devices onto the market without the Play Store. Nevertheless, these are still Android devices and as a developer I may have to try to find a new distribution channel, but not redevelop the app.

In your opinion, do you need a third smartphone system again?

Stocker: No. With iOS and Android we have two active ecosystems with large communities. The two platforms offer everything in terms of functionality to develop any kind of app, so I don't see any need for a third system. A cross-platform framework such as React Native and Google's Flutter or even a simple web app, on the other hand, are definitely viable alternatives to native apps.

Seelhofer: I see it similarly. If you use cross-platform frameworks or web technologies as a developer, it doesn't really matter whether you add another platform or not.

What speaks for and what against another alternative to iOS and Android?

Stocker: I still remember my beginnings as an Android user. It was often the case that an app first appeared for the iPhone and only later for Android. That already bothered me back then, even though the smartphone wasn't as important as it is today. So I can't imagine that a new system could gain enough penetration to be successful at all. Microsoft tried and failed.

Seelhofer: Smartphones have now reached a high level of maturity. This can be seen, among other things, from the fact that the annual innovations are mainly limited to faster processors and a new display technology every few years. The big innovations seem to be over. Accordingly, the current devices together with the existing ecosystems (stores) seem to have achieved the status “good enough”, which makes it all the more difficult for a new player in the market to establish themselves through unique selling points. This is also shown by the story suggested by Mirko about the heavyweight Microsoft and its operating system Windows Mobile / Phone, whose lifecycle is definitely ending these days.

How do you see the future of app development?

Seelhofer: I expect the cross-platform frameworks to continue their maturation process, which will enable greater cost savings. The native development is likely to lose even more importance as a result. Similar to the web with content management solutions such as Wordpress, I can well imagine that the cost pressure will lead to a larger selection of app construction kits and white label solutions, with which apps can be clicked together or configured more quickly and cost-effectively instead of laboriously programming can be.

What do you advise your students to do when entering the world of work?

Stocker: To be self-confident and to go through life with open eyes. And from time to time to take a critical look at your own work and to question whether what you are doing makes sense.

Seelhofer: Not to waste your time on technological trench warfare, but to enjoy the diversity and be open to new things. To show the courage to take a gap and also to decide against it, that the very latest fancy framework, which the work colleague was talking about so enthusiastically, has to be looked at the next weekend. You can't and don't have to know everything.