The languages
The main language of Android is Java. It’s one of the most widely used programming languages in the world, if not the most widely used. It’s considered reasonably easy to pick up, though perhaps not as beginner friendly as Ruby or Python. But because it’s so widespread, there are thousands upon thousands of resources online for learning the language, even some courses designed specifically for total beginners. Recently, Google announced that it would support the Kotlin programming language as an official language of Android development. Many programmers love Kotlin—it’s powerful and safe, but at the same time it’s also fairly concise (it gets a lot done with just a little bit of code). Especially compared to Java. If you’d like to check Kotlin out, there are already a lot of great learning resources online, some of them completely free.The tools
Android developers need to master a wide range of skills and technologies to be effective on the job. Here are a few of the most important ones:Android Software Development Kit (SDK) is a suite of software development tools provided by Google to develop Android apps. The Android SDK contains powerful tools that will help turn your source code into a functioning Android app. It also comes with a mobile emulator that lets you see how your app will appear on various mobile devices by simulating them on your desktop. There’s a lot to learn, but for a quick tour, this tutorial is good place to start.
Android Studio is the approved Integrated Development Environment (IDE) for Android development. An IDE is a program that developers use to write code, but it’s a whole lot more than just a simple text editor.
Android Studio has tools for analyzing your application’s files and helping to make them lighter, a smart code editor that will help you write code quickly and cleanly, and lots of other goodies that will eliminate a lot of the time-consuming and tedious parts of app development so that you can focus on, well, your app!
This video from Google Developers gives a more in-depth overview of what Android Studio is all about.
XML stands for “Extensible Markup Language”, but everybody just says XML. XML is used to define how your app’s user interfaces will appear. Like HTML, it’s just used to tell a computer how to display various elements (in this case, what your app user will see on her or his screen).
You won’t have to become an absolute master of XML to work as an Android developer, but you will have to understand the basics.
Git is a version control tool. This is one of those skills that has more to do with the practicalities of “real world” software development. When you’re first starting off, as a one-man or a one-woman operation, writing apps at your desk on your own IDE, it might not be clear why you’d need Git.
But when the realities of professional app development kick in—working in big groups, routinely pushing out new versions of an app to users, allowing other people to modify code you’ve written without completely overwriting it—that’s when the importance of version control software becomes very, very clear.
Udemy has a pretty affordable “masterclass” on offer—of you can just dive in with one of the many smaller free tutorials available online.
Senior Developers
If you’re looking ahead to taking on a senior dev role one day, you’ll have to master all of the basics and then some. Senior Android developers should:Know how to test. If you’re taking on a senior development role, you’ll be the one, ultimately, who has to take responsibility for the validity and performance of each and every piece of your software. A knowledge of software testing—and the technologies that are used to do it in a professional development environment—is crucial. Unit testing frameworks like Espresso and Robolectric provide robust and efficient software testing for Android developers.
Understand REST. As a senior developer, you’re going to need to take responsibility for the experience of users in the real world. And that means taking into account all the various other applications and platforms that your app users rely on, as well as the way they actually use apps to get real-time, up-to-date, rapidly-changing information.
One important part of this equation is mastering the use of REST, which is the way you allow your app to transfer data between all sorts of sources on all sorts of platforms. For a very basic introduction to REST, have a look at this
video or read this tutorial for a more in depth look at RESTful APIs in Android.
Work—and manage—the Agile way. If you’re doing software development professionally, you will almost inevitably find yourself working as part of a team. And if you’re in a senior role, that’s even more likely to be true. To bring some sanity and order to a development process involving many different people working on various parts of a project, sophisticated project management strategies have evolved.
One of the most popular of these in the world of development is Agile. Although you’ll probably already be somewhat familiar with this if you’ve been working in development for a few years, as a senior developer you may be called upon to take a leadership role in the process.
It might be worth looking at some of the free learning resources available online or even considering an Agile certification in order to set yourself up for success down the road.