One of the most profitable markets for programmers is mobile app stores. Whether it is when looking for work in other companies, or to become freelance programmers, knowing the programming languages for mobile phones will open many doors for us and, in addition, it will offer us a great opportunity to get money in a market as large as it is the Android or iOS.
There are many ways to program mobile applications . We can use native programming languages to create all kinds of apps, resort to web languages (since PWAs are becoming more and more fashionable), use programs that allow us to create apps without having to know programming, and we can even use 3D engines (like Unity) to create games. It all depends on the type of app we are going to create and for whom it will be directed.
Next we will see what are the most important programming languages when starting to program mobile apps.

Programming languages for Android
Android is the most widely used mobile operating system that we can find. This operating system is based on the Java virtual machine, and therefore, this is the main programming language for creating apps of all kinds.
Java is one of the most popular programming languages. Being a cross-platform language, it is very easy to create applications for a certain platform and, with a few changes (or none), make it work on other operating systems. The problem with this language is that it works through the Java virtual machine, which often results in performance problems.
In addition to Java, Android has other very popular programming languages. Kotlin, for example, is a Java-inspired programming language created by Google to encourage users to create apps written in this language. The advantages of this is that it is simpler than Java and offers better performance. Unfortunately, it is not as popular as Google expected.
Of course, we can also use web programming languages to create all kinds of mobile applications. Languages like HTML5 or CSS3 will help us shape our applications. These languages are the ones used to create PWAs, apps that are gaining great popularity lately and that will have great importance in the future.
Web vs. native languages
Progressive web applications, or PWA, are characterized by being very easy to program (they are programmed just like a web), they are very small and can always be kept up-to-date. Furthermore, it is very easy to port these applications to other systems without having to learn any programming. However, these applications have fairly limited access to the device hardware, so their possibilities are very limited. Also, they require an internet connection to function, or else they won’t open.
If we opt for native programming languages, such as Java, we will be able to take full advantage of the device’s hardware and create web-independent applications.
JavaScript can be an intermediate between web and Java languages, since, without reaching the complexity of Java, it allows creating more complete apps and having more access to hardware.
Programs to program apps for Android
Without a doubt, the most popular Android programming IDE that we can find is Android Studio . This is an IDE created from Eclipse (one of the most popular Java IDEs) with which we can get the most out of our code. It contains syntax aids, an interface creator and even an Android emulator to test our apps and debug them before publishing them.

We can also program for Android through many other programs, and even any Java IDE. To publish the apps in the Play Store we only need a Google account and pay a fee of 30 euros (one-time payment) to upload all the applications we want.
Programming languages for iOS
If what we want is to program apps for iOS, Apple‘s operating system for iPhones, things change a bit. The programming language most used to create apps for this operating system is Objetive-C , created as a superset of C to which objects have been added.
Although functional, and very popular, Objetive-C is a fairly old and complicated programming language for those who have never programmed before. For this reason, Apple created another universal programming language for all its systems and devices: Switft.
Swift is a programming language just as complete as Objective-C but easier to learn. More and more applications are based on this programming language since, among other things, it allows you to easily create all kinds of apps (no matter their purpose), and offers a performance far superior to that of applications created in Objetive-C (specifically 2.6 times superior) and Python (8.4 times superior).
Programs used to create apps for iOS
As in Android, there are many programs that help us to program and shape the iOS apps that we are creating. However, most of them must pass through XCode, Apple’s compiler for iOS apps, which is only available for macOS.

Therefore, programming for iOS has two main drawbacks. The first of them is that we need to have a Mac to be able to compile the applications, and the second that to be published in the App Store we must pay 100 euros a year. If we stop paying them, they block our account.
Program mobile games
When creating mobile games there are several possibilities. Of course, the main languages for both operating systems (both Java, for Android, such as Objetive-C and Swift, for iOS) have graphic libraries to create games. However, programming a game from scratch in these languages is not exactly an easy task.
If what we are looking for is to program a game for Android or iOS, it is best to resort to specialized applications and engines. RPG Maker , for example, can be an excellent option for this task. This program is based on scripts programmed in different languages to shape the games. Game Maker is another simple and powerful option to create games for mobile and other platforms. This program also has its own script-based programming language.

But if we really want to create a good 3D game, it is necessary to resort to graphic engines, such as Unity. We already talked about Unity when we talk about programming languages to create video games . This engine uses OpenGL ES libraries and allows us to program in different script-based programming languages.