As you might be already aware, Jetpack DataStore’s Preference Storage is the recommended solution to store data instead of SharedPreferences. It is based on Kotlin Coroutines and Flow. If you do not know about it, give it a read here.

Note: This article does not cover the Proto DataStore.

This post is about integrating Preference Storage with Dagger Hilt. So let’s get started.

  1. Include the dependencies in the app level gradle file i.e. app/build.gradle. Check the latest version for Preference Data Store here and Dagger here.
apply plugin: 'kotlin-kapt'
apply plugin: ''

android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8…

Learn about the available Material Components in the Material Design Library. Also, create a dark theme.

Check out the part1, part2, and part3:

The final part of this series tells you about all the Material Design Components that are available in the library. Using these attributes you can customize the look and feel of each component. Check the table below for the components that you can add, replace or remove.

MDC attributes(credits: Google)

Using the Shape design system in your Android apps.

Hey readers,

This is the 3rd part of how to move from AppCompat to Material Theming Components. Check out the 1st part and the 2nd part:

Till now we have implemented the Color and Typography into our apps and taken the second step to implement the new Material Design library. The next step is to implement a consistent Shape system in our apps.


With Material Theming we can implement shapes easily. Previously we used to do various tricks to provide a rounded or a cut corner like using shape drawable. …

Using the Material Design Typography system in your Android apps

Hey readers,

This is the 2nd part of how to move from AppCompat to the Material Theming Components. Check out the 1st part here.

Till now we have implemented the color design system into our apps and taken the first step to implement the new Material Design library. The next step is to implement a consistent Typography(fonts/text size) in our apps.


Typography is like the fonts and font sizes applied to your views(Text Views, Buttons, etc.). You would want to achieve a common font either to all of the components…

The Material Design library came with a big update which includes new UI elements(components), guidelines and a lot more. Today, I will show you how you can follow the newest Material Design update into your current apps and add support for a dark theme as well.

Before we learn how to implement a dark theme in our apps, we need to understand why there is a need to use new material design components.

Why a new Material Design library?

Well, the original Material Design was good enough to create beautiful apps/websites. But it was not enough to create a brand that could stand out of the…

In this story, I will tell you how easily you can bypass the 10 minutes viewing limit of HotStar. After reading this story, you won’t have the need to buy HotStar premium account. In these days of IPL (Indian Premium League, March-May 2019), watch IPL for free.

Steps (For Web Browsers)

  1. Once you’ve viewed for 10 min, open console(either F12 or right click + inspect element or ⌘⌥I on macOS or Ctrl Shift I on Windows)
  2. Go to the Application tab, open the LocalStorage tab. There are multiple options here — Local Storage, Session Storage and Cookies.
  3. In the Local Storage, you will see…

You’ve been asked to give the estimation of a new project or app coming in. Let’s suppose you have never done that thing in the past. Following are the steps to give a better estimate and keep you and your manager/lead/boss happy and satisfied.

  • Exactly ask your manager about the requirements which the client requires. Talk to client if you can. And very importantly, have written proof of the requirements on the mail. …

There are two things- Programming and Good Programming. Programming is what we have all been doing. Now is the time to do good programming. We all know that even the bad code works. But it takes time and resources to make a program good. Moreover, other developers mock you when they are trying to find what all is happening in your code. But it’s never too late to care for your programs.

This book has given me a lot of knowledge on what are the best practises and how to actually write code. Now I feel ashamed of my coding…

You might have integrated FCM in your app and have collaborated with backend developers to send you notification, but you may be missing one important thing which may be not your problem but still you and the backend developer should know. There is one subtle thing which can pull out your hairs and you and the backend developer are fighting to prove who is correct.

This thing happened with me so I want to share it with all. One day there were some changes in notification display and I wanted to configure my notification code. I found a strange thing…

Photo by Japheth Mast on Unsplash

I’m an Android Developer and working on it professionally for the last 1 year. I’ve worked hard on it and I’ve began to feel comfortable and smooth. I work on Android only in my office days and I’m free on weekends. I started to feel that when there is no difficulty or a new challenge, my life becomes quite boring and I feel that I’m not growing. I surf the web, read articles, watch youtube videos. I really don’t have much interest in movies/series in my weekend time. I consider it as a pure time waste. …

Shubham Gupta

Programming Enthusiast, Google Certified Android Developer, Sarcasm and Humour lover, Being a better me.

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