Wrote about something I like to call the "40/30/30 rule" for AI dev tools.
I divide the choice of tools into 3 buckets think it's completely normal to use all the 3 types... in the same day!!
More here - www.jetpackcompose.app/newsletter/d...
#AndroidDev #AI
07.02.2026 17:29
π 6
π 1
π¬ 0
π 0
Want your Jetpack Compose library to be featured on our site?
Well we now have a dedicated page where you can submit your libraries and reach thousands of Android developers π
#AndroidDev
06.02.2026 16:55
π 1
π 0
π¬ 0
π 0
The setup mirrors .gitignore syntax:
Gemini won't see those files, but still understands the rest of your codebase.
Fine-grained control. Best of both worlds.
For more tips like these β www.jetpackcompose.app/newsletter
29.01.2026 16:56
π 0
π 0
π¬ 0
π 0
Want Gemini in Android Studio but worried about sharing sensitive IP?
Use .aiexclude filesβit's like .gitignore but for AI.
Your private code stays private while you still get contextually rich AI suggestions.
#AndroidDev
29.01.2026 16:56
π 1
π 0
π¬ 1
π 0
When does onAbandoned happen? When the effect was never successfully "remembered" - rare, but possible.
If correctness is critical, you need to handle both cases explicitly:
28.01.2026 16:15
π 0
π 0
π¬ 1
π 0
π¨ ANSWER TIME π¨
The answer: onDispose is NOT guaranteed to be called in all cases!
DisposableEffect implements RememberObserver. The dispose is called in onForgotten but NOT in onAbandoned.
28.01.2026 16:15
π 0
π 0
π¬ 1
π 0
Hint: Think about what happens if composition is "abandoned" before being fully remembered...
28.01.2026 16:15
π 0
π 0
π¬ 1
π 0
π SPOT THE BUG π
Is the onDispose callback GUARANTEED to be called?
#AndroidDev
28.01.2026 16:15
π 2
π 0
π¬ 1
π 0
That's it. No View references. No hacky workarounds.
Use cases:
β
Screenshot sharing
β
Bug report attachments
β
Social media content
β
Image processing pipelines
β
Custom export features
24.01.2026 15:38
π 0
π 0
π¬ 1
π 0
When you need the bitmap (for sharing, bug reports, etc.):
24.01.2026 15:38
π 0
π 0
π¬ 1
π 0
The old way involved "View.drawToBitmap()", Canvas shenanigans, and prayers.
The new way? Just a few lines:
24.01.2026 15:38
π 0
π 0
π¬ 1
π 0
Converting a Composable to a Bitmap used to require black magic and a sacrifice to the Android gods.
Not anymore. rememberGraphicsLayer() makes it ridiculously simple.
Thread on capturing Composables as images π§΅
#AndroidDev
24.01.2026 15:38
π 0
π 0
π¬ 1
π 0
This is purely to get the community together so come hang π€ The more people that sign up, the higher the odds that we'll be able to assemble a really group so please please help us spread the word out. It's our first time doing it so sharing this will go a long way.
Please help us reach more people
31.12.2025 07:31
π 0
π 0
π¬ 0
π 0
Some topics we'll discuss:
- How AI is changing engineering
- Lessons from Airbnb about why Design Systems fail
- How to drive adoption of new tech in a company
- The false promise of Server Driven UI and how most implementations are essentially a recreation of CSS like scaffolding
and more
31.12.2025 07:31
π 0
π 0
π¬ 1
π 0
We are excited to announce our very first meetup π₯³
π Bengaluru (exact location TBD)
ποΈ Jan 4th, 2026
β° 5β7 PM
We are bringing together some of the smartest Android engineers in the city for a relaxed evening to hang out, grab a drink, and have fun conversations.
luma.com/vslr0fgc
#AndroidDev
31.12.2025 07:31
π 5
π 1
π¬ 1
π 0
Despite the tiny footprint, it has:
Loading from URL, local storage, assets
RAM and disk caching
Page prefetching
Screenshot protection (FLAG_SECURE)
Jetpack Compose integration
88KB. Full features. Mind blown.
07.12.2025 16:20
π 0
π 0
π¬ 1
π 0
His strategy:
β
Zero native dependencies
β
Minimal HTTP (standard HttpsURLConnection, no OkHttp)
β
Lean UI (RecyclerView)
β
Custom PinchZoomRecyclerView
β
R8/ProGuard friendly (no reflection)
β
Zero bundled assets
07.12.2025 16:20
π 0
π 0
π¬ 1
π 0
Most Android PDF libraries weigh 10-16MB because they bundle native C/C++ code.
Rajat Mittal built one that's 88 KILOBYTES. π€―
How? By ditching native deps and using only Android's built-in PdfRenderer.
Thread on lightweight library design π§΅
#AndroidDev
07.12.2025 16:20
π 5
π 0
π¬ 1
π 0
This is the difference between "code that works" and "code that's fast."
Most of us don't need to optimize this deep. But when you do, knowing how to profile and inline matters.
27.11.2025 04:31
π 0
π 0
π¬ 0
π 0
Key lesson: In hot code paths, the compiler can't always optimize for you.
Sometimes you need to get your hands dirty and inline manually.
Tools like Kotlin Explorer help you peek at generated code and find opportunities.
27.11.2025 04:31
π 0
π 0
π¬ 1
π 0
Romain rewrote it as one inline helper (resetToPivotedTransform) and slashed the cost to:
168 instructions, 1 branch
Just 15% of the original work. 6Γ faster
27.11.2025 04:31
π 0
π 0
π¬ 1
π 0
The problems:
π Two throw-away matrices
π A full reset() you mostly overwrite
π Generic 4Γ4 multiplies for data you don't need
Result: 1,062 instructions, 39 branches
27.11.2025 04:31
π 0
π 0
π¬ 1
π 0
The "readable" way:
Readable? Yes. Efficient? Hell no.
27.11.2025 04:31
π 0
π 0
π¬ 1
π 0
@romainguy.dev shared a Compose performance optimization that cut 1,062 ARM64 instructions down to 168.
That's 85% reduction in the number of instructions.
Thread on why manual function inlining matters π§΅
#AndroidDev
27.11.2025 04:31
π 2
π 0
π¬ 1
π 0
Official Android docs say the loop is roughly 1000 TIMES SLOWER than a well-crafted SQL query.
One query vs multiple round trips to the database.
Let SQL do what SQL does best.
23.11.2025 05:07
π 0
π 0
π¬ 1
π 0
π‘ Performance tip: Iterate in SQL, not in code.
#AndroidDev
23.11.2025 05:07
π 2
π 0
π¬ 1
π 0