Learning Android Development In 2019 – Practical Guide
Android is the most popular mobile operating system. Android claims a whopping 2.5 billion active devices, including mobile phones, tablets, and others.
So if you’re interested in becoming a mobile application developer, Android is a pretty good choice. How about career prospects? StatCounter says that Android has more than 75% of the mobile device market share as of 2019. That figure has risen year-on-year from just 44% in 2014.
Android surpassed Windows, Symbian, Blackberry, and many others that have fallen along the wayside. So we don’t have to worry about it in the foreseeable future.
As of late 2019, the Android Playstore had 2.4 billion active mobile applications, with the only comparable competition from Apple, with just 1.8 billion[Statista].
Those are some pretty compelling reasons to choose Android development. In this article, we’ll tell you where to get started and what to learn.
Getting started with Android Development
Before getting down to the core activities of an Android developer, let’s look at what technical and non-technical skills are needed.
The first and most important technical skill is learning a suitable programming language and the concepts related to it. We’ll be looking at that next.
You’ll also need to know about the Android SDK and concepts related to developing Android apps.
This includes learning the Integrated Development Environment (IDE) and becoming familiar with the Android documentation and Material design. Build tools such as Gradle and version control tools like Git are also important. You will also need to become familiar with using emulators to test your applications with different devices.
Other technical skills include knowledge of SQL, XML, APIs, and preferably a back-end development language. This is important because many companies expect you to be involved in their back-end developments.
Another important area to be familiar with is the Android Playstore and its developer console.
In terms of non-technical skills, Android developers, like other types of developers, will be expected to be good at multitasking, analyzing user needs, creating intuitive user interfaces, and communicating with others.
A Step-by-step guide to learning the core of Android Development
What is the best language to learn
Like we said in the previous section, the most important decision you will make is the programming language you select. You may end up learning more than one, but where you start is important. Let’s look at the main ones, and save the best for last.
As of May 2019, the official Android documentation recommends Kotlin as the language of choice.
Introduced at Google I/O in 2017, it is very similar to Java and is also a statically typed programming language. There is a lot of documentation and guides for Kotlin on the official Android website.
However, it is still gaining a following, and many legacy applications will continue in their existing languages.
Many other languages can be used to develop Android applications. However, they have not gained a lot of market share due to lack of support from Android, the community, and tools. These include C, C#, C++, and even Python.
As we said, we saved the best for last. Java has been and still is the most popular and highly used programming language for Android.
Java has been around long before Android and has been one of the most versatile programming languages since its introduction in 1995 by Sun Microsystems.
Used not only for Android but desktop and web-based applications, Java has gained a large following. Given the level of integration it has with a multitude of legacy applications, it’s not going away, not anytime soon.
The majority of applications of the Android Play store are made with Java. Those numbers may gradually change with many new apps being created with Kotlin and alternative frameworks such as ReactNative and Angular. However, Java will still have its place, both due to its versatility for core functions and due to its larger development platform.
It’s clear; Java is the best programming language for you to start learning for Android development. We’ll go into the intricacies of learning Java and Android development in the next section.
Where to Start
As an Android Developer, the are the core areas that you need to learn:
- The Activity Lifecycle – it will allow you to create an application with a clear and error-free flow.
- Fragments – they are a powerful UI tool, especially when developing for multiple devices.
- Debugging – essential as you can’t view the core of your application on a mobile device like in other types of applications.
- Activities – an integral part of the screens of an application. Being familiar with the task and back stack is crucial.
- App Context – provides controls to resources and much more.
- Multi-threading, thread performance, and the thread pool.
- Memory management, memory leaks, and garbage collection. This will greatly improve application performance.
- Device configurations – screen orientation and keyboard availability can change during the runtime; these need to be managed.
- The Android Content Provider – helps to access data of other apps.
- Major 3rd party libraries.
- Android Core concepts like Looper, Handler, and HandlerThread related to asynchronous programming.
- Service and IntentService for background operations such as playing music.
- Android App Optimization and metrics.
- Interactions with hardware interfaces have to be studied.
- Custom Views.
- Android UI and the GPU.
- Android Architecture Components like Android Jetpack.
- Architectures such as MVP and MVVM.
- Android Development Best Practices.
Building a Learning Plan
One of the best ways to learn anything is to have a good learning plan. Use the information in the earlier sections to compile a list of topics that you need to learn.
Find articles and tutorials for each of these topics, and they can be ebooks or videos. Once you have all the material, the next step is to create a schedule that suits you. Each person has their own pace. Be flexible as you may not be able to reach your goal every day.
Last but not least, the most important step is to follow-through. All the preparation and resources in the world will mean nothing without proper commitment.
These are the sections I would include in such a plan:
- Learn the core concepts of Java
- Learn other requisites like MySQL, Git, and XML
- Installing and configure Android studio, and related tools
- Follow tutorials and create some sample applications
- Learn advanced concepts (refer to the earlier section)
- Learn tools for debugging etc.
- Become familiar with the Play store
The official Android documentation for Java is a great place to start.
Other sources to learn
There are many free resources on the internet. These are some of our recommendations:
- The book “Head First Java” by Kathy Sierra and Bert Bates
- The Android documentation for Java
- There are many courses on learning sites like Udemy
- StackOverFlow is another great resource, especially when you have coding problems
If you are just getting started, all this information can be overwhelming. But we hope that the step-by-step approach of this article will help you to make sense of it all.
Java is the best programming language for you to start learning in your journey of becoming an Android developer. Learning the concepts of Java will help you greatly, even if you want to learn other languages later.