Being an Android Developer in 2020

In this article, we’ll see how to be a good Android developer in 2020. We’ll go through some concepts which are essential to know for every Android developer.

Kamlesh Patil
GDSC DYPCOE
5 min readSep 16, 2020

--

Photo by Tim Bennett on Unsplash

Let’s become a better Android Developer.

This article is for:

  • Anyone who wants to learn Android Development but have no idea where to start.
  • Also for anyone who has already started on Android Development but wants to become better.

The goal is to provide a proper roadmap to become a better Android Developer. If this roadmap helps you in becoming a better Android Developer, then my mission will be accomplished.

A complete guide for learning Android App development

Roadmap for Android Developer

Programming Languages — Java

  • Why Java? — To get the most out of the Kotlin, it is good to have the basic knowledge of Java.
  • If you know the basics of Java, good to go ahead. Else go here, learn and come back.

Installing Android Studio IDE and Getting Started with Android

  • What is Android and How it works?
  • Install Android Studio

Components of Android

  • What is Activity?
  • UI Design — User Interface
  • What is View and how it works?
  • What is the Intent?
  • Activity Lifecycle with Example Use Cases
  • Dialog UI

Shared Preferences

  • Even though you kill the app and reopen it, the data persists as the data can be persisted by using the Shared Preferences.

RecyclerView

  • To build the UI showing the list of items, the Android App uses RecyclerView.
  • Apps like WhatsApp use RecyclerView to build chat-screen.

Getting Started with Kotlin

  • Google has officially declared Kotlin as a first-class language for Android. It is important to learn Kotlin now.
  • Kotlin is concise, null-safe and interoperable.
  • Start with the very basics of Kotlin.
  • Convert your Java code into Kotlin using the basic knowledge of Kotlin.

Singleton, Process, and Thread

  • Apps like WhatsApp take advantage of thread to make the app run faster and give you the best user experience.
  • These topics will help you during the interview process too.

Database Implementation

  • WhatsApp uses a database to store your messages, even if you are not connected to the internet, you can see all the messages which you had sent or received.
  • Most of the applications use Databases to store data.

Permissions and Image Loading

  • WhatsApp asks you the contact permission.
  • For example, Instagram loads the images in the feed using the Image Loading libraries like Glide.

Work Manager

  • Using WorkManager, NewsApp can fetch the data even when you are sleeping and show you the fresh news when you open the app in the morning even if you are not connected to the Internet at that particular time.

Notification

  • Almost all the Android App uses Notification to notify you about any updates.

Networking

  • Apps like Instagram, WhatsApp make network calls to fetch data from the server.
  • For getting started with Networking, make the Network call using the Fast-Android-Networking.

ViewPager and Fragment

  • WhatsApp uses ViewPager to let users scroll between chats fragment, status fragment, call fragment.
  • Activity contains Fragments.

Debugging and APK Release

  • Debugging — It is a learning opportunity for developers. It is one of the most important skills of any developer.
  • APK Release — In the end, you release your app on PlayStore and reach your users easily.

Essentials

  • What is Context?
  • Object-Oriented Programming — OOP
  • Class Design and Structure
  • File System, Read, Write, Assets read write
  • ConstraintLayout in Android
  • Canvas API in Android
  • Custom View

Dagger

  • When projects become bigger, you will need to know about Dependency Management and use Dagger in your project to manage dependencies.
  • Companies like Google use Dagger in their Android Applications.
  • Learn to design your own dependency management framework.

Learn Kotlin

  • Revisit the basics of Kotlin.
  • Start learning the Kotlin language-specific features.
  • Learn Kotlin advanced features.
  • Nowadays, the new projects at most of the companies are getting started with Kotlin. Also, the older Java projects are getting migrated into the Kotlin.
  • This is the high time to Learn Kotlin.

Architectural Components

  • Architecture components like LiveData, LifeCycle, ViewModel help in managing our UI component lifecycle and handling data persistence.
  • Challenges of lifecycle handling, Activity rotation problem
  • Learn to create a Lifecycle Aware Component
  • Sharing a ViewModel

RxJava

  • RxJava has become the single most important skill for Android development.
  • Almost every app uses RxJava to do multithreading.
  • RxJava makes developer’s life easy.
  • How does threading work in Android?
  • Also asked in most of the Interview.
  • Learn with practical examples.

Database Design

  • Apps like WhatsApp use databases to store your data at Android end and design the database to make the query faster so that your app runs faster.
  • Nowadays, we use Room which is the library created by Google. Room provides an abstraction layer over SQLite to allow fluent database access while harnessing the full power of SQLite.
  • Learn about the Relational database concepts
  • Normalization and many-to-many relationships
  • Learn about the TypeConvertors, Migration in Room Database.

Networking

  • Android Apps like Twitter, Instagram, Facebook uses Networking libraries like Retrofit to fetch the data.
  • Nowadays, Retrofit is one of the prominent libraries to make Network calls.
  • Learn to create GET, POST request and handle complex data Model
  • There are many concepts associated with networking which you must know such as multipart for uploading images, interceptors.

MVVM and Instagram project

  • Learn to build Instagram like Login, Feed, Post Creation and Profile page using the MVVM Architecture with Architecture components, LiveData, ViewModel, ViewModelFactory, Dagger, Retrofit, RxJava.
  • Learn about MVC, MVP, and MVVM architecture.
  • How does the ViewModel, ViewModelProviders, ViewModelProviderFactory work?
  • Build Features like Capture image through Camera, Pick image through Gallery
  • Image Upload using Multipart.
  • Principles of lifecycle aware RecyclerView
  • Implementation of Lifecycle Aware RecyclerView ViewHolder: Generally developers miss this. Good developers consider all the edge-cases while developing Android Applications.
  • Implement Pagination feature using RxJava

Unit Testing

  • Testing is a software development process in which we do so many different things to find bugs. Less the number of bugs, the more the chances of performing well in production for that particular software.
  • It forces you to follow architecture in the codebase, helps in fast failure detection in the development cycle, and helps you in safer code refactoring, letting you optimize code without worrying about regressions.

Kotlin Coroutines

  • What exactly are Coroutines?
  • Need for the solution which Kotlin Coroutines provide
  • Dispatchers, suspend, launch, async
  • What are scopes in Kotlin Coroutines?
  • Exception handling in Kotlin Coroutines

Android Build System and Memory Management

  • Knowing about the Android Build system, Memory Management is very important for Android Developers.
  • It will help you in building the Android apps which will consume less memory
  • Also in cracking the Interviews of top companies.

Android Multithreading and Handler-Looper

  • Knowing about the Multithreading will help you in doing tasks in the background efficiently.
  • Android Looper, Handler, and HandlerThread are among the building blocks of Android OS. So this is one of the most asked topics during the interview.
  • Multithreading and Handler-Looper are important for interviews.

Networking Caching Interceptor Image Loading

  • Knowing the internals of a 3rd party library is important to get the most out of it.
  • Also, these concepts will give you the upper hand over other candidates when it comes to interviews.

Resources

These some resources will help you to become a good developer. If you want to add more resources then please let us know about them in responses. Always stay up-to-date with the latest resources.

--

--

Kamlesh Patil
GDSC DYPCOE

I’m a self taught Web & Mobile developer, Trekker, Photographer and Explorer, currently pursuing my Degree in IT from Pune University