Sign in

Saurabh Arora

@saurabharora.bsky.social
771 followers 150 following 55 posts

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

PostsRepliesMedia
Saurabh Arora @saurabharora.bsky.social · 16/07/2026
Yeah I don't have a solution for that yet
000
Saurabh Arora @saurabharora.bsky.social · 17/05/2026
I did some experimenting with the new scoping APIs for ViewModel in the latest lifecycle update saurabharora.dev/posts/per-it... #AndroidDev #JetpackCompose
saurabharora.dev
Beyond the Screen: Component-Level ViewModels in Compose
Until Lifecycle 2.11, ViewModelStore scoping was tied to navigation destinations, activities, or fragments. There was no clean way to scope a ViewModel to an arbitrary part of your UI. The Lifecycle 2...
1142
Saurabh Arora @saurabharora.bsky.social · 17/02/2026
I recently got a parking ticket & wondered how to avoid it happening again. A few weekends with Claude Code, & I have an app that automatically detects when I park & sets a "Move Your Car" reminder. If you're in SF & want to try it, shoot me a DM or reply. Otherwise, it's coming to your city soon.
030
Saurabh Arora @saurabharora.bsky.social · 10/11/2025
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 🚀
000
Saurabh Arora @saurabharora.bsky.social · 10/10/2025
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
020
Reposted by Saurabh Arora
seb @sebastiano.dev · 20/08/2025
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
2196
Saurabh Arora @saurabharora.bsky.social · 04/07/2025
Blogged: why Jetpack Compose bottom sheets don't show in Android Studio previews and how to fix them saurabharora.dev/posts/curiou... #AndroidDev
saurabharora.dev
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,...
081
Saurabh Arora @saurabharora.bsky.social · 28/06/2025
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
0100
Saurabh Arora @saurabharora.bsky.social · 24/04/2025
Are you saying it's not normal?
010
Saurabh Arora @saurabharora.bsky.social · 21/03/2025
Gemini consistently messes up the year for all my calendar appointments. Even if no year is specified, it adds them to 2026 🤦🏻‍♂️
010
Saurabh Arora @saurabharora.bsky.social · 01/03/2025
Ah I see I see. So both are right in their own way. Might be good to have that in your post?
100
Saurabh Arora @saurabharora.bsky.social · 01/03/2025
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
000
Saurabh Arora @saurabharora.bsky.social · 01/03/2025
"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...
200
Saurabh Arora @saurabharora.bsky.social · 28/02/2025
Oh lord! What have we done 😂😂 futurism.com/null-name-tr...
futurism.com
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,
031
Saurabh Arora @saurabharora.bsky.social · 15/01/2025
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
buff.ly
Google Issue Tracker
020
Saurabh Arora @saurabharora.bsky.social · 08/01/2025
And these are the two countries I extremely frequently travel too!
160
Saurabh Arora @saurabharora.bsky.social · 08/01/2025
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.
170
Saurabh Arora @saurabharora.bsky.social · 07/01/2025
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
060
Saurabh Arora @saurabharora.bsky.social · 03/01/2025
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)
110
Saurabh Arora @saurabharora.bsky.social · 30/12/2024
Post a picture YOU took. Just a pic. No description
030
Saurabh Arora @saurabharora.bsky.social · 27/12/2024
I am already bracing for merge conflict hell
020
Saurabh Arora @saurabharora.bsky.social · 27/12/2024
It's framework B is scaling better for us than Framework A so rip out A
110
Saurabh Arora @saurabharora.bsky.social · 27/12/2024
People coming back from holidays are really going to hate me
260
Reposted by Saurabh Arora
Luis Ramos @luisramos.dev · 16/12/2024
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
2257
Saurabh Arora @saurabharora.bsky.social · 17/12/2024
Woah
000
Saurabh Arora @saurabharora.bsky.social · 15/12/2024
This is excatly what I am doing for my side project. Choose the right stack but not setup the framework yet.
130
Saurabh Arora @saurabharora.bsky.social · 07/12/2024
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 😂
120
Saurabh Arora @saurabharora.bsky.social · 05/12/2024
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.
010
Saurabh Arora @saurabharora.bsky.social · 30/11/2024
Putting bias aside is a hallmark of a good engineer 😂
120
Saurabh Arora @saurabharora.bsky.social · 30/11/2024
We are experimenting with both and haven't settled on one yet
110
Saurabh Arora @saurabharora.bsky.social · 30/11/2024
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
010
Saurabh Arora @saurabharora.bsky.social · 30/11/2024
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
120
Saurabh Arora @saurabharora.bsky.social · 30/11/2024
That's only with strong skipping enabled AFAIK? Else you'll need to call remember yourself?
110
Saurabh Arora @saurabharora.bsky.social · 30/11/2024
Don't think so. I can whip up a blog post on how we use it if it would help
030
Saurabh Arora @saurabharora.bsky.social · 30/11/2024
Yep. Just make sure to use the right key
100
Saurabh Arora @saurabharora.bsky.social · 30/11/2024
+1 I agree with both circuit and what the article says. There are some places where you'll need to get creative though, like pagersa and tabs. But we haven't found it limiting yet in any way (early days)
010
Saurabh Arora @saurabharora.bsky.social · 30/11/2024
Quite good so far. It does need a few aha moments to really start liking it. One of them for me was composing presenters to build UI states. Another popular discussion right now is around data classes having lambda. Circuit promotes this pattern and honestly, it works quite well with Circuit
330
Saurabh Arora @saurabharora.bsky.social · 30/11/2024
We've shipped a few things with it to prod
100
Saurabh Arora @saurabharora.bsky.social · 28/11/2024
I've been using Circuit a a lot and I believe it doesn't do anything special for this. Nearly always, your state (which holds the lambda) will change, so eventSink based recompositions are mostly a part of other recomposition. Though I mostly end up remembering the eventSink nonetheless.
130
Saurabh Arora @saurabharora.bsky.social · 27/11/2024
I always prefer separate models as I wouldn't want nullable fields where the UI (based on the receiver) always expects them. So for this case I would go with (1). If the parameter list is small, then I would go with (2)
140
Saurabh Arora @saurabharora.bsky.social · 27/11/2024
Worked like a charm. Thanks
020
Saurabh Arora @saurabharora.bsky.social · 27/11/2024
This is such a welcome change! Looking forward to it (and hopefully our replies is an encouragement to plough through it)
030
Saurabh Arora @saurabharora.bsky.social · 25/11/2024
Personally I've felt side effects have some role to play. Informing UI layer to load next page, animations, analytics. But maybe these are the 1%?
200
Saurabh Arora @saurabharora.bsky.social · 25/11/2024
Same case with Google ads SDK. I believe these components aren't going to be ported to compose for another year or two
100
Saurabh Arora @saurabharora.bsky.social · 25/11/2024
Add to it the current ongoing discussion about side effects being a poison, it make me rip my hairs out
110
Saurabh Arora @saurabharora.bsky.social · 25/11/2024
My challenge hasn't been with the interop when it comes to video. It's the ability to easily pause the video when we move from one screen to another. The previous composition disposableEffect's onDispose is run AFTER the new composition DisposableEffect which makes it a weird timing dance.
100
Saurabh Arora @saurabharora.bsky.social · 24/11/2024
I refuse to belive they haven't had one moment with Compose, where they went WOW! They just won't talk about it 😂
140
Saurabh Arora @saurabharora.bsky.social · 24/11/2024
Some criticism is valid though. I've had my share of issues with video playback in Compose. The problem is constantly highlighting edge cases, making it seem like it's the norm with Compose. People forget the mess Views brought—ViewCompat, posting to UI threads, etc.
440
Saurabh Arora @saurabharora.bsky.social · 21/11/2024
But it does seem like it will take a backseat. Which begs the question if open issues/bugs will be addressed? Otherwise it will just be tech debt couple of years down the line.
120
Saurabh Arora @saurabharora.bsky.social · 19/11/2024
Meta's push for AI adoption through WhatsApp is truly a game changer. Saw my mom send a AUDIO message in Hindi to MetaAI, asked it to translate it to English, got the text response in English and sent it over the friends group 🤯
290