Posts
Mahendran
Cancel

I created few shapes in Jetpack compose / Gist included

Sharing few of my jetpack-compose shapes here. Did path tracing and drew path on canvas. Heart 🚀 - Gist Tag 🚀 - Gist Polygons 🚀 - Gist Car 🚀 - Gist 👷 Tool set Figma fo...

Jetpack compose - shape your views

Jetpack compose has an elegant way to cut out a Compose view into the desired shape. I’m covering few shapes that are available in the core compose lib and where do they differ. All the shapes dis...

Android — Implementing LifecycleAwareTimer

Android CountDownTimer is good but it can be better. This article covers few tweaks to the timer and in general how to decouple certain logic from activity. 📚 Background CountDownTimer is a conve...

Flow is non-blocking but the collector is not

Flow is an idiomatic way in kotlin to publish sequence of values. While the flow itself suspendable, the collector will block the coroutine from proceeding further. Let’s see with an example. ⛲ Fl...

GraphQL backend — token expiry

In the previous post we covered authentication and role management. However, it assumed any invalid session to be a visitor instead of throwing 401—Unauthorized client error. This post covers the t...

GraphQL backend — authorization & authentication

Background In any system where users interacting with each other, authorization & authentication are the key elements that controls what each user can do. To read more on authentication and au...

LeetCode — Median of Two Sorted Arrays

Problem definition is here. Given two sorted arrays nums1 and nums2 of size m and n respectively, return the median of the two sorted arrays. Sample inputs What is median? Draft Hypo...

Kotlin solution for the longest Substring Without Repeating Characters

For problem definition head over to leetcode problem#3. For a given string, we need to find the length of the longest substring. Listed few sample input and outputs below for understanding. Max(...

GraphQL backend — pagination & filters

Background Pagination and filters are the much needed components when it comes to listing. They not only narrow down the list for the user, but improves load time and save user from scanning throug...

GraphQL backend — data loaders

In the previous post, I created a FatExpense object and added manual checks to avoid fetching Account entity. If we’re scanning the selection manually and write our own check, what’s the role of Gr...