How do you get started in Android mobile development? With cheaper (read: more accessible) devices and a large user base worldwide, Android jobs are abundant – but what makes a great Android developer? Chance Payne has a BA in computer science and is a self-taught mobile developer (and teaches the new Lambda School Android course) shares the ins and outs of Android. Learn about which devices use Android, get a better understanding of the Android job market, and see how you can be part of the next generation of Android developers.
What are the origins of Android development?
What devices use Android for their operating systems?
Wear OS was recently rebranded from Android Wear, and runs wearable devices like smart watches. Android TV runs Sony TVs and the Google Nexus. We also have Android Things, which was officially released earlier this year and runs on embedded systems like Raspberry Pi.
Chrome OS devices like Chromebooks also run Android apps. You can run the apps on PC and Mac using emulators.
The most popular technologies used when developing for Android are:
The majority of Android development is built in Android Studio using Java. You’ll also use XML, which is a markup language used to store information. C++ is possible but less common. Most Android apps work with a web server and communicate with an API. A lot of times, web servers will return data in a language called JSON, which is another way of marking up text to make it easier for applications to parse and pull data.
You can also use Unity for Android game development. You write code for the Unity platform, then compile it, build it, and export it for Android.
How popular is Kotlin in Android development?
Google recently started pushing a new language called Kotlin. There aren't very many employers using Kotlin yet but we researched it before developing the Android curriculum at Lambda School. Kotlin is a really cool language and it seems to be a lot easier to use than Java.
In the next few years, Android development will definitely transition more towards Kotlin because from all reports, it’s a better language. Google doesn't have a good relationship with Oracle, who owns Java, so the rollout of Kotlin usage is slowly growing. However, we'll always have to work with Java because there are so many existing apps to maintain and update.
What is the demand for Android skills within the developer job market? Are Android developers more in-demand in certain parts of the world?
The Android Job Market
Right now on Indeed, there are about 7,400 Android jobs, and 6,500 iOS jobs worldwide – so they're pretty neck and neck in terms of demand for developers. There’s parity in jobs based on market share.
There are slightly more Android users (53.3%) than iOS users in the US (46.7%), but the majority of Android users live in developing countries. Since 90% of smartphones worldwide are Android, you would think 90% of mobile development jobs would be in Android. However, iOS apps on average make more money than Android apps because Apple relies on premium purchases (you rarely see that on the Google Play Store). iOS users are statistically more likely to spend money on apps than Android users are. Apple makes money by selling hardware, whereas Google provides services for free, and makes money from the number of eyes that see advertisements on those services.
Should I learn Android or iOS mobile development?
You have to have a Mac computer to develop for iOS, but you can develop Android on any computer. Since Lamda School’s iOS course is just starting, it’s been a big hurdle for a lot of our students to attend. A Mac costs around $1,000, whereas a Windows laptop costs $300, and you'll get a device with equivalent functionality. So there is a lower barrier to entry for people to have the tools to develop for Android. If you want to use affordable tools to build a product that could be used by 90% of smartphone users, then Android is a great system to learn.
I learned Android because I’ve always had Android smartphones, and really enjoyed them. I like the ability to build something and then see it on my phone on a dedicated, full screen, and designed from the ground up for that user interface.
What’s the difference between developing native apps with Android versus using a mobile framework like React Native?
Native applications have a much better user experience – hands down. An HTML app like React Native doesn’t compare to a native experience. There are additional layers between the hardware and your app that will slow it down. When a user taps a button, it has to pass through all these layers that will just increase the time it takes for your app to react.
Is Java for Android a good first programming language for beginners?
My advice for students – go with what you're interested in. You're not going to dedicate the time to learn something you're not excited about. Lambda School students are so excited to learn and willing to put in the time. That's why we have a full-time, immersive course; we expect our students to dedicate the time because they're excited about Android.
Google has a lot of free online resources to help people build Android apps. Why would people need a coding bootcamp like Lambda School to learn Android?
The biggest downfall of most online platforms, especially the free ones, is that they consist of only video content. You watch a video and if you're dedicated enough to come up with your own projects, work on those projects, actually practice and learn, then it's great. But if you can’t do all of that, then it's a waste of time.
Lambda School students have a greater advantage because they get lectures, examples, projects, and dedicated time with project managers.
Tell us about the curriculum in Lambda School’s online Android course.
The online Android course at Lambda School starts with a free two week mini-bootcamp for anybody to join. We go through the basics of Android Studio, Java, and Layout Editor so students will be able to build a relatively basic app. After that, you do the Lambda Challenge, where you take a test to see how well you've absorbed those skills, and then you'll interview. If you get through all that, you start the full-time course.
The course is 15 weeks full-time. You spend 10 weeks on computer science principles, then you have 5 weeks to work with Lambda Labs to develop a capstone project. In the morning, we have two hours of lecture. We’re also building video content to allow students to get some pre-lecture content. As an instructor, I work with the students through examples and problems during the lecture. Students then work on an assigned project, and work with a TA as their project manager to review their code, talk about what's going wrong, and what they can improve.
Each week of the curriculum is built on the previous week’s material so that students have coherence in their learning from start to finish, and things won’t fall through the cracks. We'll cover the basics of programming, Java at an intermediate level, multi threaded applications, networking, the very basics of SQL databases, polishing the UI, and a couple weeks of Kotlin.
How does Lambda School prepare students for jobs in Android development?
After receiving feedback from students and instructors at online coding bootcamps, it shows how important it is for students to have that structured classroom time. Lambda students have a support system to cheer them on along the way, especially throughout the job search. We provide tools for negotiating salaries, where somebody is holding your hand and walking you through your first salary negotiation. You can definitely see the importance of learning at a place like Lambda School, as opposed to just utilizing online content.
Everybody at Lambda School is focused on getting students high paying jobs. We have a whole team dedicated to helping students find jobs and maximizing their salaries in those jobs. Lambda School doesn't get paid until you do, and we get a percentage of what you're paid. We're incentivized to make sure that you get paid as much as possible.
How is the course different from a university?
As a computer science university student, I often thought,"Why am I paying all this money and taking all this time to go to university and learn these things?” Lambda School is working to solve that problem by giving students an advantage that they wouldn't have if they went to a 4-year university. At a university, they cover one topic, then you switch professors and topics. At Lambda School, you have a thorough learning experience from start to finish.
This curriculum process is definitely iterative. We constantly iterate on the learning material, and we’re building an Advisory Council – people whom we can trust to review the curriculum and give us feedback on what they think are good what things we can improve on.
On top of Android, what other mobile technologies are you excited about right now? What do you think is “next” in mobile?
As far as new technologies, I am personally excited about virtual reality. I just got the Google Daydream headset and that's a blast to work with. For regular consumer technology, I see smart glasses and augmented reality being huge. I recently downloaded an augmented reality tape measure – there are a lot of fun little things like that that demonstrate what technology can do.
Things to look out for in mobile tech:
Android is really leading the charge as far as adoption and new technologies. Artificial Intelligence is going to be even bigger than it is now!
What skills and qualities do you need to be a great Android developer?
I think the most important quality is your desire to learn, and the willingness to put in the work, because you're going to run into problems. The most common thing I did when I was working in the field was fixing mistakes made by other development teams. You will need the skills to be able to look at code to see what you don't know and to work to learn it and improve it. Stick with it, you CAN be a developer, it IS in you, it will take a lot of work, but everything that is worth anything takes a lot of work!
For people who are interested in learning more about Android, what resources do you recommend?
As far as resources go, Google does have good documentation and very good introductory tutorials on how to build your first Android app. Then, try Lambda’s free Android bootcamp!
Start coding at these 14 coding bootcamps!
Watch this Python vs R video tutorial from Galvanize instructor Sean!
Learn why (and how) you should search for an internship with Rachel Bussert of Epicodus