JetpackCompose.app's Avatar

JetpackCompose.app

@jetpackcomposeapp

The #1 destination for all things Jetpack Compose. Keeping up with Android Development is hard. We make it easy, entertaining and rewarding. World class Android Developers read our newsletter to remain sharp πŸ‘‰πŸ» https://www.jetpackcompose.app/newsletter

26
Followers
1
Following
147
Posts
23.08.2025
Joined
Posts Following

Latest posts by JetpackCompose.app @jetpackcomposeapp

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

07.02.2026 17:29 πŸ‘ 6 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
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

06.02.2026 16:55 πŸ‘ 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

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
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

28.01.2026 16:15 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
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:

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
Post image

πŸ› SPOT THE BUG πŸ›

Is the onDispose callback GUARANTEED to be called?

#AndroidDev

28.01.2026 16:15 πŸ‘ 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

24.01.2026 15:38 πŸ‘ 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

24.01.2026 15:38 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Post image

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

24.01.2026 15:38 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Post image

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
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

31.12.2025 07:31 πŸ‘ 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

07.12.2025 16:20 πŸ‘ 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.

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
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

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
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.

27.11.2025 04:31 πŸ‘ 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

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
Post image

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
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

23.11.2025 05:07 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 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
Post image

πŸ’‘ Performance tip: Iterate in SQL, not in code.

#AndroidDev

23.11.2025 05:07 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0