I helped many Android Developers in learning Android Development and getting jobs as an Android Engineer and I will continue the same to help learners in getting started with Android Programming.
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 advanced topics.
Update: I have updated this article in 2020.
The goal is to provide a practical guide on how to learn Android Development in 2020. If this practical guide helps you in learning Android App Development, then my mission will be accomplished.
A complete guide for learning Android App development
Android App Development Online Course
A complete guide for learning Android App development. Learn Android App Development from the Best.
mindorks.com
Check Android Developer Roadmap on Github
MindorksOpenSource/android-developer-roadmap
Android Developer Roadmap ? A complete roadmap to learn Android App Development ?
github.com
All the Android Free Tutorials by MindOrks
Android Tutorial – Learn Android Development from the best tutorial
Learn Android development, Kotlin, basic to most advanced through the tutorial designed by the top developers across?
mindorks.com
How To Learn Android Development?
How To Learn Android Development?
How to learn Android app development? Here, I have tried to cover most of the important things in the Android?
blog.mindorks.com
Getting started with the Android Development
- First of all, you must have a basic knowledge of the Java language for Android Development. Learn the Java language from here [Link to learn Java]
- Set up Android Studio IDE of Android Development on your PC or Laptop. Refer here.
- Take a course or any book on Android app development with which you think you are comfortable. Being comfortable with the course or with 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.
Android Development Online Course for Beginners: This course is for beginners for those who want to get started with Android Development. In this course, you will learn Android Development and build two Android Applications: TodoNotes and Ride-Sharing Uber Android App.
Android App Development Online Course For Beginners
Start your career in Android Development. Learn Android Development from basics.
mindorks.com
Apply Now: MindOrks Android Online Course and Learn Advanced Android
Android App Development Online Course For Professionals
Join and learn Dagger, Kotlin, RxJava, MVVM, Architecture Components, Unit Testing, and much more.
mindorks.com
- Android Studio Tutorial For Beginners
- Build your first Android application in Kotlin
- Tips and Tricks of Android Studio
- 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.
Android Activity and its Lifecycle
Activity Lifecycle and Intent
blog.mindorks.com
- Understand the Fragment and its lifecycle. It is primarily to support more dynamic and flexible UI designs on large screens, such as tablets.
Android Fragments and its Lifecycle
Android Fragments
blog.mindorks.com
- 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.
Debug your app | Android Developers
Android Studio supports several types of breakpoints that trigger different debugging actions. The most common type is?
developer.android.com
- 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.
Android Task and Back Stack Review
Android Activities are the logical construct of the screens that we want a user to navigate through. The relation that?
blog.mindorks.com
- 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.
Understanding Context In Android Application
What is Context?
blog.mindorks.com
- 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.
Thread | Android Developers
Every thread has a priority. Threads with higher priority are executed in preference to threads with lower priority?
developer.android.com
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.
Handle configuration changes | Android Developers
It is not recommended to handle configuration changes yourself due to the hidden complexity of handling the?
developer.android.com
- Know about database and SQL.
- Introduction to Room Persistent Library in Android
- Know about the REST.
- What is API?
- Know how Backend works? Watch an introductory video here.
- HTTP Request vs HTTP Long-Polling vs WebSockets
- Learn about the content providers. They are used to share data between the applications. They provide mechanisms for defining data security and for encapsulating the data.
Android Content Provider in Kotlin
Content Provider is one of the Android Component helps to access data of other apps. We will be learning Content?
blog.mindorks.com
- 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.
Android Store | Android Libraries, Projects, Tools and Apps
Browse through all the important Android Libraries, Projects, Tools and Apps. Compare them with their GitHub stars.
mindorks.com
- 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.
Understanding Android Core: Looper, Handler, and HandlerThread
This Article covers Android Looper, Handler, and HandlerThread. These are among the building blocks of Android OS.
blog.mindorks.com
- 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).
Services overview | Android Developers
Every app that runs a service places an additional load on the system, consuming system resources. If an app tries to?
developer.android.com
- Explore when you should consider using ArrayMap for better performance of the Android application.
Android App Optimization Using ArrayMap and SparseArray
This article will show why and when to use ArrayMap and SparseArray to optimize your Android Applications.
blog.mindorks.com
- Learn about the tools to get the metrics of memory usage, CPU usage, and etc. There are a few metrics that you should measure continuously while android application development.
Android App Performance Metrics
This article is completely about the metrics that you should measure continuously while android application?
blog.mindorks.com
- Learn about RecyclerView Optimization.
RecyclerView Optimization – Scrolling Performance Improvement
In this blog, we are going to learn how to optimize the RecyclerView performance in Android. With these optimizations?
blog.mindorks.com
- Learn about the caching implementations.
- Learn about the optimizing network request frequencies.
- Learn about the Android Sensors, GPS, Acceleration.
Motion sensors | Android Developers
The rotation vector sensor and the gravity sensor are the most frequently used sensors for motion detection and?
developer.android.com
- Learn about location and maps.
Location and Maps | Android Developers
Note: This is a guide to the Android framework location APIs in the package location. The Google Location Services API?
developer.android.com
- Learn about creating Custom View. To develop a better Android app, we must know how to create custom views.
Create your own Custom View
In this blog, we will learn about the custom view and how to implement it as one. We will talk about each and every?
blog.mindorks.com
- Always focus more on learning techniques not so many frameworks. This helps in the longer run. As an example, I wrote on: How The Android Image Loading Library Glide and Fresco Works?
How The Android Image Loading Library Glide and Fresco Works?
I am writing this article to share my knowledge which I have learned the hard way.
blog.mindorks.com
- Practical Guide To Solve OutOfMemoryError in Android Application
Practical Guide To Solve OutOfMemoryError in Android Application
In this blog, we will learn how to solve OutOfMemoryError in Android application. There can be many reasons for?
blog.mindorks.com
- 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.
Detecting and fixing memory leaks in android
Many a time we see ANR dialog while using android apps, lags in our apps, we also see OutOfMemoryError in Android?
blog.mindorks.com
- 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.
- Learn about battery improvement.
- Understand the app launch time and work on to improve it.
- Know how you can reduce the APK size.
How to reduce APK size in android
Recently we have released an Android application. Then, many of the folks started asking us that how?
blog.mindorks.com
Android App Bundle
In Google I/O 2018, a new publishing format has been introduced for Android applications called Android App Bundle. It?
medium.com
Android App bundle(.aab)
A new app publishing format is available in 3.2 version to deploy customized apk to users using Google play?s dynamic?
medium.com
- 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!
Handling bitmaps | Android Developers
Improve your app?s performance by learning how to optimize power consumption, launch times, and other important areas?
developer.android.com
- Learn the Android Architecture Components.
What are Android Architecture Components?
What are Android Architecture Components? As the Android Jetpack components are a collection of libraries that are?
blog.mindorks.com
- Learn about writing tests.
Android Testing Codelab
In this codelab, you?ll learn how to get started with testing for Android. We?ll look at the testing integration in?
codelabs.developers.google.com
Automated Performance Testing Codelab
In this codelab you will create a stable and reusable testing harness to run performance tests on a very simple?
codelabs.developers.google.com
- Learn RxJava. Nowadays RxJava is a must for developing an Android app.
A Complete Guide To Learn RxJava
A Complete Resources To Learn RxJava At One Place.
blog.mindorks.com
- Learn Kotlin.
A Complete Guide To Learn Kotlin For Android Development
A Complete Resources and Tutorials To Learn Kotlin For Android Development At One Place.
blog.mindorks.com
- Learn Kotlin Coroutines.
Mastering Kotlin Coroutines In Android – Step By Step Guide
In this blog, we are going to master the Kotlin Coroutines in Android. We will cover what exactly Coroutines are and?
blog.mindorks.com
- Learn Kotlin Coroutines for Android by Examples
- OkHttp Interceptor ? Making the most of it
- Learn about Design Patterns in Android.
Mastering Design Patterns in Android with Kotlin
In this blog, we will learn about various Design Patterns in Android that will make our code cleaner and easier to?
blog.mindorks.com
- Learn about the dependency injection, Dagger.
Introduction to Dagger 2, Using Dependency Injection in Android: Part 1
This article contains a lot of information. So for the purpose of readability I have broken it into two parts.
blog.mindorks.com
The New Dagger 2 Android Injector
How to use the new Dagger 2 Android Injector?
blog.mindorks.com
- 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.
Android MVP Introduction
It is an architecture that provides code reusability and testability.
mindorks.com
Essential Guide For Designing Your Android App Architecture: MVP: Part 1
If you make your foundations strong, then you can rise high and touch the sky.
blog.mindorks.com
- Learn about MVVM architecture.
MVVM Architecture – Android Tutorial for Beginners – Step by Step Guide
In this tutorial, first, we are going to learn about the MVVM architecture in Android and then we will build a project?
blog.mindorks.com
MindorksOpenSource/android-mvvm-architecture
android-mvvm-architecture ? This repository contains a detailed sample app that implements MVVM architecture using?
github.com
- Learn the Data Structures
Android Developer should know these Data Structures for Next Interview
In this blog, we are going to cover all the data structures which are must for any Android Developers when it comes to?
blog.mindorks.com
- 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.
Applying Proguard In An Android Application
ProGuard is a tool used to minify, obfuscate, and optimize the code in an Android application.
blog.mindorks.com
- Read about the security tips to build a secure Android application.
Security tips | Android Developers
Dalvik is Android?s runtime virtual machine (VM). Dalvik was built specifically for Android, but many of the concerns?
developer.android.com
- 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.
Android Development Useful Tools
Over the years, these are the Android development tools I?ve found most useful. I consistently use these tools to build?
blog.mindorks.com
- 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.
Android Development Best Practices
Let?s explore some best practices in designing and developing Android apps.
blog.mindorks.com
futurice/android-best-practices
android-best-practices ? Do?s and Don?ts for Android development, by Futurice developers
github.com
- 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
Improve your code with lint checks | Android Developers
Android Studio provides a code scanning tool called lint that can help you to identify and correct problems with the?
developer.android.com
- Know about the Gradle Build Tool.
Gradle Tips and Tricks for Android
In this blog, we will learn some Gradle tips and tricks for Android. After reading this blog, you will be able to use?
blog.mindorks.com
- 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.
How to Contribute to Open Source
Want to contribute to open source? A guide to making open source contributions, for first-timers and for veterans.
opensource.guide
- 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.
How to become more productive in android with android studio plugins
Android studio is a very robust tool. It has the simplest and yet the most flexible interface to design UI for all?
medium.com
- 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.
Mindorks | Become a complete and happy Android developer
Learn Android development, basic to most advanced through the courses designed by the top developers across the globe?
mindorks.com
We also post updates on Twitter about all the new things in Android. So, follow us on Twitter.
- Mindorks Twitter Account.
- My Twitter Account.
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.
- Watch and learn about the Android Performance Patterns from the series of video directly from the Android Developers Channel.
- After all. If you want an awesome job, prepare for the job interview from here.
MindorksOpenSource/android-interview-questions
android-interview-questions ? Your Cheat Sheet For Android Interview ? Android Interview Questions
github.com
MindOrks has also started a video series on How to prepare for Android Interview?
Check here.
Check All Free Android Tutorials By MindOrks.
Learn to build a ride-sharing Android app like Uber, Lyft.
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.