The Android ecosystem has changed dramatically over the years and along with its development tools.
This article will cover how one can start their Android Development career, covering what is and isn’t important to learn, and what to do to land your first job.
Should I learn Java or Kotlin for Android Development?
Google announced official Kotlin support for Android Development in 2017. Modern Android applications and libraries are written in Kotlin, even though Java is still used, primarily for legacy reasons. The two languages are very similar to one another and a project can use both languages. Java is older than Kotlin. This means that there is more tooling and support for Java. Kotlin is a modern language, making it simpler to use.
Google provides excellent support for both languages, although Kotlin is the officially recommended one for Android. In the industry, most companies ask Android Developers for Kotlin knowledge and experience, instead of Java. Because of this, I would encourage you to focus on learning Kotlin.
At the same time, do not ignore Java resources and tutorials online. There are plenty of Android resources written in Java which are still relevant to this date.
Android Studio, the official IDE for Android Development, is based on JetBrains IntelliJ IDEA. One cool feature it has is auto-converting Java code to Kotlin. This means that any snippet you might find online (i.e., on StackOverflow.com) can be converted to Kotlin for you.
Other than Java and Kotlin, there are other alternative languages one can use (such as C#, Javascript, etc). We will briefly talk about them in a later part of this article.
How to learn Android Development
It is possible to learn Android Development 100% for free as long as you have a computer and access to the Internet. You do not need to own any Android devices to start learning or to build apps.
The official Android Developers website is a great starting point. There you will find resources on how to get started learning and publishing Android applications. For example, Android Basics in Kotlin is excellent for covering the Android basics and it’s also 100% free.
Google also provides numerous Android codelabs, too. When you get more advanced with Android Development and need to explore more topics in depth, codelabs are fantastic for hands-on learning.
The best way to learn is by doing. As soon as you have a rough idea of how to set up your own Android app, get building.
This is by far the best way to learn as:
- it will provide you with a lot of the skills for your future day to day work
- it will make you more comfortable with dealing with code and looking for answers on your own
- it will give you something tangible to include in your CV
A small but well-crafted app will do wonders. Think about an app that you wish existed, or something you do everyday and wish was automated. It doesn’t have to be perfect or compete with Uber or Facebook; it needs to be completed and shipped.
Career life-hack: Join a community
Joining a community can have a tremendous impact in your career progression. Having a group of people that have the same struggles as you can feel much less frustrating and can lift each other up. This can also lead to long lasting connections with people in the industry.
The industry is much smaller than you might think. People tend to prefer working with people they already know. The best jobs in the market are not available through job postings but rather through word of mouth. Your friend in Dream Company Inc will be more than happy to refer you to your dream job instead of having to interview the thousand candidates that might apply. It’s a win-win situation.
Last but not least, communities usually share learning tricks, news, tools and memes. Instead of you having to search for everything on your own, people will gladly share it with you.
Job Offers
How do I find communities to join?
Check your local communities (such as your school/university/hacking groups) for anyone that happens to be learning Android. If you happen to have friends that are into Android Development, high chances are they are already part of a community, that they can happily refer you to.
Google has a directory of Google promoted communities (called Google Developer Groups or GDG) across the globe that can be accessed here.
meetup.com can be used to look up for nearby and online Android meetups, which can be a good lead for finding communities.
/r/androiddev is a great place to see what Android Developers are chatting about and it is one huge global community on its own.
Last but not least, have a look at Android’s official Twitter account (@AndroidDev). It is really active and usually shares tons of helpful bits there.
How to stand out when applying for a job
Certifications and diplomas are quickly losing their value in the job market and many big companies have stopped asking for Computer Science degrees.
On the contrary, what makes candidates stand out from the rest is real world experience. Luckily in our profession, this is something that can be achieved using the Internet. Specifically:
- building and distributing a real world application to the world (i.e., via the Play Store)
- creating a profile on GitHub and contributing to Open-Source Software
- share your journey of learning online, via blog posts and social media
The great thing about all the above is that they are timeless and will give you credibility throughout your entire career.
I know C#, should I start with Xamarin instead? (or Flutter, React Native, and other similar frameworks)
It is rare for a company to be working on Android apps without having an iOS version of the same app. In order to save effort and money, new technologies were created to generate both Android and iOS apps with the same code base. This produced frameworks such as Xamarin, Flutter and React Native.
Compared to native Android development, they are fairly different. They have their own tooling, programming language, communities, benefits and, most importantly, problems. While working with such technologies you will have to tackle the unique issues of each framework, on top of the ones that come with Android and iOS native development.
Start with the basics of Android Development and understand its quirkiness before getting yourself to more unknown territory.
What is Jetpack Compose and should I learn it?
Jetpack Compose is Google’s new UI framework for Android. It is a new way of writing UI using Kotlin. The new framework is a joy to work with and I can only say positive things about it.
Pragmatically, though, the framework got its 1.0 release quite recently. This means that companies have not had many chances to use it yet, and many are trying to figure out how to use it in their apps. It’s not a requirement for many jobs, yet.
For those starting to learn Android now, focus on the Android basics and build your first Android app using Views. You can always hack a new app with Compose to see what it is about.
Get building
This is how I would approach my career if I were to start from scratch after 10 years of Android development. Hope this article covers all the unknowns you might have had about starting yours.
Special thanks to Daniele Conti, Chris Basha and Sebastiano Poggi for proof-reading this article.
PS: I am on Twitter, sharing what I am building using Kotlin. Follow me (@alexstyl) for updates and sharings such as this one.