Adit Lal

Practical mobile engineering from the trenches — Android, KMP, Compose

  • Home
  • About
Building StickerExplode(Part 1): Gestures, physics, and making stickers feel real

Building StickerExplode(Part 1): Gestures, physics, and making stickers feel real

Part 1 of three. This one covers the gesture system, spring physics, peel-off animation, and die-cut rendering. Part 2 gets into the holographic shader, tilt sensing, haptics, and cross-platform architecture. I built a

  • Adit Lal
    Adit Lal
4 min read
Building StickerExplode(Part 2): The peel-off effect and holographic shimmer

Building StickerExplode(Part 2): The peel-off effect and holographic shimmer

Part 2 of three. Part 1 covers what the app is and the tech stack. This one goes deep on two features. Part 3 is the full end-to-end build. Two things people ask

  • Adit Lal
    Adit Lal
7 min read
Building StickerExplode(Part 3): The full end-to-end build

Building StickerExplode(Part 3): The full end-to-end build

Part 3 of three. Part 1 covers what the app is. Part 2 goes deep on the peel-off effect and holographic shimmer. This one walks through everything else: die-cut rendering, tilt sensors, haptics,

  • Adit Lal
    Adit Lal
10 min read
Introducing Lumen: Transparent Coachmarks for Jetpack Compose

Introducing Lumen: Transparent Coachmarks for Jetpack Compose

Spotlight your UI, not a screenshot of it. Onboarding is where first impressions are made. A well-guided tour can mean the difference between a user who churns after day one and one who

  • Adit Lal
    Adit Lal
2 min read
Compose Performance Bottlenecks: Anti-Patterns That Ship Bugs

Compose Performance Bottlenecks: Anti-Patterns That Ship Bugs

Jetpack Compose is elegant. It's also a landmine. The same reactive model that makes Compose declarative can silently swallow your coroutines, fire effects multiple times, and leave users staring at frozen

  • Adit Lal
    Adit Lal
4 min read
The OkHttp API You're Not Using

The OkHttp API You're Not Using

Your logging interceptor is lying. Here is what actually happens inside OkHttp - and how to finally see it.

  • Adit Lal
    Adit Lal
6 min read
Building a Design System with Jetpack Compose - Andromeda

Building a Design System with Jetpack Compose - Andromeda

Blog series explaining the thought process of how to build a custom design system and what went into building a new Jetpack compose open-source library called Andromeda.

  • Adit Lal
    Adit Lal
4 min read
Learning from failures at scale
Testing

Learning from failures at scale

Some fun and interesting bits of how do we manage a super app at @gojek - What goes into making and maintaining large projects. - How does a developer cater to new features. - What are some of the troubles they face. - How do junior developers collaborate with senior

  • Adit Lal
    Adit Lal
1 min read
Ad-hoc polymorphism in JSON with Kotlin
Json

Ad-hoc polymorphism in JSON with Kotlin

This post describes a way of using the GSON and Mosi library with Kotlin data classes with Polymorphic JSON data with null-safety and default values.

  • Adit Lal
    Adit Lal
5 min read
Kotlin DSL - let's express code in "mini-language" - Part 5 of 5
Dsl

Kotlin DSL - let's express code in "mini-language" - Part 5 of 5

In this post, we take a look at building our test cases by using a simpler language-like DSL. I wanted a “simple” low overhead way of setting up, expressing and testing many combinations of inputs and outputs.The goal is simple , create DSL for expressing the tests clearly and to

  • Adit Lal
    Adit Lal
4 min read
Kotlin DSL - let's express code in "mini-language" - Part 4 of 5
Dsl

Kotlin DSL - let's express code in "mini-language" - Part 4 of 5

In this post, we take a look at building a simpler API to work with Broadcast receiver, which will automatically unregister itself when the Activity pauses, and register again when it resumes. Broadcast Receiver To build this , we first create a class which observes  lifecycle events class Broadcas

  • Adit Lal
    Adit Lal
3 min read
Kotlin DSL - let's express code in "mini-language" - Part 3 of 5
Dsl

Kotlin DSL - let's express code in "mini-language" - Part 3 of 5

In this post , we take a look at some of the use cases of DSLs in Android.

  • Adit Lal
    Adit Lal
4 min read
Kotlin DSL - let's express code in "mini-language" - Part 2 of 5
Dsl

Kotlin DSL - let's express code in "mini-language" - Part 2 of 5

Part 2 of series on how to work with Kotlin DSLs

  • Adit Lal
    Adit Lal
6 min read
Kotlin DSL - let's express code in "mini-language"  - Part 1 of 5
Dsl

Kotlin DSL - let's express code in "mini-language" - Part 1 of 5

In this series , we will take a look at what DSLs are and how to build our custom Kotlin DSLs and apply them to multiple use cases for Android. What is DSLThe concept of DSL or domain-specific language is pretty simple. A domain specific language is a construct that allows

  • Adit Lal
    Adit Lal
2 min read
Kotlin — Quick Shared Element transition trick
Android

Kotlin — Quick Shared Element transition trick

Shared Element Transition : Having a view that moves from one activity to another in a smooth motion. Let’s say you have more than one view to do a shared element transition in your app, how do you do it in Kotlin ? We would like to transition multiple views like

  • Adit Lal
    Adit Lal
2 min read
Adit Lal © 2026
Latest Posts Facebook Twitter Ghost