JetpackCompose.app
jetpackcomposeapp.bsky.social
JetpackCompose.app
@jetpackcomposeapp.bsky.social
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
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
January 29, 2026 at 4:56 PM
🐛 SPOT THE BUG 🐛

Is the onDispose callback GUARANTEED to be called?

#AndroidDev
January 28, 2026 at 4:15 PM
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
January 24, 2026 at 3:38 PM
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
December 31, 2025 at 7:31 AM
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
December 7, 2025 at 4:20 PM
@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
November 27, 2025 at 4:31 AM
💡 Performance tip: Iterate in SQL, not in code.

#AndroidDev
November 23, 2025 at 5:07 AM
The difference between mediocre apps and great apps isn't code quality.

It's understanding your customer and the problems they need solved.

Thread on where Android developers still have the most leverage in this new era of software engineering 🧵

#AndroidDev
November 18, 2025 at 6:53 PM
Why Android developers like cooking:

You peel the carrot, you chop the carrot, you put the carrot in the stew.

You don't suddenly find out that your peeler is several versions behind and they dropped support for carrots in version 4.3 😭😭

#AndroidDev
November 18, 2025 at 5:23 AM
"For the first time, an app built in 2021 would look nearly identical to an app built in 2025"

This from Gabriel Peal perfectly captures where Android is now.

We're not chasing new primitives anymore. We're refining and building on a mature foundation. 🧵

#AndroidDev
November 16, 2025 at 5:30 PM
Fun fact: toUpperCase() got deprecated because of... Turkey 🦃

Just kidding, not 🦃 but 🇹🇷

In Turkish, uppercase "i" is "İ" (with a dot!), not "I".

Since toUpperCase() relied on Locale.getDefault(), your code could behave differently depending on location.

#AndroidDev
November 16, 2025 at 5:00 AM
Reposted by JetpackCompose.app
Check the latest edition of this newsletter by @vinaygaba.bsky.social
There is a must have library that I've never heard about before and now I'll never forget!
www.jetpackcompose.app/newsletter #AndroidDev #JetpackCompose
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.
www.jetpackcompose.app
November 15, 2025 at 2:06 PM
Compose 1.9 alpha just dropped two modifiers that'll make your designer's heart skip a beat:

Modifier.dropShadow() Modifier.innerShadow()

No more hacky Canvas drawing or third-party libraries. Native shadows are HERE. 🧵

#AndroidDev #JetpackCompose
November 15, 2025 at 3:44 PM
The latest issue of Dispatch goes out shortly! 🚀 If you are not a subscriber yet, you know what to do - www.jetpackcompose.app/newsletter

#AndroidDev
November 14, 2025 at 5:44 PM
🚨 GAME CHANGER ALERT 🚨

You can now enable automated accessibility checks directly in your Espresso tests:

That's it. No more manual a11y audits.

#AndroidDev #JetpackCompose
November 11, 2025 at 4:51 PM
The August '25 Compose release dropped 2D scrolling, better prefetching, and autoSize text.

But the coolest feature? A modifier that tracks visibility WITHOUT killing your performance.

Thread on onLayoutRectChanged 🧵

#AndroidDev #JetpackCompose
November 9, 2025 at 6:49 PM
We only scratched the surface with the previous post on Metro. @jingibus.bsky.social peels the onion and helps you understand what it takes to ship a project of this scale
This is fantastic and @zacsweers.dev deserves all the praise but it also is gonna give you a false idea of what Z is like as a maintainer and author, what the project is like, and how you might achieve something like this yourself
Hot take: Dependency Injection on Android just got a huge upgrade!!

Square just moved Anvil to maintenance mode to adopt Metro - a DI framework built by ONE PERSON that's 47-56% faster than Dagger+Anvil.

This is what "individual developers changing ecosystems" looks like 🧵

#AndroidDev
November 8, 2025 at 4:59 PM
🤯 Mind-blowing fact: Both OpenAI's and Anthropic's official JAVA SDKs are written entirely in Kotlin.

Let that sink in.

Companies building SDKs FOR Java developers chose Kotlin as the implementation language.

The Kotlin takeover is real 🫡

#AndroidDev
November 8, 2025 at 4:36 PM
Hot take: Dependency Injection on Android just got a huge upgrade!!

Square just moved Anvil to maintenance mode to adopt Metro - a DI framework built by ONE PERSON that's 47-56% faster than Dagger+Anvil.

This is what "individual developers changing ecosystems" looks like 🧵

#AndroidDev
November 7, 2025 at 8:45 PM
Hot take: Dependency Injection on Android just got a huge upgrade!!

Square just moved Anvil to maintenance mode to adopt Metro - a DI framework built by ONE PERSON that's 47-56% faster than Dagger+Anvil.

This is what "individual developers changing ecosystems" looks like 🧵

#AndroidDev
November 7, 2025 at 7:13 PM
ViewModel scoping in Compose has been broken from day one.

You can only scope to Activity or navigation graphs, but Compose wants fine-grained components.

Enter Resaca - the library that fixes this beautiful mess 🧵

#AndroidDev #JetpackCompose
November 5, 2025 at 5:39 PM
ViewModel scoping in Compose has been broken from day one.

You can only scope to Activity or navigation graphs, but Compose wants fine-grained components.

Enter Resaca - the library that fixes this beautiful mess 🧵

#AndroidDev #JetpackCompose
November 5, 2025 at 5:30 PM
🚨 ANSWER TIME 🚨

The bug: LazyColumn prefetches items OUTSIDE the viewport. So LaunchedEffect fires when items are COMPOSED, not when they're VISIBLE.

With the new August '25 prefetching APIs, you'll log impressions for things users never see!

#AndroidDev #JetpackCompose
🐛 SPOT THE BUG 🐛

This code logs impressions for list items. But with Compose's new prefetching APIs, there's a subtle bug lurking.

Can you spot it? Drop your answer below 👇

#AndroidDev #JetpackCompose
November 4, 2025 at 10:24 PM
🐛 SPOT THE BUG 🐛

This code logs impressions for list items. But with Compose's new prefetching APIs, there's a subtle bug lurking.

Can you spot it? Drop your answer below 👇

#AndroidDev #JetpackCompose
November 4, 2025 at 4:45 PM
99% of Android devs know about graphicsLayer and offset lambda Modifiers for performant animations.

But I'm convinced most don't know the performant alternative for background().

Thread on a Compose optimization that'll make your animations buttery smooth 🧈👇
November 3, 2025 at 8:48 PM