Sign in

Saket Narayan

@saket.me
1.4K followers 299 following 341 posts

Android @ Square • he/him 🌎 saket.me 📍 Seattle

PostsRepliesMedia
Saket Narayan @saket.me · 13/08/2026
LFG
090
Saket Narayan @saket.me · 10/08/2026
It is mildly interesting that the creator of apilevels.com is not even an Android developer.
apilevels.com
Android API Levels
A quick reference table of Android versions with SDK & API levels, version codes, codenames, cumulative usage, and more.
150
Saket Narayan @saket.me · 29/07/2026
In good company. Thank you @androiddevs.bsky.social 💚! android-developers.googleblog.com/2026/07/five...
1191
Saket Narayan @saket.me · 25/07/2026
AI has made me so productive. I'm now abandoning a new side project every month instead of one a year.
323420
Saket Narayan @saket.me · 10/07/2026
Block moved all its documents to Notion two years ago. Huge upgrade over Confluence, but a lot of us still don't love it because it keeps trying to be an operating system instead of just... being a good document editor. www.notion.com/product/ship...
notion.com
Notion | The agent-native way to ship software.
From feedback to launch - all inside Notion. Agents handle the coordination. Your team handles the judgment.
450
Saket Narayan @saket.me · 23/06/2026
i made a meme
150
Saket Narayan @saket.me · 25/05/2026
Introducing Touch Robot, something that has materially changed how I write screenshot tests. We've been using it at Block for ~2 years to catch animation and gesture bugs that static screenshots miss. saket.me/touch-robot/
saket.me
Introducing Touch Robot, for writing interactive screenshot tests in Compose UI
The best parts of a UI are usually in motion. The bugs are too.
1205
Saket Narayan @saket.me · 09/05/2026
The new Snapseed update is quite nice 🤌 play.google.com/store/apps/d...
150
Saket Narayan @saket.me · 27/04/2026
Using an on-hover animation for showcasing large screen support is so satisfying. Credits: www.aviate.to
080
Saket Narayan @saket.me · 19/04/2026
Google Keep's recent update offloaded reminders to Google Tasks, and it's been such a massive downgrade because they constantly go out of sync. I loved Keep, but I'll have to switch. What are people using these days to manage their todos?
750
Saket Narayan @saket.me · 02/04/2026
I built a tiny IntelliJ IDEA plugin for something that had been bothering me for years github.com/saket/intell...
5289
Saket Narayan @saket.me · 02/04/2026
After 2.5y of development, github.com/saket/teleph... is nearing ~600 screenshot tests that verify all possible combinations of usages. It's one of the most thoroughly tested UI libraries you'll find for Android. Shout out to my friends at emulator.wtf without whom this wasn't possible!
1163
Saket Narayan @saket.me · 01/04/2026
It's interesting how clearly Google vs Apple shows up in something as small as virtual devices frames. iOS simulator: sharp, natively rendered Android emulator: transparent PNG, rough corners with jagged edges
1103
Saket Narayan @saket.me · 12/03/2026
TIL about android's "time to take action" accessibility setting
020
Reposted by Saket Narayan
Matt McKenna @mmckenna.me · 09/03/2026
Today I’m open-sourcing Dejavu! Testing UI performance in Jetpack Compose is frustrating. We profile and watch tools, yet regressions still creep in. I built Dejavu to make recomposition behavior something you can actually test.
A screenshot of code that reads:

// Create a Recomposition Tracking Rule
@get:Rule
val composeTestRule = createRecompositionTrackingRule()

@Test
fun incrementCounter_onlyValueRecomposes() {
  // Perform an action
  composeTestRule.onNodeWithTag("inc_button")
    .performClick()

  // Assert that Composables change like you expect
  composeTestRule.onNodeWithTag("counter_value")
    .assertRecompositions(exactly = 1)

  // Or assert that they remain stable
  composeTestRule.onNodeWithTag("counter_title")
    .assertStable() // asserts recompositions = 0
}
74011
Saket Narayan @saket.me · 09/03/2026
The answer was no, so I'm building this myself as v2 of github.com/saket/swipe. Here's a first draft:
0171
Saket Narayan @saket.me · 07/03/2026
Did Google ever release this swipe component as part of Material Design?
100
Reposted by Saket Narayan
Pablo Baxter @pablobaxter.com · 02/03/2026
Please don't boycott OSS... Follow the authors, maintainers, and contributors to them, as many of them will continue to support their projects regardless of the company they go to. Also, if you can, sponsor these individuals too! Many of them have links for sponsorship on their Github profiles.
071
Reposted by Saket Narayan
P-Y @p-y.wtf · 02/03/2026
What happens to Square / Block Android OSS projects post layoffs? Let's start with some context OSS at Square is mostly a happy accident. Jack hired Bob, who's job was attracking world class engineers, and he did that through talks & OSS.
28123
Saket Narayan @saket.me · 27/02/2026
Most of you have heard about Block's 40% layoffs by now, but the numbers are even worse. Engineering was hit harder, we've lost close to 70% of our engineers. Our leadership is plagued by false promises of "intelligence". The company you once knew as a prolific OSS contributor no longer exists.
4545
Saket Narayan @saket.me · 25/02/2026
CSS-inspired media queries in Compose UI 👀 android-review.googlesource.com/c/platform/f...
032
Saket Narayan @saket.me · 27/01/2026
Looks like Compose UI is finally addressing a long-standing issue on Android where the experience of scrolling nested lists hasn't felt as good as on iOS. issuetracker.google.com/issues/26962...
0131
Saket Narayan @saket.me · 22/01/2026
After six beautiful years in Kitchener-Waterloo, we are moving to Seattle. Grateful for the people and memories that made this place home. Hoping it feels like home too.
3200
Saket Narayan @saket.me · 23/12/2025
🪞New blog post about link previews. Which you're seeing as a link preview. Very meta.
saket.me
Generating rich link previews 10x faster
My library was hilariously inefficient. 500KB down to 32KB, all because I finally RTFM'd the docs.
1152
Saket Narayan @saket.me · 15/12/2025
I pre-ordered one! Over the weekend I noticed how often I rush to my phone to note down thoughts before they slip away. A recording ring might make my life easier.
130
Saket Narayan @saket.me · 10/12/2025
I can finally disable background blur on Android 16. Peak 2025 moment! www.androidauthority.com/google-pixel...
050
Reposted by Saket Narayan
Bridget Phillips @jingibus.bsky.social · 07/12/2025
I hope that every programmer I know reads and internalizes this pronto. A foundational document for LLMs in engineering practice. Much here should be obvious, but depending on your POV you will find crucial guidance here in one place or another
1176
Saket Narayan @saket.me · 02/12/2025
Time to buy phones from outside India? Sanchar Saathi might be a helpful app today, but forcing every phone to ship with a government app is a worrying precedent.
9to5mac.com
India orders Apple to pre-instal a state security app on iPhones
The Indian government has ordered Apple and other smartphone manufacturers to pre-install a state-owned “security” app on all phones before...
011
Saket Narayan @saket.me · 28/11/2025
Ever wanted to try out Jetpack Palette for extracting colors from images? I built a web demo: saket.github.io/palette-demo/
Screenshot of the web demo showing color swatches extracted from a poster of How to Train Your Dragon
1161
Saket Narayan @saket.me · 24/11/2025
Jesse and Jake were my CN Tower. I only worked with them occasionally, but I always felt reassured just knowing they were around if I needed help. I'm mad our company lost both of them in the same week, and I'm afraid the entire Android OSS community will feel the ripple effect in the days to come.
4322
Saket Narayan @saket.me · 19/11/2025
🚇🚇🚇
070
Saket Narayan @saket.me · 17/11/2025
Google Sans Flex (formerly Product Sans) is now open source! fonts.google.com/specimen/Goo...
fonts.google.com
Google Sans Flex - Google Fonts
Google Sans Flex is the next generation of Google’s brand typeface. Designed as an extremely flexible variable font, it introduces variable axes for weight, wid
1162
Saket Narayan @saket.me · 22/10/2025
My designer friends at Google, I love you, but this has to be one of your saddest attempts at copying Apple's UX. www.androidauthority.com/android-flas...
330
Saket Narayan @saket.me · 15/10/2025
Google made the greatest wallpaper set in human history. Then they just… stopped. Anyone know why?
Screenshot of Google's "Living Universe" wallpaper collection, showing aerial videos of real places on Earth.
1140
Reposted by Saket Narayan
Andrei Shikov @shikasd.bsky.social · 19/09/2025
Casey Muratori pretty much sums up how I feel about LLMs for coding: "The AI will always be useless for me. I physically can't get what I want from programming when AI is involved, because what it is doing is robbing me of the experience that I wanted to have and the knowledge that I wanted to get"
53911
Saket Narayan @saket.me · 12/09/2025
2025 in one screenshot: my phone's AI is talking to another AI on a phone call.
Phone screen showing Google Call Assist answering a phone call. The assistant asks why they're calling. The caller, an AI "virtual specialist", replies about a promotion.
0120
Saket Narayan @saket.me · 11/09/2025
The year is 2100. Civilization has colonized Mars. Android Studio still freezes every time my laptop wakes from sleep.
381
Reposted by Saket Narayan
sinasamaki @sinasamaki.com · 27/08/2025
✨ New article on the latest shadow api in #JetpackCompose Recently, I have enjoyed using them to easily create fancy realistic effects Check out the article, and let me know what you build with these new apis 🤗 www.sinasamaki.com/new-shadow-api-for-jetpack-compose/
0165
Saket Narayan @saket.me · 22/08/2025
Step one after installing Android 16: turn off HDR brightness
Screenshot of Android 16 settings page titled "Enhanced HDR brightness," showing a toggle to enable or disable the feature.
130
Saket Narayan @saket.me · 31/07/2025
A very nice side effect of navigation3 is that google is now publishing these building blocks that other libraries/companies have been hand-rolling for years. We were recently writing something similar for Cash App and found ourselves wishing we didn't have to maintain it ourselves.
3141
Saket Narayan @saket.me · 27/07/2025
github.com/saket/byte-s...
0102
Reposted by Saket Narayan
Ray Ryan @rjrjr.com · 18/07/2025
Anvil is approaching the icebox, long live Metro. github.com/square/anvil...
github.com
Anvil Moves to Maintenance Mode · Issue #1149 · square/anvil
Hey all! We wanted to share an update on the state and future of Anvil. We previously published a roadmap covering the major work we had planned, including K2 support and making Anvil a standalone ...
1213
Saket Narayan @saket.me · 14/07/2025
061
Saket Narayan @saket.me · 30/06/2025
I'm a simple person. If a game reminds me of Age of Empires, I'm already reaching for my wallet. play.google.com/store/apps/d...
090
Reposted by Saket Narayan
Sasikanth @sasikanth.dev · 25/06/2025
✨New transition in Twine✨
2202
Saket Narayan @saket.me · 23/06/2025
Implicit enum case matching has long been one of my favorite Swift language features. Very excited to see it coming to Kotlin too. kotlinlang.org/docs/whatsne...
5353
Saket Narayan @saket.me · 20/06/2025
These interactions are rad www.spottedinprod.com/blog/any-dis...
spottedinprod.com
Blog - Any Distance Goes Open Source
Apple Design Award winner Any Distance goes open source.
091
Saket Narayan @saket.me · 04/06/2025
Tried to surprise my wife by arriving early in the country, but Bump, an app I use to share my location with her, gave me away even though I had paused it. Turns out "pause" just blocks you from using the app, while it keeps running in the background. Lesson learned!
My phone's home screen showing the shortcut menu for the Bump app, with the 'Pause app' option highlighted.
3100