
This article picks up from this previous one on web development. As I will emphasize once again, this is not a ranking of programming languages, but rather more of a starting point for a complete beginner.
The Options
With Microsoft dropping support for their Windows Phone OS, that leaves only two major mobile Operating Systems in the field; Google’s Android OS and Apple’s iOS. That is, until Google unveils Fuschia OS and Huawei unveils their unnamed “Plan B” OS. This article will focus on two broad approaches to mobile app development;
- Native development – targeting a single platform.
- Hybrid development – targeting multiple platforms at once.
Native Development

In Android app development, the most popular language is, without a doubt, Java. Large parts of the Android OS are written in Java and its APIs are designed to be called primarily from Java. It is possible to develop Android apps in C/C++ as well, using the Native Development Kit. However, this is not something Google promotes. According to Google;
The NDK will not benefit most apps. As a developer, you need to balance its benefits against its drawbacks. Google Inc. on NDK
Kotlin is an upcoming open-source language that is 100% interoperable with Java. It is maintained by JetBrains, the firm behind the IntelliJ platform that powers Android Studio. Google introduced Kotlin first-class support during Google I/O 2017, making it an official Android app development language.

iOS apps, on the other hand, are developed in two main languages. Objective-C was the first official language supported by Apple for application development. It’s structure highly resembles C, but with features from Object Oriented Programming. However, Apple generally prefer that developers use the more recent Swift programming language, describing it as;
Objective-C without the C. Apple Inc. on Swift
Hybrid Development
There are numerous frameworks that can be used to develop multi-platform apps. As mentioning all of them would require a website of its own, I will only cover the main ones here.
It is only fitting that Apache Cordova opens this list, seeing how many of the tools on this list are based on its build process. The apps are built using HTML, CSS and JavaScript then bundled into one client-side package. The open source project has received contributions from the likes of BlackBerry, Google, IBM, Intel and Microsoft.
Adobe PhoneGap, originally the basis for Cordova, is now a standalone product, albeit still powered by Cordova. PhoneGap adds a GUI build system that abstracts the command line messiness of Apache Cordova.
Xamarin, now owned by Microsoft, has for a long time been a platform used to develop multi-platform applications in C#. Microsoft acquired Xamarin in an attempt to move away from the Windows-only .NET framework.
The Ionic framework is also based on Apache Cordova, but has Angular at its core. Ionic allows web developers to develop mobile applications with familiar languages; JavaScript and TypeScript.
React Native is maintained by Facebook and based on the React framework. React Native is battle-tested – it is the framework behind the Facebook and Instagram apps – and receives frequent updates from Facebook engineers.
If you haven’t heard about Flutter, you must have your head buried in the sand somewhere. Maintained by Google and based on Google’s own JavaScript-killer Dart, this is a framework that is rapidly gaining popularity.
JetBrains still manage to get a word in edgewise with Kotlin/Native which is built on top of their succesful Kotlin language. Kotlin/Native compiles code directly into native binaries that can run without a virtual machine.
I am fully aware that I may have left out some languages that can be used for mobile app development (say Perl, PHP, Python, Ruby and Shell via SL4A). This is because I intended this article to be a view of the mobile app development field from a beginner’s standpoint.
That concludes this week’s article. Let us know what platform you would like us to look at next in the comments below.