Becoming an Android Developer
In Chapter: Getting Started
Author: Ian Darwin ('idarwin')
You want to become an Android Developer, and want to know what the stages of growth are.
==== Become an Android User (Grasshopper stage)
You must use Android to be able to develop it effectively! You should buy the biggest, bad-ass-est device you can get your hands on, and, it has to be one with a fairly vanilla UI (noting that some vendors are worse than others at modifying thing like the home screen). And even more important, it has to be one that gets updated early and often, so you can actually be familiar with new releases. For this reason, either a new Pixel device direct from Google, or, one of several commercial devices that has in-house support for a community build (Cyanogenmod) and a committment to maintain your device for a couple of years. For myself I currently use a Pixel 2.
See the Recipe _Android User Tutorial_ 4774.
==== Making your Device Believe You're a Developer
To enable Developer Mode on your Android device
(which you need to sideload apps onto it), you have to
go into Settings, then About Phone, find the Build Number, and tap it seven lucky times.
On the seventh tap, a little leprechaun inside the device will let you be a developer!
==== Learning Java (Coffee stage)
Android apps are written in the Java language, using a runtime that supports almost all of the Java standard library ("public API") except for java.awt and javax.swing. You need to know the Java language and the standard API (java.lang, java.util, java.net, etc.).
Consider attending the JavaOne conference and/or Java Developer Days.
==== Learning Android Basics (Developer Apprentice stage)
There are many books, including the current volume, which cover the basics. You need to understand the Android lifecycle, threading model, networking, content providers, graphics.
You will be at this for a good long time; do not lose patience! There is much to learn.
There is also the official tutorials for everything at developer.android.com.
Consider attending DroidCon if you're in North America or the Android track at
InfoQ or JAXen if you're in Europe.
==== Choose an IDE (conflict stage)
For the first 8 years of Android the only IDE (development environment) was ADT (Android Dev Tools), the official Eclipse plug-in. Then somebody at Google fell in love with the Gradle build tool and convinced the rest of that team that the only way to get there was to switch the entire IDE from Eclipse to IntelliJ. Thus Android Studio was born; it is IntelliJ with an Android plugin and using an external tool called Gradle to compile and package. Many of us thus consider it a DDE, a dis-integrated IDE. To keep the conflict alive (well, realistically, to support people that like Eclipse), a group at the Eclipse Foundation took the ADT source that Google had abandoned (it's open source, after all),
and re-packaged it with some additional functionality to make "AndMore", the Android ADT follow-on. So now you still have to choose one or the other. I'm hoping to stick with AndMore.
==== Learning Advanced Android (Developer stage)
Read the source code of the Android API (It's in the download for every release; check the source code box in the SDK Downloader in your IDE).
==== Android Expert (Guru stage).
Yoda says: "Reach this stage on your own, you must!"