Saurabh Arora's Avatar

Saurabh Arora

@saurabharora.bsky.social

Android @the other "not be named here" app (xD). Google Developer Expert (#GDE) for Android. Calisthenics junkie. Previously Android Tech Lead @Viki

743 Followers  |  151 Following  |  52 Posts  |  Joined: 04.07.2023  |  1.8873

Latest posts by saurabharora.bsky.social on Bluesky

Using Graphite's MCP has really changed my workflow with Claude Code. Now instead of lining up prompts for each "commit" of the feature, I can ask it to build the entire feature and present the plan for stacked diffs πŸš€

10.11.2025 07:44 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Emulator snapshots are great for Database migration. Moving from version 2 to 3 and you get a crash during dev?

Boot up the version 2 snapshot, make changes and try again; Instead of cleaning cache as then you'll miss the update flow

10.10.2025 05:08 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

How is the Android ecosystem changing? The tags in the @droidcon.bsky.social London CfP submissions paint a very interesting picture!

(bars represent actual counts, so both years are on the same scale)

Some quick analysis in follow-ups

20.08.2025 14:53 β€” πŸ‘ 19    πŸ” 7    πŸ’¬ 2    πŸ“Œ 1
Preview
Curious case of missing Bottom Sheet Previews While working on a Jetpack Compose project, I noticed my modal bottom sheet wasn’t appearing in Android Studio previews. I could preview the sheet’s contents by extracting them into a separate composable,...

Blogged: why Jetpack Compose bottom sheets don't show in Android Studio previews and how to fix them saurabharora.dev/posts/curiou...

#AndroidDev

04.07.2025 11:31 β€” πŸ‘ 8    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

At Google IO @lojanda.bsky.social mentioned that Compose 1.9 eliminates nearly all jank in their internal benchmarks. And I kid you not, the alpha release is blazing fast. You don't need a benchmark to tell you that. You can just feel the difference. Kudos to the team

28.06.2025 06:18 β€” πŸ‘ 10    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Are you saying it's not normal?

24.04.2025 22:27 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Gemini consistently messes up the year for all my calendar appointments. Even if no year is specified, it adds them to 2026 πŸ€¦πŸ»β€β™‚οΈ

21.03.2025 18:11 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Ah I see I see. So both are right in their own way. Might be good to have that in your post?

01.03.2025 22:34 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Definitely need to try this out. It should compare referentially unless it depends on the underlying List implementation (operator overloading?) or compose compiler has special handling for Lists

01.03.2025 20:47 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

"Referential equality returns true if the List reference is the same; it does not care about its content"

Is this true? I need to try this out myself. Your post & Google's official post say different things

Their post says it calls equals on every item in the list. medium.com/androiddevel...

01.03.2025 20:45 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0
Preview
Woman Whose Last Name Is "Null" Keeps Running Into Trouble With Computer Systems To this day, the last name "Null" totally flummoxes computer systems, much to the chagrin of Nulls everywhere,

Oh lord! What have we done πŸ˜‚πŸ˜‚

futurism.com/null-name-tr...

28.02.2025 06:21 β€” πŸ‘ 3    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Google Issue Tracker

Wasted 4 hours fighting with inline images in a Compose Text. Followed documentation excatly and still didn't work. Turn out there is a known bug, open since 2013. These little things with Compose can sometimes be extremely infuriating #AndroidDev

15.01.2025 23:02 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

And these are the two countries I extremely frequently travel too!

08.01.2025 06:24 β€” πŸ‘ 6    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Google Wallet apps are an absolute mess. In US they need you to use Google Wallet but outside US, they want you to use Google Pay. If you travel overseas, you can't access cards in Google wallet and can't sign up for Google Pay (need a local wallet). Who the hell is taking decisions at Google.

08.01.2025 05:51 β€” πŸ‘ 7    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Recently I was working on shared element transition for an image and that was another use case to remove ripple. The ripple overlay while the transition was ongoing wasn't nice

07.01.2025 12:17 β€” πŸ‘ 6    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

You'll stop receiving these emails on about 7 days (read as: We are buying time so you forget that you had unsubscribed from us. Rinse and repeat)

03.01.2025 15:38 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Post a picture YOU took. Just a pic. No description

30.12.2024 11:58 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I am already bracing for merge conflict hell

27.12.2024 10:02 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

It's framework B is scaling better for us than Framework A so rip out A

27.12.2024 09:52 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

People coming back from holidays are really going to hate me

27.12.2024 08:50 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

When did "Actions on Save" became a thing in Android Studio??? This is awesome! I was using a macro before, this is way more simple to setup.

#androidev

16.12.2024 23:16 β€” πŸ‘ 25    πŸ” 7    πŸ’¬ 2    πŸ“Œ 0

Woah

17.12.2024 11:51 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

This is excatly what I am doing for my side project. Choose the right stack but not setup the framework yet.

15.12.2024 18:15 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

This wedding season, the show stopper has been my Meta RayBan glasses. The photo and video quality is top notch. Though it also meant, I am rarely in any photos πŸ˜‚

07.12.2024 19:13 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

The more time I spend in India, the more I feel Meta will win the consumer race. Your average Joe here has no clue about Gemini, ChatGPT, Claude, etc.

05.12.2024 11:27 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Putting bias aside is a hallmark of a good engineer πŸ˜‚

30.11.2024 16:25 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

We are experimenting with both and haven't settled on one yet

30.11.2024 14:39 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Post media was recomposed because the click lambda it had, that was changed (same as the event lambda). To avoid this, you would want to key by post id, thereby overriding the default behaviour of strong skipping 2/2

30.11.2024 14:37 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Yeah so the compiler will key the lambda with the values captured by the lambda. So if the lambda captures a post object, when you react on a post, a new post item will be emitted (as likes count was updated), invaliding the remembered lambda, causing a recomposition of, let's say post media. 1/2

30.11.2024 14:36 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

That's only with strong skipping enabled AFAIK? Else you'll need to call remember yourself?

30.11.2024 12:31 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

@saurabharora is following 20 prominent accounts