Building Android applications requires a deep knowledge 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 a web developer already, many of the concepts and technologies involved in Android 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, meaning that developers need to keep code flexible and account for a variety of user scenarios.
So what does it take to become an Android developer? We asked some of the brightest developers in our community – here’s what you need to know.
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 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 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 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.
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 the Android developer.
As an Android 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. Many companies offer 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.
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 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 and use it in your app.
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 of 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 the new Google Drive app or the new Inbox by Gmail application on mobile. 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.
Like any other product you build, good execution is only effective if you’re working on a project that users actually 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. Learn to put aside your fear of feedback 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.