Choosing a programming language for building a mobile app can be confusing for a beginner. This is why I decided, both for my personal culture, as for that of my classmates, to carry out a review of the different programming languages for mobiles and thus answer to the question…
Which one should you use?
Your choice of a given language that you are going to use for application development depends mainly on the operating system you are going to work with. The point is that different operating systems support different mobile programming languages. For example, Swift and Objective C are used for iOS apps while Kotlin and Java are used for Android operating system. But, indeed, there are also languages which are great for both like React Native.
Here we are going to talk about the three most used, which are Kotlin, Swift and React native, in order to cover a broad spectrum and thus give you a good idea of the advantages and disadvantages of each one of them.
Developing mobile apps for the iOS platform with Swift
Swift is a compiled object programming language designed to be simple, high performance, and secure. It is developed in open source. The Swift development project is managed by Apple which is also the main contributor but many members of the Swift community as well as other actors such as Google and IBM actively participate in its development. Swift is officially supported on Linux Ubuntu, iOS, macOS, watchOS, and tvOS operating systems.
The very initiative with which Swift was created by Apple was “Anyone Can Code” (not to be confused with the « Anyone Can Cook » from the movie Ratatouille, just kidding! :D). If you’re looking to get started in app development, Swift seems to be the best programming language. It’s fast and easy to learn, created specially to be user friendly. It has built-in design features that give you real-time feedback. This helps you minimize errors and keep your code clean.
For building apps for iOS, you must have an Apple developer account and the Xcode IDE on a Mac computer. You cannot effectively build and debug on a Windows machine alone even though it is still not impossible (with a VM for instance). Also, if you want to publish your app on the App Store, you must have an Apple Developer account. The service is chargeable and costs €99 per year.
Developing mobile apps for the Android platform with Kotlin
Kotlin is an object-oriented programming which was adopted by Google in 2017 as an alternative language to the traditional Java for Android development.
Kotlin is interoperable with other languages for Android development such as Java or C++. What does that mean?! Here’s an example: Kotlin works with the Java language transparently, so that it is easy for developers who like the Java language to keep using it, but also to gradually add Kotlin code and pull part of the several advanced features contained in the Kotlin libraries. Everything works with everything!
The adoption of Kotlin on Android has been increasing steadily over the years, and is considered by developers to be an a neater and cleaner version of Java. Kotlin takes the best of Java and goes a step further to make it even better.
A little more compared to Swift, is that if you want to publish your app on the Google Play store, it will only cost you a one-time fee of €25 in order to open an Publisher account. After paying this one-time fee, you can upload apps for free as much as you want.
Developing mobile apps for both the iOS and Android platforms with React Native
Fun Fact: React Native began as an internal hackathon project in Facebook and turned out to be so good that it went on to become one of the best coding languages in no time!
While the languages mentioned above are designed for building apps for iOS or Android operating systems, React Native is one of the frameworks used for developing mobile apps for BOTH operating systems. Developing in React Native allows you to have a cross-platform application which saves you a lot of time. No need to create separate applications for each system!
Hope you enjoyed this introduction to the world of mobile development!