Photo by Moritz Kindler on Unsplash

There is a simple way to describe the features of WorkManager by splitting its name. Imagine you are running a company, and you are responsible for handling tons of things at once. At some point, it will be difficult for you to conduct it all by yourself. Let’s call these tasks “Work.” Naturally, you will delegate these “Works” to your subordinates or your employees. They are capable of administering it without bothering you. They can complete these tasks with the same efficiency as you could and at the same time reduce the load on your shoulders. Let’s call them “Managers.”…


Motion layout animation

Animations always fascinated me. The synchronized or not-so-synchronized movement of objects in a screen, along with its creator’s vision, will create a delightful experience. Applications with subtle animations are a joy to watch. I remember opening the same app again and again to see its wonderfully implemented animations. Being said that, implementing animations in an Android app was not always easy. Whenever I put my hands on implementing animations in an app, I realized that I have to deal with lots of boilerplate code, messy XML files, and an unorganized structure.

Android introduced Motion layout back in 2018 to solve…


Image by rihaij from Pixabay

I have always wondered if there is a way to make sure that our DAO functions are faultless before running the application. I always double-check the statements or inspect the local database to validate everything is running as expected. Since I’m a newbie in the Android testing world, I was thrilled to know that it is possible to test the DAO functions, or in other words, we can write unit tests for the DAO class.

I understood that if the project follows the TDD principle, then ‘Dependency Injection’ is an integral part. Then I got introduced to ‘Dagger Hilt,’ the…


Image by Ryan McGuire from Pixabay

Edit: Hi all. Lots of fellow developers commented that this is not the safest method out there. So I’m cutting the ‘safest’ part from the title of this post. The original title was ‘How to Safely Store Credentials in Android Projects Using gradle.properties.’ Let me clarify that my intention was to share this knowledge to beginner Android developers. Rather than investing their time on complex methods to keep sensitive information in the project, I thought they can use this method as a starting point and then take it from there. I’m also mentioning the same in the article as well…


Photo by Startup Stock Photos from Pexels

Let’s be honest. Writing test cases in software development is either religiously followed or very much overlooked. There is no middle ground in it. But, whatever the case, it is an essential skill needed for a software developer. You will need to write test cases. If not today, then tomorrow. I’ll give a small introduction about the TDD architecture and testing in general before we start working on an example.

TDD architecture

You must have heard the term TDD a lot in recent times. TDD stands for test-driven development. …


Image by Steve Buissinne from Pixabay

Sometimes I feel like the world of Android development is funny. It is unpredictable at times. Or maybe Android studio is still learning. This one error occurred last week. I was sipping my coffee, watching the Gradle building my app, and all of a sudden, an error popped up in the build window.

Invalid main APK outputs : EarlySyncBuildOutput(type=com.android.build.gradle.internal.scope.InternalArtifactType$APK@1fdc3a85, apkType=MAIN, filtersData=[], version=0, output=D:sample projects\sample_app\app\build\outputs\apk\debug\app-debug.apk),EarlySyncBuildOutput(type=com.android.build.gradle.internal.scope.InternalArtifactType$APK@1fdc3a85, apkType=MAIN, filtersData=[], version=0, output=D:\sample projects\sample_app\app\build\outputs\apk\debug\output-metadata.json)

I was like, WTF just happened now. It was running without any errors all the while. And I was pretty sure I didn’t make any code changes. So what happened?

As…


Photo by Veri Ivanova on Unsplash

The idea of a stopwatch is charming. If you keep looking at it for some time, you will realize the power of a second. The seconds keep adding together and become a minute, then into hours, and so on. We can say that the stopwatch is nothing but a pop-up message telling us, time is precious and we should spend it wisely. So, today we are going to build a simple stopwatch app. I hope it will help you save plenty of time in the future. ⏱️

This is the end product


Photo by Tim Gouw from Pexels

The cover pic of this blog post is not a coincidence. I wanted to share with you the emotional trauma I was going through while implementing it. It is one of those odd days that makes you think, ‘Am I a good developer?’ and the ‘Impostor Syndrome’ will come back and haunt you afterward. So if you are feeling the same way, don’t worry. I’m having more than four years of experience in Android development, and it’s still a demanding task for me as well. Also, there is no standard way to integrate it. We must tweak the adapter in…


Photo by Angela Compagnone on Unsplash

I can only remember a handful of API’s that are developed by the Android team as effortless and advanced as this API. It all started with the inception of Android Jetpack. We can divide the Android development before Jetpack and after Jetpack. So many modern changes happened in the Android development in a short period after the introduction of AndroidX and Jetpack. But, only for good. I’m pleased that the Android team is giving their best service to the developers. Many such API’s are now in production. Few of them are in beta and alpha. …


Photo by Georg Bommeli on Unsplash

What is the most annoying and time-consuming task you have done in Android? For me, it is the handling of run time permissions. Remember the good all days? We will mention the permissions we want in the manifest file, and everything works fine as expected? Even if I want to go back to that old methodology, thinking about user privacy, it is not a reliable way to handle permissions. That’s why if the Android version is 6, or higher, we need to ask for these permissions as run-time permissions. I’m not going deep into the different types of run time…

Clint Paul

Senior Software Engineer @ BestDoc. I love to read and write.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store