Starting out in Android development can be a daunting task – there’s so much information out there, so many tutorials and so many resources it can be hard to navigate.
That’s why we’ve compiled this big list of Android development resources and tools so you can find all you might need in one place.
From IDEs to learning tutorials, consoles to libraries, we’ve covered the very first steps a budding developer can take on this path, to useful libraries and plug-ins for the more experienced users.
The sections in this guide are:
Each section has a brief description of what it is before delving into the best tools within that category. If you decide that you don’t want to stick to just Android, but would like to go cross-platform, you can check out our list of cross-platform development resources, and if you’re thinking of making a game then you should probably read our guide on gamespecific resources.
Let’s jump in. We start with Android Editors and IDEs. What are IDEs you ask?
Android Editors and IDEs
IDE stands for “integrated development environment” – effectively a piece of software that allows you to create other software, in our case a mobile application.
According to Techopedia:
An Integrated Development Environment (IDE) is an application that facilitates application development.
Source: Techopedia
IDEs can contain a compiler, which translates the language you are coding in to Android’s Java, and a debugging console, all usable through the same graphical interface.
This is where you’ll be doing most of the work; creating, designing, testing and polishing your mobile app.
As well as “the originals”, that is to say Eclipse, IntelliJIDEA and of course Android Studio, we’ve chosen a couple of other platforms here to include C, C++ and PhoneGap, though generally, it is recommended that you stick to Java and HTML5.
Android Studio – The official IDE, based on the community-created IntelliJIDEA (see below).
Eclipse – Before Android Studio, this was the official Android development environment. Used to code Java but can be expanded to other languages via plugins, it is still a powerful tool.
IntelliJIDEA– Android Studio is based on this, and this IDE is not only extremely useful, but has a massive amount of community-created plugins, making it highly customisable.
DroidEdit – An Android text and code editor to use on Android platforms.
Android-IDE – A complete web and Android development environment, it also allows you to edit Java and PhoneGap apps.
Cordova – Mobile apps with HTML, CSS and JS, its one of the best tools if you want to create hybrid apps. Free and open source.
Corona – A 2D-development platform with a specific focus on games but can be used to create other types of mobile apps too. One of the best for cross-platform development and 100% free.
Build Games for Mobile, TV, and Desktop using Corona SDK
Source: youtube.com
Titanium – One of the lesser-known platforms, it allows for the creation of native apps for iOS, Android and Windowsphone and runs off a single JavaScript codebase.
Xamarin – Widely featured in the press and a very impressive IDE for native Android, iOS and Windows applications. Open source and free with two further price plans, it uses C# as its language
CppDroid – Allows you to code, edit compile and execute C and C++ code. Packed full of features including practice programs and syntax highlighting.
Experimenting with an IDE can be a good way to learn mobile app development, but if you want a more structured approach, we’ve got some tutorials for you.
Android Language Resources
There’s a number of languages you could use to develop Android applications, but the king of them all is Java, which is the staple for app development.
We’ve included tutorials for this below, as well other languages such as LUA and Cordova (for hybrid apps), C and C++. A word of warning for C and C++: you can use them with the Android Native Development Kit to create Android apps, but while this always means an increased app complexity, it doesn’t always have the pay off of better performance.
Java – Straight to the source, if you’re developing in Android, Java is probably the language you want to be using. Has it’s own development kit, but there are plenty of other SDKs out there too.
Codecademy – One of the premier code-learning resources online, it has been used by thousands of people to get into Java coding, as well as other languages and frameworks. An interactive, learn-as-you-code format.
Team treehouse – Another e-learning website, but well known for the strength of its Java courses.
Udemy – Online learning can’t go without mentioning Udemy, which features dozens of both highly specific and generic Java learning courses.
New Boston – Youtube tutorials to learn how to develop in Android – currently has over 5 million views. Covers everything from setting up the SDK to XLM Layouts. 200 videos in total.
Android Application Development Tutorials 1
Source: youtube.com
Ryan Park Apps resource list – Ryan Parks taught himself how to code in Java and published, among others, a personal finance application. This is the list of resources he used.
Oracle Java Tutorials – Both general and specialised Java tutorials by IT giants Oracle, starts from the very basic concepts and overview.
Cave of Programming – Covers both Java and C++, comes with exercises and tests: also sometimes offers paid-for courses for free, pending approval by the creator of the site, John.
Mkyong – Very specific tutorials and guides on Java development. More for the skilled coder who knows what they’re looking for.
Programming by Doing – Points-based tutorials refined over 15 years which can also be bought as a book. Final exercise is creating your own Paint clone, and it has its own support subreddit.
Java Design Patterns – Github repository of Java implemented design patterns.
C++ and C
LearnCPP – Free and extensive website to learn coding C++. This is really the long way around to Android development, but C++ does give you further options beyond mobile apps.
SoloLearn – Offers courses on all sorts of languages beyond C++ too – over 80 lessons going from the basics to classes and objects, structured much like a game.
LUA with Corona
Corona Learning Centre – The Corona SDK (the builder is further down in this list) creates Android apps using the LUA language, and is one of the most used languages after Java for the platform. Highly recommended.
Tyler Neylon – “Learn LUA in 15 Minutes” is perhaps a bit ambitious, especially for the novice developer, but it’s about one of the clearest explanations you can find for LUA online.
Programming in LUA – The most extensive resource for learning LUA. Written in 2003 but still very relevant, and available as a book too.
PhoneGap/Cordova/Others
TutorialsPoint on PhoneGap – Not really a language, but basically Cordova plus additions by Adobe to develop using HTML, CSS and Javascript. You can get PhoneGap here.
Coenraets on Cordova – Very comprehensive tutorial on building mobile apps with the free and opensource engine managed by Apache. You can download Cordova here and find PhoneGap tutorials on the Coenraets website too.
Kotlin – Fairly new programming language made for JVM and Android, claims to be fully interoperable with Java. Comes with its own tutorials and knowledge base and was made with Gradle in mind.
Getting Started with Kotlin in 2 minutes
Source: kotlinlang.org
This next section is for those who are perhaps a bit more experience, but there’s nothing stopping you from reading through it to find out what libraries are. You’ll need them sooner or later!
Android Libraries
A library, in the software development world, is a collection of data which can do any number of things: set rules for app behaviour, graphic effects, pre-written code, templates, text, communication protocols and much more.
A lot of these libraries are organised by their topic or activity – you can find libraries for translating objects from one language to another, or for managing the way certain visuals move and behave on screen.
The dev community tends to be quite open with a lot of their work, and chances are someone has made the library you need, but you can always pick and choose bits of code that are useful to you and put them into your own library.
Universal Image Loader – Does what it says on the tin with out-of-the-box loading and caching of images. Highly customisable.
GSon – Serialising and deserialising Java objects in JSON.
Retrofit – Described as an “elegant solution for organising API calls”.
Awesome Java – A list of some of the best Java frameworks and libraries.
AndroidView Animations – Library with very simple syntax to get regular View animations working smoothly.
EventBus – Aimed at making communication between parts of your application as smooth and easy as possible.
ButterKnife – Very lightweight library which streamlines various wordy Android syntax issues by using annotations to create boilerplate template code.
Picasso – Specifically useful when download images for apps. Just inputting the image’s URL will download the image, store as bitmap and cache it.
Awesome Android Libraries – A curated list of Android development libraries, organised by functionality, name and license.
Android Arsenal Libraries – A good resource all round, but in this case a collection of quality (and free) Android dev libraries.
Now, if you want to customise your coding environment, look no further than plug-ins…
Android Plug-ins
Snippets of code and “add-ons” for improving quality-of-life while coding; from efficiency, syntax and other functionalities, plugins can be your best friend when customising your developing environment.
Once again the dev community tends to share plugins, and there are an absolutely huge amount out there waiting for you to discover them.
Plugin collection for IntelliJ – The main repository for IntelliJ plugins, an absolute treasure-trove of handy tools for the IntelliJ IDE.
A curated list of IntelliJ Plugins – The above repository is absolutely huge, so to help you get started and find some gems, here’s a curated list of the best IntelliJ plugins.
Import Drawables – For IntelliJ, allows importing of drawables at different resolutions and other image-based functionalities.
GenyMotion – One of the biggest and most reliable testing and emulation tools for Android apps – employed by BlaBla Car among other high-profile names.
Genymotion Android Emulator
Source: youtube.com
Boilerplate Code Generation – For IntelliJ, generates parcelable boilerplate code.
Android Holo Colors – Generates all necessary XML to have editext and colour spinners in your Android app.
Butterknife Injections – Works with the ButterKnife library to generate boilerplate code injections.
H.A.X.M. – Stands for Hardware Accelerated Execution Manager, developed by Intel, it executes Android apps faster for those who use SDK emulators.
Robotium Recorder – test framework for both native and hybrid applications, both on emulators and Android devices.
ADB-IDEA – A quality-of-life and productivity plug-in to increase the speed at which you develop Android apps. Compatible with both Android Studio and IntelliJ IDEA.
IDEA Vim – Vim emulation plug ins made by Jetbrains and based on the IntelliJ platform.
Folding Plugin – Highly recommended file grouping plugin
CodeGlance – Creates a “code minimap” within your IDE for easier navigation, integrates with your pre-existing syntax highlighting.
Android Material Design Icon – Now built-in to Android Studio 1.4, one of the easiest ways to create icons at just the right size and resolution.
KeyPromoter – Can’t get the hang of keyboard shortcuts? This plug in will constantly remind you how much faster you could be doing things.
Final Thoughts
We hope the above list has something for everyone, from those just starting out to the more experienced developers looking to hone their skills and if you need or want even more resources, you can always have a look at our App Development Tools directory.