Advertisement Β· 728 Γ— 90

Posts by JetpackCompose.app

Post image

The latest issue of Dispatch goes out in ~5 mins. This is a really important topic in the AI first world we live in and is based on my observation helping thousands of engineers at companies like Airbnb and Databricks be AI first.

www.jetpackcompose.app/newsletter

#AndroidDev #AI

1 week ago 2 0 0 0
Post image

The latest issue of Dispatch just went out πŸš€

We cover some spicy topics and you don't want to miss the chance to learn a few new things in < 5mins.

#AndroidDev

3 weeks ago 3 0 0 0
Post image

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

2 months ago 6 1 0 1
Post image

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

2 months ago 1 0 0 0
Post image

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

2 months ago 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

2 months ago 1 0 1 0
Preview
JetpackCompose.app's Dispatch: The Android & Jetpack Compose Newsletter for Modern Developers Dispatch makes staying updated with Android Development easy, entertaining and rewarding. Join thousands of Android developers who get smarter about Jetpack Compose every week.

Credit to Adam Powell from the Compose core team for this deep knowledge.

More Compose internals in our newsletter β€” Dispatch

www.jetpackcompose.app/newsletter

2 months ago 0 0 0 0
Advertisement
Post image

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:

2 months ago 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.

2 months ago 0 0 1 0

Hint: Think about what happens if composition is "abandoned" before being fully remembered...

2 months ago 0 0 1 0
Post image

πŸ› SPOT THE BUG πŸ›

Is the onDispose callback GUARANTEED to be called?

#AndroidDev

2 months ago 2 0 1 0
Preview
JetpackCompose.app's Dispatch: The Android & Jetpack Compose Newsletter for Modern Developers Dispatch makes staying updated with Android Development easy, entertaining and rewarding. Join thousands of Android developers who get smarter about Jetpack Compose every week.

Part of Compose 1.7+. If you're still using Canvas hacks for bitmap capture, it's time to upgrade.

More Android gems in Dispatch:

www.jetpackcompose.app/newsletter

2 months ago 0 0 0 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

2 months ago 0 0 1 0
Post image

When you need the bitmap (for sharing, bug reports, etc.):

2 months ago 0 0 1 0
Post image

The old way involved "View.drawToBitmap()", Canvas shenanigans, and prayers.

The new way? Just a few lines:

2 months ago 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

2 months ago 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

3 months ago 0 0 0 0
Advertisement

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

3 months ago 0 0 1 0
Post image

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

3 months ago 5 1 1 0
Preview
JetpackCompose.app's Dispatch: The Android & Jetpack Compose Newsletter for Modern Developers Dispatch makes staying updated with Android Development easy, entertaining and rewarding. Join thousands of Android developers who get smarter about Jetpack Compose every week.

This is the kind of problem-solving that makes the Android community great.

To discover more golden nuggets like these, subscribe to our newsletter πŸš€

www.jetpackcompose.app/newsletter

4 months ago 0 0 0 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.

4 months ago 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

4 months ago 0 0 1 0
Post image

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

4 months ago 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.

4 months ago 0 0 0 0
Post image

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.

4 months ago 0 0 1 0
Post image

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

4 months ago 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

4 months ago 0 0 1 0
Advertisement
Post image

The "readable" way:

Readable? Yes. Efficient? Hell no.

4 months ago 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

4 months ago 2 0 1 0
Preview
JetpackCompose.app's Dispatch: The Android & Jetpack Compose Newsletter for Modern Developers Dispatch makes staying updated with Android Development easy, entertaining and rewarding. Join thousands of Android developers who get smarter about Jetpack Compose every week.

More tips like this on the daily in our Android focused newsletter that the best in the business choose to read - www.jetpackcompose.app/newsletter

5 months ago 0 0 0 0