You are on page 1of 6

 REFCARDZ

 GUIDES

 ZONES

 |

 AGILE
 MORE

Top Programming Languages for


Android App Development
by

Mohit Maheshwari

May. 24, 18 · Mobile Zone· Opinion

Like (7)
Comment (7)

Save
Tweet

If you’re curious about Android and Android app programming, either you want to develop Android apps or get
one built for you and want to know more about your app technology. Either way, this article will answer all the
questions you have about Android app programming.

Learning to code can be complicated and a daunting experience. Most of the time it’s not even clear where to start,
but you’ll probably have a slew of questions to answer before you even get started.

Learning about different types of languages gives you a fair idea of what kind of programming language you need
to choose for different kinds of apps. Although Java is the official language, an Android app can be built with other
languages. Since you’re interested in how to create Android apps predominantly, here are a few options to take
into account.

If you want to develop Android apps, step one is picking a language. The differences between the various Android
programming languages can be a little complex and nuanced. Choosing which one to start with requires an
understanding of their individual strengths and weaknesses.

Below are the programming languages which are currently used for Android development:

 Java – Java is the official language for Android development and is supported by Android Studio. It has a
steep learning curve, however.

 Kotlin – Kotlin is the most recently introduced Android language and the secondary official Java language;
it is similar to Java, but in many ways, a little easier to get your head around.

 C/C++ — Android Studio supports C++ with the use of the Java NDK. This allows for native coding, which
can be handy for things like games. C++ is more complicated, though.

 C# — C# is a slightly more beginner-friendly alternative to C or C++ that obfuscates more code. It's
supported by some very handy tools like Unity and Xamarin, which are great for game development and
cross-platform development.

 BASIC – A bonus option is to learn BASIC and try the B4S IDE from Anywhere Software. This is an easy but
also really powerful tool, though definitely much more niche!

 Corona/LUA – Another cross-platform tool build on LUA, it massively simplifies the app-building process
and allows you to call native libraries.

 PhoneGap (HTML, CSS, JavaScript) – If you already know how to build interactive web pages, then you
can use this knowledge with PhoneGap to build a more basic cross-platform app.
The best way to develop an Android app is to go ahead and download Android Studio. This is a piece of software
called an IDE, or Integrated Development Environment. It is offered as a package with the Android SDK, which is
nothing but a set of tools used to facilitate Android development. This will give you everything you need in one
place to get up and get going.

The official tutorials and documentation from Google are referred to in this method and you will find the largest
number of libraries and free code to enhance your apps, and tutorials that focus on this method.

Life is much better with Android Studio, which has been gathering strength over the last few years. Features like
the visual designer and suggestions make the process smoother, while advanced, powerful features are being
added all the time to give developers access to things like cloud storage with easy implementation.

Java
For any mobile app developer around the world, the first and the most preferred programming language for an
Android app is Java, one of the reasons being that it's simply the official language of Android app development,
which means it is one of the most supported languages by Google and the one that most apps in the Play Store are
built with.

Java itself was developed by Sun Microsystems way back in 1995, and it is used for a wide range of programming
applications. Java code is run by a virtual machine, which runs on Android devices and interprets the code.

Unfortunately, Java is also a little complicated and it's not a great language to deal with if you are a beginner. This
is the biggest hurdle faced by people who plan to get into Android app development. Java is an object-oriented
programming language with confusing topics like constructors, null pointer exceptions, checked exceptions, and a
lot more. It's not terribly readable and you’ll use a lot of code for simple things.

If you add in the Java SDK, things might get more complicated still – a first-time coder can struggle to know what’s
Java and what’s Android! Development using this route also requires a basic understanding of concepts like
Gradle, like the Android Manifest and the markup language XML. There are a lot of communities in Java for this
reason, and it's also one of the most versatile and widely used.

So, is it the best programming language you need to learn? Definitely — especially for those who want the full
Android development experience, diving into Java is the best place to start, if you ask me.

For those who are worried about the complex code, it's possible to work largely with the designer and to follow
tutorials for anything more complicated. But, if you’re a beginner and you’re looking forward to making a game, or
you just want to start learning for the sake of learning and you’d like to get some rewarding projects off the
ground, then I recommend you start with something easier and come back to this once you’ve got a bit more
grounding.

Kotlin
Kotlin recently burst onto the scene as the “other” official language for Android development. Some speculations
suggest that this was likely to raise the language’s profile and that it could possibly become the next Swift.

Just like Java, Kotlin runs on the Java Virtual Machine. It’s also completely interoperable with Java and doesn’t
cause any hurdles or increase in the size of the files.

The main difference is that Kotlin requires less “boilerplate” code, which means that it is a more streamlined and
easy-to-read system. It also does away with errors like null point exceptions and even excuses you from ending
every line with a semicolon. This is a great programming language if you’re just learning to develop Android apps
for the first time.

With that said, you know that Kotlin is definitely an easier starting point for beginners, and the fact that you can
still use Android Studio is a big plus. It’s still not quite as simple to pick up as, say, C# with Unity, though, and the
community support is in its relative infancy. In fact, you currently need to download a beta version of Android
Studio in order to get the out-the-box support.

But still, Kotlin should definitely be on your radar and could offer an easier entry point to “proper” Android
development, which is likely why Google introduced it in the first place.

You can learn more about Kotlin here.

C/C++
If you ask me, it's not really recommended to choose this route to develop an Android app. Android Studio offers
support for C/C++ using the Android Native Development Kit. this means you’ll be writing code that doesn’t run on
the Java Virtual Machine, but rather runs natively on the device and gives you more control over things like
memory.

For more intense applications like 3D games, this will let you juice out some extra performance from an Android
device, which also means that you’ll be able to use libraries written in C or C++. However, it also tends to be much
harder to set up, it introduces more bugs, and it is less flexible. And if you did want to create a game for a
computer, you’d probably be better off using a ready-made game engine.

C#
C# is basically an easier, purely object-oriented version of C and C+ development by Microsoft. Microsoft's basic
aim was to bring the power of C++ and the ease of Visual Basic, and it reads a little like a simplified version of Java.

Similar to Java, C# is garbage collected, meaning you don’t need to worry about things like memory leaks and
freeing up memory yourself. At the same time, though, C# is more modern than Java with a cleaner syntax —
though this may just be my own bias coming through. The best language to develop Android apps often just comes
down to taste.

If you want a particularly easy and welcoming introduction to Android app development, though, then I
recommend the combination of C# and Unity.

Unity
Unity is a “game engine,” which means it provides things like physics calculations and 3D graphics rendering and
an IDE like Android Studio. It is an open-source tool, which makes it incredibly easy to create your own games, and
the community is strong, which means you get a lot of support. With just a few lines of code, you have a basic
platform game set up in less than an hour. It's just perfectly powerful, being the tool used by most game studios on
the Google Play Store. And it's multiplatform, too.

On top of all that, developing in this way provides a very practical way to learn object-oriented coding, because the
objects in this case actually are objects most of the time.

Unity is useful for creating games but sub-par for creating standard Android apps, especially if you want to
conform to Google’s material design language.
If you want to become a professional Android developer, then this non-standard route will limit your employment
opportunities, unless your aim is to become a game developer, in which case this is a perfectly relevant and
professional background.

C# can also be used with Xamarin through Visual Studio. This is similar to traditional Android development with
the advantage of being cross-platform, which has a codebase for Android and iOS.

For a complete beginner, this route is a slightly obtuse entry point to Android development – but for a small
company wanting to create an app for iOS and Android, it makes sense and there’s plenty of support and
information out there to help you out.

BASIC
What we learned about C# was an attempt to offer the power of C with the ease of Visual BASIC. That's because
BASIC (Beginners All-Purpose Symbolic Instruction Code) is incredibly pleasant to use and an absolutely ideal
jumping point for learning to code.

Unfortunately, it isn't officially supported by Android Studio and you can't use it in Unity or Xamarin. The good
news is that there is a lesser-known option for developing Android apps in BASIC called B4A from Anywhere
Software. This is an acronym for "BASIC 4 Android," and as you might expect, it lets you code Android apps with
BASIC. It’s certainly not the first choice for most programmers who want to develop Android apps, but its always
nice to have more options.

B4A is designed as a RAD, or Rapid Application Development environment. There are lots of other smart design
decisions to make life easier, and there’s a very supportive community if you have any questions.

This is a great way to learn to code, and you can build some pretty powerful apps using this method alone. It’s not
ideal for making higher-end games, though, and once again suffers from being an “unofficial” option, so it’s harder
to create something that exactly meets the Material Design specifications, and you’ll find it harder working as a
professional developer with only BASIC. The other big drawback is that this is the only option on the list that isn’t
free.

Corona
Corona offers another considerably simpler option for developing Android apps while still giving you a fair
amount of power and control. You’ll be coding in LUA, which is already much simpler than Java, and on top of that,
the Corona SDK will make things even easier. It supports all native libraries, allowing you to publish to multiple
platforms.

It is largely used for creating games, but can be used in a variety of other ways, too. You’ll need to use a text editor
like Notepad++ to enter your code and you can run said code on an emulator without even needing to compile
first. When you’re ready to create an APK and deploy, you’ll be able to do this using an online tool.

This does require basic coding skills, but it offers a nice and gentle introduction to the world of programming. At
the same time, though, it is definitely somewhat limited and is a few steps removed from getting into “app builder”
territory. This is more useful for someone who wants to create something relatively simple and isn’t as concerned
about developing their coding skills or becoming a pro. If you want to use features such as in-app purchasing, then
you’ll need to pay a fee. The same goes for using native Android APIs.
PhoneGap
Finally, the last major “simplified” option you can choose develop Android apps is PhoneGap, unless you want to
turn instead to an app builder program.

PhoneGap is powered by Apache Cordova and essentially allows you to create apps using the same code you’d
normally use to create a website: HTML, CSS, and JavaScript. This is then shown through a “WebView” but
packaged like an app. PhoneGap then acts like a bridge, allowing developers to access some basic native features of
the phone or tablet, such as the accelerometer or the camera.

This isn’t really “true” Android development, though, and the only real programming will be JavaScript. For many
basic tasks, it will do the job, but if you want to be able to claim true “Android app developer-hood” (that’s a thing),
then you should brave one of the other choices on this list.

Conclusion
Guess it’s time to take your pick!

I wish there was an easier way than all the above-mentioned languages, but there isn’t. We still have a wide range
of options to choose from according to your knowledge and preference. It's you who needs to make the right
choice, and it should depend on your sensibilities and your objectives, but whatever you decide, you need to
remember that learning the code is rewarding and it will help you grow.

For those of you who are just here to learn about these different types of programming languages for Android,
now you know which language your app should use based on your requirements.

Like This Article? Read More From DZone


Java vs. Kotlin: First Impressions Using Kotlin for a Commercial Android Project

Kotlin: A New Era in Android App Development

2017 in Mobile: DZone's Top 10 Android Libraries

Free DZone Refcard


Swift Essentials

Topics:

CORONA ,PHONEGAP ,JAVA ,KOTLIN ,C/C++ ,ANDROID ,PROGRAMMING ,MOBILE ,MOBILE APP DEVELOPMENT

You might also like