Building Android applications requires a deep understanding of programming and design. When approaching a new technology for the first time, it often helps to break it down into pieces. If you’re an experienced web developer, many of the concepts and technologies involved in Android app development will be analogous to things you already know – although building apps for mobile devices often requires mastery of a number of more nuanced concepts. Mobile devices have smaller screens, simpler processors, and – in the case of Android – many different manufacturers.That means that developers need to keep code flexible and account for various user interface scenarios. So what are the must-have skills for Android developers? We asked some of the brightest developers in our community – here’s what you need to know.
1. Java
Java is the programming language that underpins all Android development. For those who have gained most of their programming experience in languages like JavaScript and Ruby, there can be a learning curve when picking up the Java programming language for the first time.
Like JavaScript and Ruby, Java is object-oriented, but it is also stricter about handling data types. Developers have to be much more thoughtful with their code, defining the types of data their mobile applications plan to work with and more carefully allocating scarce memory resources.
“You can’t afford to have ambiguity in a mobile environment, and Java makes sure that there’s no confusion about what each component of your application is trying to do,” says James Traver, a seasoned Android developer who’s taught the Software Engineering Immersive at GA. “You end up writing less code, but your code is more elegant and precise.”
2. Understanding of XML: Building Android UI
XML was created as a standard way to encode data for internet-based mobile applications. It is a structured markup language, sharing many features in common with HTML – you may recognize the angled brackets, the <opening> and </closing> tag types, and the deep nesting of elements.
In short, it allows information to be passed between devices in a way that can be understood consistently. In the Android world, developers use XML to create layouts that serve as the foundational UI definition for Android applications.
Developers can also write Java code that modifies layout elements once the Android application is already running, in the same way that web developers use JavaScript to modify the elements in their website at runtime. But mastering the basics of XML is an important skill for Android developers.
3. Android SDK
SDK stands for Software Development Kit, which, though it may conjure up images of a briefcase full of spy tools, is actually just a fancy name for a set of pre-packaged code. The Android SDKs are modules of Java code that give developers access to mobile device functions like the camera and accelerometer.
One key component of the Android SDK is a library called Gradle. Let’s say that you want to integrate a social media platform like Facebook with your app. You would download a code library (or SDK) from Facebook, and then tell Gradle that you’re using it so that when your application compiles, your code stays well organized. New Android developers will spend much of their time discovering how the various SDKs for Android can be pieced together in different ways to put together an Android application.
While this will take time, each Android SDK comes with many examples that can be found in the official documentation, making it easy to understand what each package does and how to plug it into your app.
4. Android Studio
The integrated development environment (IDE) of choice for Android developers is called Android Studio. Android Studio is built on top of the well-respected IntelliJ IDE, and it comes with great out-of-the-box support for many of the most common Android SDKs.
Android Studio also features many of the capabilities developers expect of a full-featured IDE. Code completion helps make auto-complete suggestions as you type. Code debuggers let you step through your code to identify the source of errors.
There are even more advanced tools like memory and CPU monitors, helping developers make sure their code will maintain high performance on a mobile device. Android Studio is a must have for both the beginner and experienced Android developer.
5. APIs
As an Android app developer, you’ll likely want to interact with many other services. For example, you may want to allow your users to access a calendar from a third party service, or check the stock market.
An Android app development company usually offers APIs, and will tell you exactly how to query them for data in a consistent, secure way. While you’re free to interact with any existing API, Google also makes it very easy to connect to their own APIs from your Android app.
For example, you can easily use Google APIs to monitor the location of your users, let them search for local places, and reference a map from within your application. You’ll want to get comfortable exploring the nuances of different APIs, and recognize that no two APIs are exactly alike.
6. Databases
If your app handles large amounts of data, most of it probably won’t live on your device at any given time. Instead, your app will likely interact with a database living outside of your phone. Cloud services like Firebase or Parse provide simple APIs to store data in the cloud and make it available across devices.
These platforms also often provide Java libraries that you can plug into your app, making it easy to cache some of the data on the user’s device. This syncing of data between local storage and the remote database is important if you want to let users use the app when they’re offline.
Another way to store data locally is through Android’s built-in support for using SQL to interact with a SQLite database. However you choose to handle data in your application, you’ll need to explore and understand how databases work, and the ways to query that data to use it in your app.
7. Material Design
In contrast to competitors like Apple, Google has not historically maintained a consistent design aesthetic across their products. In recent years, that has changed. Google has released a set of forward-thinking interface guidelines and standards called Material Design, that are being rolled out across all their products.
These standards include tips for how to layer various elements on the screen and use specific styles like drop shadows. You’ve probably seen Material Design in real life if you’ve used a Google app.
While not mandatory, Google recommends that Android developers use these guidelines as a foundation for their own user interfaces. The documentation online provides a great foundational understanding of Material Design principles.
Bonus! A Good Idea
Good execution is only effective when working on a mobile application that users find useful. Before you get started building any mobile application, take time to write down your hypothesis – who will use your app and what problem will it solve?
Then wireframe your application using a tool like Balsamiq or Sketch, and show it to people in your target demographic. Get their feedback on the idea and be willing to iterate as you gather advice using the platform. Learn to put aside your fear of feedback as a mobile app developer and expect to iterate on your idea as you build your first Android applications.
Fun Fact: The first sketches of the Android robot were truly frightening. The logo went through many more iterations and rounds of feedback before finally landing on the famous Android robot.
Learn more about how to start a career change in coding with us.