RxJava does not include concurrency on its own. Scheduler creates an instance of a worker that is responsible for scheduling and running code. There are 2 main operators that allow users to use scheduler ie. subscribeOn() and observeOn().

We have some builtin schedulers like Scheduler.io(), Scheduler.computation(), Scheduler.newThread() and many more…


AnimatedVectorDrawable was added in Android 21. It provides us with the power of animation by using XML only. It animates the property of vector drawable using object animator or animator set.

Starting from android 25 AnimatedVectorDrawable run on the render thread, this means even if UI thread is doing the…


In this article, we will like to talk about some great lambda functions that kotlin provide us. These function can help us deal with complex data structures making code cleaner and better. …


Almost every android developer daily works on making views. It's a most common job but making good efficient views is not as simple as it appears.

In this I will try to cover actually how a view is rendered on screen and what can we do to make efficient…


Often times we need to extend an existing feature without breaking flows, reuse code (as much as possible) and test the changes easily. A good architecture can help us achieve all of this.

There are many architectures, some old and well known like MVP, MVVM and some new Unidirectional patterns…


Android O comes with some really good features but every great thing has a price. Android 8+ has put a lot of limitation to apps which do a lot of work in background without letting user know. Most interesting is the way in which it has modified notifications.

Even though…

himanshu saluja

Android App Developer

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