Saurabh Arora @saurabharora.bsky.social · 17/05/2026I did some experimenting with the new scoping APIs for ViewModel in the latest lifecycle update saurabharora.dev/posts/per-it... #AndroidDev #JetpackComposesaurabharora.devBeyond the Screen: Component-Level ViewModels in ComposeUntil 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/2026I 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/2025Using 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/2025Emulator 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 Aroraseb @sebastiano.dev · 20/08/2025How 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/2025Blogged: why Jetpack Compose bottom sheets don't show in Android Studio previews and how to fix them saurabharora.dev/posts/curiou... #AndroidDevsaurabharora.devCurious case of missing Bottom Sheet PreviewsWhile 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/2025At 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 · 21/03/2025Gemini 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/2025Ah 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/2025Definitely 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/2025Oh lord! What have we done 😂😂 futurism.com/null-name-tr...futurism.comWoman Whose Last Name Is "Null" Keeps Running Into Trouble With Computer SystemsTo 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/2025Wasted 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.lyGoogle Issue Tracker 020
Saurabh Arora @saurabharora.bsky.social · 08/01/2025And these are the two countries I extremely frequently travel too! 160
Saurabh Arora @saurabharora.bsky.social · 08/01/2025Google 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/2025Recently 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/2025You'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/2024Post a picture YOU took. Just a pic. No description 030
Saurabh Arora @saurabharora.bsky.social · 27/12/2024It's framework B is scaling better for us than Framework A so rip out A 110
Saurabh Arora @saurabharora.bsky.social · 27/12/2024People coming back from holidays are really going to hate me 260
Reposted by Saurabh AroraLuis Ramos @luisramos.dev · 16/12/2024When 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 · 15/12/2024This 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/2024This 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/2024The 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/2024Putting bias aside is a hallmark of a good engineer 😂 120
Saurabh Arora @saurabharora.bsky.social · 30/11/2024We are experimenting with both and haven't settled on one yet 110
Saurabh Arora @saurabharora.bsky.social · 30/11/2024Post 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/2024Yeah 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/2024That's only with strong skipping enabled AFAIK? Else you'll need to call remember yourself? 110
Saurabh Arora @saurabharora.bsky.social · 30/11/2024Don'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+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/2024Quite 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 · 28/11/2024I'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/2024I 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/2024This 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/2024Personally 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/2024Same 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/2024Add 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/2024My 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/2024I 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/2024Some 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/2024But 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/2024Meta'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