So you want to make an Android app? Great, all you need to do is to download Android Studio and learn some basic Java. Then again, you may be better off downloading Unity and learn some C# if you want to make a game. Or if you don’t like Java or C#, you could decide to make your app with Python, or with BASIC…
Choosing the right IDE can potentially save you a lot of time and frustration – it might be the difference between success and failure
In other words, there’s more than one way to get started. And choosing the right IDE can potentially save you a lot of time and frustration – it might be the difference between success and failure. Try and make a platform game by building your own 2D engine in Android Studio for instance and you’ll waste countless hours and end up with an inferior product compared with using Unity. Make something with PhoneGap and you might come across some disappointing limitations early on.
The problem is knowing your options. A lot of people don’t even realize there are multiple IDEs and programming languages they can use to start making apps, let alone know what they are! Here are 10 completely different options for getting started.
Let’s start with the official option for creating apps on Android. Android Studio is the IDE (integrated development environment) built by Google and it’s the option that all official documentation refers to. It has the most support, it’s streamlined for Android development and generally makes life easy for the most part.
Android Studio is a little fiddly to set up but it’s improving quickly (and it’s certainly better than it was). It’s also the option that will make it easiest to follow Google’s design guidelines and to find new libraries for your projects. This is also the method to learn if you’re hoping to get hired as a developer seeing as it’s the official choice. It’s also a good idea to use Android Studio/Java if you’re hoping to one day sell your app business.
In Android Studio, you’ll be coding with Java and using references to the Android SDK (Software Development Kit). This lets you access things like buttons and other UI elements very easily and even arrange them in a mostly-useful design view (or using XML). It lends itself perfectly to creating utilities and productivity tools that conform to the Android ecosystem.
Android Studio with the SDK is also suitable for creating basic games. You can do this by building custom views and using things like animations while thinking a little outside the box. For more advanced game physics, you’ll need to start using libraries like LibGDX which will provide all the tools you need so you don’t need to create everything from scratch.
If you’re going to develop something with complex physics yourself though, or a tool that goes beyond basic functionality, you’ll probably need to familiarise yourself with the Android NDK (here’s everything you need to know) which is the ‘Native Development Kit’ and allows you to make more CPU intensive code using C++. That said, this has a steep learning curve and isn’t quite as powerful as using something like Unity.
For the vast majority of situations, Android Studio is going to be the preferred choice, particularly if you’re making a basic utility or a basic puzzle game of some sort. If you want to make the next Angry Birds or Microsoft Office though, this isn’t the best option unless you’re a little more advanced and willing to dive in with the NDK.
Building an Android app with Eclipse is very similar to using Android Studio and was the main option before the latter was born. Eclipse is once again an IDE that lets you build apps in Java using the Android SDK. Setting up is similar and the workflow is comparable. The difference is that Eclipse wasn’t built specifically for Android development and can be used for a number of different platforms and languages. This makes getting started more of a hassle and the experience in general is a little slower and more prone to issues.
For the vast majority of situations, Android Studio is going to be the preferred choice
As Eclipse is no longer recognized as an official platform for Android, it’s generally advisable to switch if you’re still using it. For your trouble, you’ll find it’s easier to work with multiple projects, the interface designer is improved and Gradle support can come in handy. New developers are certainly advised to start with Android Studio over Eclipse.
In the interests of completeness, NetBeans is another IDE that supports multiple languages and platforms like Eclipse. Like Eclipse however, it’s kind of clunky compared with Android Studio for Android development. Once upon a time, NetBeans was one of the main alternatives to Eclipse (along with IntelliJ IDEA, which Android Studio is based on). Today though, there’s little reason you would choose NetBeans over Android Studio.
Xamarin is a Microsoft-owned IDE that is designed to make it easier to build cross-platform apps. In other words, you can build an Android app in Xamarin and then easily move it over to iOS and Windows using the same codebase, IDE and APIs. In Xamarin, you’ll be coding with C# and will benefit from things like automated testing across multiple real devices connected to the cloud. The other good news is that Xamarin recently became free and is now bundled with Visual Studio.
Xamarin is a solid option and may well be the right choice for you if you are already a C# ninja and not so fond of Java. It’s also a good choice if you intend on releasing your app cross platform and don’t want to give yourself more work than necessary. Of course it will inevitably take you a little further away from the ‘pure’ Android development experience however.
Xamarin also supports Monogame, a cross-platform gaming framework based on Microsoft’s XNA framework. This is a great tool for making 2D and 3D games but is arguably harder to learn than Unity or Unreal (below).
AIDE simply stands for ‘Android IDE’. This is a basic IDE that works similarly to Android Studio or Eclipse, supporting coding in Java. The big difference is that this is an IDE that runs on Android, meaning that you can code on the move using your mobile device. This also makes testing apps very simple because there’s no need to use an emulator or a test device. It also has a pretty good tutorial series which talks new developers through the basics of coding Android apps.
You probably won’t want to use AIDE for developing any big projects however. It’s still fiddly working on a small screen, there’s no real way to test on multiple devices and it lacks some functionality. For learning the ropes it’s pretty neat though (and a method I would recommend); especially as you can test each step very easily and take it on the road with you. Unfortunately, the more advanced lessons and features do require a subscription however.
Python is a programming language that is nice and easy to get to grips with and that many people find particularly elegant. Using Python is free and once you’ve gotten the hang of it, you have multiple options for building Android apps. You can use PyMob for example, or a library like Pygame Subset for Android (pgs4a).
You’ll lose some functionality compared with making an app in Android Studio and I certainly wouldn’t recommend it for making anything particularly complex… but if you just love Python and you’re building apps for your own use or that don’t need to be beautiful, then this is definitely an option.
If your aim is to avoid Java though, a better option would be to use B4A (Basic4Android) from Anywhere Software. As the name rather suggests, this is an IDE that lets you build apps in BASIC (Beginners All Purpose Symbolic Instruction Code). This is a very accessible language for beginners and practically reads like English on the page. The whole tool in fact is built around simplicity and speed and everything is kept very nice and easy without compromising any functionality. This is why B4A describes itself as a ‘Rapid Development’ (RAD) tool primarily.
You’ll have access to all the APIs and libraries you would through Android Studio (you can create or wrap libraries yourself in Java too) and there’s no notable performance cost. I’ve made a fully functional launcher with B4A, so most things are possible with a little creativity (this would have been a much bigger project had I used Android Studio). Another nice benefit is that coding in B4A makes it relatively easy to move your code to B4i so you can support iOS. If you’re relatively new to mobile development and you have an ambitious project in mind, then you might find B4A allows you to put it together more quickly than many other methods.
If you’re relatively new to mobile development and you have an ambitious project in mind, then you might find B4A allows you to put it together more quickly than many other methods.
That said, you’ll still find it easier to build an elegant Material Design app in Android Studio and to take advantage of the latest features of Android as they are introduced (although the support on B4A is very good). While it’s possible to make games in Android Studio and there are libraries out there to make it easier, it’s certainly not as well suited as some other options on this list. B4A also requires a one-off fee, which may put some developers off. I wrote a full introduction to B4A here.
Unity is a game engine and development environment for building multiplatform games. If you’re planning on making a game that includes realistic physics, lots of sprites, 3D graphics, dynamic lighting effects, etc., then this option will save you a lot of time and prevent you from having to build everything from scratch. If you’re making something relatively simple, then development through Unity can be as easy as dragging and dropping various elements into your game. On top of that though, you’ll also be able to add C# or Java code as needed change the way those elements behave giving you all the flexibility you need. An assets store lets you download/buy 3D models, scripts, effects and more from the community and publishing to Android is as simple as linking to the SDK and choosing the platform from a drop down menu. There’s plenty of support online and you can even build apps that aren’t games with a little hacking.
It’s free to use and many of the most successful games in the Play Store have been made with Unity. For those reasons, there’s really no reason to build a game engine from scratch any more unless you need to make something very specific and unique. Check out this introduction to Unity3D for more information.
Unreal is another game engine, which you have likely heard of if you’re at all into your gaming. The good news is that it is now free to use, and, like Unity, it makes it easy to publish games for Android, iOS, Windows, Linux, Xbox and more.
Compared with Unity, Unreal has a slightly steeper learning curve and is perhaps a little less suited for 2D game development. That said, it has the edge in graphics and getting started is still surprisingly easy. You can learn how to write a 3D game for Android using Unreal Engine here. Both Unity and Unreal also have the cool advantage of supporting VR content, meaning you can build apps for Cardboard or Gear VR.
As you can see, there are plenty of options for getting started with Android development and there are still more out there we haven’t touched on. The right choice for you is likely going to depend on the type of app you’re setting out to make, your skill level, your resources and your own personal preferences – there are no wrong answers here!
Taking the time to select the right IDE and language is important though, as it can save you a lot of time and frustration while ensuring that you don’t come across any limitations or roadblocks later on. Hopefully this guide has helped set out the options; the rest is up to you. Be sure to let us know what you decide in the comments below!