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.
The History of Android Mobile Development
What are the origins of Android development?
- Android is an operating system for smart devices and was first created by the company Android Inc, but it wasn’t released until 2007, after Google purchased it and shifted Android to be a tool to run Google services on a wider number of devices.
- Fun Fact: Android versions are named around desserts and in alphabetical order (cupcake, donut, eclair, froyo, gingerbread etc). In the Android community, there’s always big hype and speculation on what the next name will be. When they released Android Oreo, people were a little shocked because it was a trademarked name rather than a generic dessert.
Devices that Use Android
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.
Technologies used for Android Development
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.
The Android Market
What is the demand for Android skills within the developer job market? Are Android developers more in-demand in certain parts of the world?
- 89.5% of smartphones sold worldwide are Android
- 53.3% of Android users live in the United States
- Android users lead market share in developing countries like Asia and Africa
- Google Play saw 36 billion downloads in Q1 and Q2 of 2018, compared to 15 billion downloads for Apple
- In 2017 Google Play app purchases earned around $3.3 billion, while the App store earned around $5.4 billion
- Android users purchase fewer apps on Google Play than Apple users purchase on the App store and 69% of Android apps are free
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.
Learning Android Online at Lambda School
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.
The Rise of New Mobile Technologies
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:
- Smart glasses/augmented reality
- Google Cardboard camera with 360 pictures
- Google Daydream headsets
- Virtual reality in the sports industry
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!
Becoming a Great Android Developer
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!
Learn to Code in 2019
Is learning to code on your New Year’s Resolutions List? Find coding bootcamp course dates for 2019!
Your Holiday Coding Bootcamp Checklist
5 questions to ask yourself over the holidays (if you want to attend coding bootcamp in 2019)
Git and GitHub: A Guide for Beginners
Turing School instructor David explains Git, GitHub, version control, and repositories for beginners