Learning Android Development In 2019 - A Practical Guide

The New Year is here! Look ahead, embark on the road to success. May you have a great journey to your destination! Happy 2019.

Last year I helped many Android Developers in learning Android Development and getting jobs as an Android Engineer. This year I will continue the same.

Sharing the knowledge, sharing the love

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 learn the advance topics.

The goal is to provide a practical guide on how to learn Android Development in 2019. If this practical guide helps you in learning Android App Development, then my mission will be accomplished.

Getting started with the Android Development

  • First of all, you must have a basic knowledge of Java language for the Android Development. Learn the Java language from the Head-First Java book. Get the book from here.
  • Set up Android Studio IDE of Android Development on your PC or Laptop. Refer here.
  • When you are comfortable with the Java, learn Kotlin.
  • Take a course or any book on Android app development with which you think you are comfortable. Being comfortable with the course or the book is very important. When you take the course or read the book, always apply that on a sample app. I mean to say that build something on whatever you read.
  • Setting up Kotlin in Android Studio. Refer here.
  • Introduction to Android Studio IDE. Refer here.
  • Android User Interface — XML and View Components. Refer here.
There is no better way to learn something than by doing.

Learning the core of the Android Development

  • Understand the Activity Lifecycle as having the knowledge of the activity lifecycle is very important when it comes to building a bug-free application.
  • Understand the Fragment and its lifecycle. It is primarily to support more dynamic and flexible UI designs on large screens, such as tablets.
  • Learn how to debug your Android application as it is the single most important skill for any developer. Android Studio provides a debugger that allows you to do so many important things.
  • Know about the navigations, task and back stack. Android Activities are the logical construct of the screens that we want a user to navigate through. The relation that each Activity holds with respect to other is very crucial for good user experience.
  • Understanding the Context In Android Application. To develop a better Android app, we must know what context is? Context is almost everywhere in Android Development and it is the most important thing in the Android Development, so we must understand to use it correctly.
  • Learn about the threading in detail. As the Java Virtual Machine allows an application to have multiple threads of execution running concurrently. We must know how to take advantage of multi-threading environment correctly.

Learn about the Threading Performance: Threading Performance 101. (Android Performance Patterns Season 5, Ep. 1)

Understand Android Threading: Understanding Android Threading. (Android Performance Patterns Season 5, Ep. 2)

Learn Memory & Threading: Memory & Threading. (Android Performance Patterns Season 5, Ep. 3)

Understand Threadpools: Swimming in Threadpools. (Android Performance Patterns Season 5, Ep. 6)

  • Learn how to handle the configuration changes. Some device configurations can change during the runtime such as screen orientation, keyboard availability, and when the user enables multi-window mode. We must know how to handle these changes.
  • Know about the 3rd party libraries. We have Mindorks Android Store to browse through all the important Android libraries, projects, tools, and apps. Compare them with their GitHub stars.
  • Understanding the Android Core. Looper, Handler, and HandlerThread are the Android’s way of solving the problems of asynchronous programming. They are not old school, but a neat structure on which a complex android framework is built.
  • Learn about Service and IntentService. A service is a component that is used to perform operations on the background such as playing music, handle network transactions, interacting content providers etc. It doesn’t have any UI (user interface).
  • Explore when you should consider using ArrayMap for better performance of the Android application.
  • Learn about location and maps.
  • Learn about creating Custom View. To develop a better Android app, we must know how to create custom views.
  • Holding reference of objects that are not required anymore is a bad practice, freeing object’s reference after being served is helpful for the garbage collector to kill that object, that eventually helps yourself in memory leaks issues. If you keep objects reference unnecessarily, it only leads to memory leaks. Learn how to detect and fix the memory leaks in the Android application.
  • Learn about the performance patterns in Android applications. How to improve the performance of your application.

Learn Garbage Collection in Android: Android Performance Patterns: Garbage Collection in Android

Learn about Invalidations, Layouts, and Performance.

Understand Android UI and the GPU.

Understand Android Performance Patterns: Why 60fps?

Understand Android Performance Patterns: Tool — Profile GPU Rendering.

  • Understand Bitmaps. As it takes a huge amount of memory, can lead to OOM easily. Users love content! Especially when the content is well formatted and looks nice. Images, for instance, are extremely nice content, mainly due to their property of conveying a thousand words per image. They also consume a lot of memory. A lot of memory!
  • Learn about writing tests.
  • Learn RxJava. Nowadays RxJava is a must for developing an Android app.
  • Learn Kotlin.
  • Learn about the dependency injection, Dagger.
  • Learn about Android Jetpack. Google released Android Jetpack. Android Jetpack is built to make app development fast. It is the next generation of Android components which brings together the benefits of the support library, backward compatibility and immediate updates to a larger set of components. Android Jetpack manages activities like background tasks, navigation, and lifecycle management, so you can eliminate boilerplate code and focus on what makes your app great. Android Jetpack is designed to work well with Kotlin, saving you even more code with Android KTX.
  • Learn about MVP architecture.
  • Learn about MVVM architecture.
  • Learn how to apply proguard in an Android application. It is a tool used to minify the code, obfuscate the code, and optimize the code which reduces the size of the application.
  • Read about the security tips to build a secure Android application.
  • Know about the Android Useful tools. As we all are fortunate to live in a world where everyone builds a tool to help each other. These tools make the development fast and our life easier. Do not forget to explore and use these tools.
  • Read others code. This is the best thing a developer can do and learn to code in the best way. I personally feel that I have learned a lot from the code of the open-source apps.
  • Know about the Android development best practices.
  • Learn Git. It is a version control system for tracking changes in computer files and coordinating work on those files among multiple people.

Learn the fundamentals of Git and GitHub from here.

  • Know how to improve your code with lint checks
  • Know about the Gradle Build Tool.
  • Contribute to open source projects. I love open source. It has really helped me a lot to improve myself. So, start contributing to open source.
  • Know about Continuous Integration. Continuous integration ensures that your code is building on a server that is not your own machine. Use CI like Jenkins, Circle CI, Travis, and etc.
  • Become more productive in android with android studio plugins.
  • Always be updated with the new technology in Android. If you miss it, you simply miss it. The best way to be always updated is to join a community or follow some twitter accounts. You can join Mindorks Community as we always keep posting new things in the Slack group.

Link to join the Mindorks Community on Slack.

We also post updates on Twitter about all the new things in Android. So, follow us on Twitter.

Mindorks Facebook Page.

Open this link and subscribe to the channel and become a part of the largest learning revolution.

Also, hear the android developer backstage podcasts to know about the awesome things happening in Android.

MindOrks has also started a video series on How to prepare for Android Interview?

Check here.

Last Step:

Bookmark this article to refer again, learn Android App Development and become a better Android Developer.

Happy Learning :)

Want to know more about me? Visit amitshekhar.me.

Clap, share if you like it and follow me for the updates.