Using the new and improved AnimatedVectorDrawable to pause and seek your animations.


Android SDK 21 introduced both the VectorDrawable and the AnimatedVectorDrawable. This allowed you to use vector assets within your app, and even animate them.

They’ve iterated on these since then, but AnimatedVectorDrawable was still missing something. You couldn’t manipulate and control the animation. There was no pause or seek functionality.


The Android team has been hard at work backporting the framework Animator APIs. They have created a separate unbundled AndroidX library called Core-Animation.

The Animator APIs have been around for some time. But they didn’t provide the capabilities needed for this pause and seek functionality. …

The interviewer in interviews asked these questions with top-tier Internet companies. Familiarity with the knowledge points listed in this article will greatly increase the chance of passing the first two rounds of technical interviews.

Mainly divided into the following parts:

(1) Java interview questions

(2) Android interview questions

(3) Advanced development technology interview questions

(4) Cross-platform Hybrid development

Java interview questions

Mastering java is very important. Large companies not only require you to use a few APIs, but also require you to be familiar with the principles of source code implementation, and even require you to know what are the deficiencies, how to…

ActivityResultContracts by Examples

Since Android came into existence in 2007, Activity has been one of its core components. One of the most common tasks in apps is transferring data between two Activities. Until now, Intents and onActivityResult were the only choice.

Through the combination of these two parts, developers are able to transfer data from one Activity to another and get data back easily.

Let’s elaborate through an example: your app wants to capture an image and display it to the user. You either write your own custom Camera or delegate the task of fetching an image to Android through Intents. …


Your code for working with media files is no longer the boilerplate type

Image from pexels

As an Android Developer, when it comes to accessing media files present on Android devices, it could quickly become troublesome if you don’t have that much experience with the android architecture for handling files, especially When things got complicated with the coming of android 10 and the forced adoption of Scoped Storage to carry out any operations on files.

For media files, these restrictions are not that extreme since they can easily be handled by querying the Android MediaStore , nevertheless the code for that could get long and confusing so today I am presenting to you an android library…

I decided to test out Jetpack Compose by making a simple Twitter UI clone after I came across this tweet by Mariano Zorrilla:

He used Flutter (which is an amazing tool btw for building cross platform apps) — with just one day of work, 1500 lines of code. That’s beyond impressive (specially the fact that Flutter can be hosted on CodePen as well).

So with similar constraints, I wanted to try out Jetpack Compose. I followed the CodePen example (as closely as I could) and this is the result:

Why we have to choose between safety and tidiness?

Quick note before I begin. GitFlow, was first published by Vincent Driessen in 2010. He suggests a simpler workflow — GitHub Flow — for the teams that do not have to support multiple versions at the same time. For further reading see the post from the author himself.

Most of the teams around the world have worked, work or will work with GitFlow. A good understanding of branch management and conflicts resolution can save a lot of trouble. …

This is the first article in this series “What’s inside my app”, this series will focus on reverse-engineering and strip android apps down to their original base code -or at least try to get the original one. In each article i will be picking an android app from the play store, decompile it and lay for you all the things underneath it hood.

Feel free to suggest if you have any app and challenge me to reverse engineer it for you.

In today’s article, we will be talking about “Who touched my phone?” android app. …

Firestore is much better than the Realtime Database like the black trainer. Period.

When it comes to cloud and database hosting, there are several options available for the developers such as Firebase, Firestore, AWS, Google Cloud and so on. If you are curious about Firebase vs AWS comparison, you can read this Firebase vs AWS article here.

In this article, you’ll come across the major differences that can help you to figure out the better alternative — especially between Firebase and Firestore.


  • Cloud Firestore: It’s a Firebase new database that is used to build mobile apps. It has better scalability than a realtime database. …

Checkout my latest app: Tinido.

GitHub has just announced a happy news today for us, developers.
Teams on GitHub can create unlimited private repositories for free.”

So, here are their newest updates on the free package.

Screenshot was taken on April 15th, 2020. Source (

These changes are so competitive to other code hosting services like Bitbucket or GitLab. Many teams are going to relocate their projects to GitHub as I think.

If you share the same idea and look for a simple way to migrate a repo from Bitbucket or GitLab, the followings are several simple steps to accomplish this.

  1. Inside your GitHub team page, create an empty…

How the SYSTEM_ALERT_WINDOW permission has been abused over the years by malware creators?

Chat Bubbles aka Chat Heads is a user interface element initially introduced by Facebook Messenger back in December 2012. This feature allowed Android and iOS users to chat with multiple persons while using other apps at the same time. The simplicity was the foundation on which the popularity and likeliness of chat heads relied upon.

Chat Head when message is received in Facebook Messenger — Image Credits: Zeeshan rasool

But this simplicity came with a price. The chat heads feature in Android apps required its users to grant the SYSTEM_ALERT_WINDOW permission. Introduced in the beginning since Android API Level 1, this permission is very powerful and at the same time dangerous to users.



The (retired) Pub(lication) for Android & Tech, focused on Development

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