Writing interactive screenshot tests in Compose UI with Touch Robot
Saket Narayanby Saket Narayan·24 May 2026
- Shipped an expandable header that broke mid-scroll. Went unnoticed for a week. - Broke highlighting of hyperlinks in text for the third time.
55%plop scoreGenerating rich link previews 10x faster
Saket Narayanby Saket Narayan·23 Dec 2025
unfurl is one of my favorite open source libraries. Not because it’s clever or complex, but because it’s a tiny kotlin library that does one thing well: generate rich link previews by extracting...
60%plop scoreThe pursuit of fast feedback loops in Android development
Saket Narayanby Saket Narayan·27 Nov 2024
Sebastian Sellmair from JetBrains recently showed off a prototype of hot-reloading Compose UI code for deploying changes without rebuilding the project. It looks exciting and I want it to succeed.
59%plop scoreBuilding a sub-sampling image viewer for Compose UI
Saket Narayanby Saket Narayan·9 Aug 2023
How do you display a 100mb image on Android without running into OutOfMemoryError? You can’t. But you can cheat.
58%plop scoreDrawing custom text spans in Compose UI
Saket Narayanby Saket Narayan·12 Jul 2022
While exploring how text paragraphs are rendered in Compose UI, I nerd sniped myself into porting squiggly underlines from Sam Ruston’s Buzzkill app.
51%plop scoreGraduating from View IDs
Saket Narayanby Saket Narayan·2 Dec 2021
I found an old screen in Cash App today that wasn’t retaining its scroll position across configuration changes.
Great teams merge fast
Saket Narayanby Saket Narayan·23 Feb 2021
One of the many things I was constantly amazed about during my first few weeks at Square/Cash App was seeing how fast this team shipped code.
60%plop scoreAvoiding fake italic and bold text on Android
Saket Narayanby Saket Narayan·18 Dec 2019
Changing line heights in Android using LineHeightSpan has this ugly side-effect where the cursor ends up being very tall, extending till the full line height instead of just the text height.
51%plop scoreReinventing the dial-up modem
Saket Narayanby Saket Narayan·18 Aug 2019
While working on a healthcare app called Simple at my previous company, we wanted to improve how nurses follow up with their patients.
47%plop scoreBuilding a gesture driven Reddit app
Saket Narayanby Saket Narayan·16 Jun 2019
An exploratory talk that showcases how Android can deliver a beautiful experience to the user using material design principles and various framework APIs like gestures and spans.
Sunsetting Dank
Saket Narayanby Saket Narayan·15 Dec 2018
I’ve been trying to write this post for a while, but I kept throwing my words in the bin in hopes that things will improve. I believe it’s now time to put an end to this.
52%plop scoreSmoothly reacting to keyboard visibility changes in Android
Saket Narayanby Saket Narayan·5 Oct 2018
When people use Dank, one of the terms they use to describe it is fluid. The app makes a good use of motion to indicate changes on the screen, but I think one of my favorite reasons why the app...
51%plop scoreDesigning a flick dismissible image viewer
Saket Narayanby Saket Narayan·15 Aug 2018
While working on Dank, my primary goal was to ensure that user generated content on Reddit receive as much attention in the app as possible, while letting the UI take a back-seat.
53%plop scorePersistence as the single source of truth (droidcon Berlin)
Saket Narayanby Saket Narayan·26 Jul 2018
Simple is better than complex. Complex is better than complicated. In the world of Android, where all sources of information and user interactions are asynchronous, UI state can become hard to...
Band-aiding legacy networking libraries with Retrofit and OkHttp
Saket Narayanby Saket Narayan·30 Apr 2018
When Uncommon was brought in to refactor a big legacy app last year, we found ourselves in a strange situation.
52%plop scoreThe lesser known world of spans (droidcon San Francisco)
Saket Narayanby Saket Narayan·5 Nov 2017
Do you know what’s common between the blinking cursor, hyperlinks and text highlighting in TextViews? They’re all implemented using spans.
Tips for Android Nougat's bundled notifications
Saket Narayanby Saket Narayan·31 May 2017
I’ve been working on implementing bundled notifications in my app, which is by far one of my favourite features about Android 7.0 Nougat.
54%plop scoreA better way to handle links in TextView
Saket Narayanby Saket Narayan·11 Sept 2016
There are two ways of “linkifying” URLs in a TextView. First, as an XML attribute: <TextView ... android:autoLink="phone|web" /> and second, programmatically: TextView textView = (TextView)...
47%plop scoreDeflating the LayoutInflater (droidcon India)
Saket Narayanby Saket Narayan·28 Aug 2016
Android developers spend a lot of time writing XML layouts every day. This talk will explain how Android’s LayoutInflater works.
Your filters hide everything on this page. Adjust them in preferences.