Sign in

JetpackCompose.app

@jetpackcomposeapp.bsky.social
30 followers 1 following 150 posts

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 👉🏻 www.jetpackcompose.app/newsletter

PostsRepliesMedia
JetpackCompose.app @jetpackcomposeapp.bsky.social · 18/05/2026
Published the latest issue of Dispatch yesterday. Lots of Android goodies in there that you should know about. You can read it here — www.jetpackcompose.app/newsletter/d... #AndroidDev #AI
030
JetpackCompose.app @jetpackcomposeapp.bsky.social · 11/04/2026
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
020
JetpackCompose.app @jetpackcomposeapp.bsky.social · 28/03/2026
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
030
JetpackCompose.app @jetpackcomposeapp.bsky.social · 06/02/2026
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
010
JetpackCompose.app @jetpackcomposeapp.bsky.social · 29/01/2026
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
000
JetpackCompose.app @jetpackcomposeapp.bsky.social · 28/01/2026
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:
100
JetpackCompose.app @jetpackcomposeapp.bsky.social · 28/01/2026
🐛 SPOT THE BUG 🐛 Is the onDispose callback GUARANTEED to be called? #AndroidDev
120
JetpackCompose.app @jetpackcomposeapp.bsky.social · 24/01/2026
When you need the bitmap (for sharing, bug reports, etc.):
100
JetpackCompose.app @jetpackcomposeapp.bsky.social · 24/01/2026
The old way involved "View.drawToBitmap()", Canvas shenanigans, and prayers. The new way? Just a few lines:
100
JetpackCompose.app @jetpackcomposeapp.bsky.social · 31/12/2025
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
151
JetpackCompose.app @jetpackcomposeapp.bsky.social · 07/12/2025
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
150
JetpackCompose.app @jetpackcomposeapp.bsky.social · 27/11/2025
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.
100
JetpackCompose.app @jetpackcomposeapp.bsky.social · 27/11/2025
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
100
JetpackCompose.app @jetpackcomposeapp.bsky.social · 27/11/2025
The "readable" way: Readable? Yes. Efficient? Hell no.
100
JetpackCompose.app @jetpackcomposeapp.bsky.social · 23/11/2025
💡 Performance tip: Iterate in SQL, not in code. #AndroidDev
120
JetpackCompose.app @jetpackcomposeapp.bsky.social · 18/11/2025
As Android OG @ryan.harter.us puts it: "While AI can help solve some development problems, the real difference between mediocre apps and great apps isn't something I believe AI will be able to tackle in the foreseeable future."
100
JetpackCompose.app @jetpackcomposeapp.bsky.social · 18/11/2025
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
110
JetpackCompose.app @jetpackcomposeapp.bsky.social · 18/11/2025
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
030
JetpackCompose.app @jetpackcomposeapp.bsky.social · 16/11/2025
"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
120
JetpackCompose.app @jetpackcomposeapp.bsky.social · 16/11/2025
For more fun facts like this, you gotta subscribe to our newsletter like the best in the business already have 😎 www.jetpackcompose.app/newsletter
010
JetpackCompose.app @jetpackcomposeapp.bsky.social · 16/11/2025
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
150
JetpackCompose.app @jetpackcomposeapp.bsky.social · 15/11/2025
Finally, Compose is catching up to what designers have been doing in Figma for years. Beautiful UI shouldn't require a PhD in Canvas drawing. Want to know about feature like these, early? Read Dispatch www.jetpackcompose.app/newsletter
010
JetpackCompose.app @jetpackcomposeapp.bsky.social · 15/11/2025
Here's how ridiculously easy it is:
100
JetpackCompose.app @jetpackcomposeapp.bsky.social · 15/11/2025
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
130
JetpackCompose.app @jetpackcomposeapp.bsky.social · 14/11/2025
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
040
JetpackCompose.app @jetpackcomposeapp.bsky.social · 11/11/2025
We cover more Android tips like these in Dispatch, our newsletter that thousands of the best Android engineers diligently read 🚀 www.jetpackcompose.app/newsletter
000
JetpackCompose.app @jetpackcomposeapp.bsky.social · 11/11/2025
🚨 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
150
JetpackCompose.app @jetpackcomposeapp.bsky.social · 09/11/2025
If you're still using onGloballyPositioned for a lot of your use cases, it's time to reconsider. Your scroll performance will thank you. We cover more Android tips like these in Dispatch, our newsletter that thousands of Android engineers diligently read 🚀 www.jetpackcompose.app/newsletter
000
JetpackCompose.app @jetpackcomposeapp.bsky.social · 09/11/2025
Enter Modifier.onLayoutRectChanged:
100
JetpackCompose.app @jetpackcomposeapp.bsky.social · 09/11/2025
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
120
JetpackCompose.app @jetpackcomposeapp.bsky.social · 08/11/2025
If you like getting useful content like this, consider subscribing to our newsletter. We go to great lengths to add value each time you open our email. It shows up once every couple weeks so it's not hard to keep up. www.jetpackcompose.app/newsletter
000
JetpackCompose.app @jetpackcomposeapp.bsky.social · 08/11/2025
🤯 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
130
JetpackCompose.app @jetpackcomposeapp.bsky.social · 07/11/2025
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
1222
JetpackCompose.app @jetpackcomposeapp.bsky.social · 05/11/2025
Even better: Built-in DI support (Hilt & Koin extensions) and works across all Compose Multiplatform targets. Plus it's Chris Banes approved, which is basically a seal of quality in the Android world.
110
JetpackCompose.app @jetpackcomposeapp.bsky.social · 05/11/2025
Use cases are endless: Dialog ViewModels that clean up when dismissed LazyColumn items with their own business logic Reusable components with isolated state Multi-pager screens with per-page ViewModels
110
JetpackCompose.app @jetpackcomposeapp.bsky.social · 05/11/2025
Resaca lets you scope ViewModels to individual composables:
110
JetpackCompose.app @jetpackcomposeapp.bsky.social · 05/11/2025
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
142
JetpackCompose.app @jetpackcomposeapp.bsky.social · 05/11/2025
Even better: Built-in DI support (Hilt & Koin extensions) and works across all Compose Multiplatform targets. Plus it's Chris Banes approved, which is basically a seal of quality in the Android world.
100
JetpackCompose.app @jetpackcomposeapp.bsky.social · 05/11/2025
Use cases are endless: Dialog ViewModels that clean up when dismissed LazyColumn items with their own business logic Reusable components with isolated state Multi-pager screens with per-page ViewModels
100
JetpackCompose.app @jetpackcomposeapp.bsky.social · 05/11/2025
Resaca lets you scope ViewModels to individual composables:
100
JetpackCompose.app @jetpackcomposeapp.bsky.social · 05/11/2025
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
110
JetpackCompose.app @jetpackcomposeapp.bsky.social · 04/11/2025
The fix: Use Modifier.onFirstVisible Now you track actual visibility, not just composition.
100
JetpackCompose.app @jetpackcomposeapp.bsky.social · 04/11/2025
🐛 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
210
JetpackCompose.app @jetpackcomposeapp.bsky.social · 03/11/2025
Want more performance tips that actually work? Get Dispatch in your inbox 🚀
000
JetpackCompose.app @jetpackcomposeapp.bsky.social · 03/11/2025
The fix? Use drawBehind instead:
100
JetpackCompose.app @jetpackcomposeapp.bsky.social · 03/11/2025
Look at this seemingly innocent code in the screenshot. What's wrong here?
100
JetpackCompose.app @jetpackcomposeapp.bsky.social · 03/11/2025
Want more performance tips that actually work? Get Dispatch in your inbox 🚀
000
JetpackCompose.app @jetpackcomposeapp.bsky.social · 03/11/2025
The fix? Use drawBehind instead:
100
JetpackCompose.app @jetpackcomposeapp.bsky.social · 03/11/2025
Look at this seemingly innocent code in the screenshot. What's wrong here?
100
JetpackCompose.app @jetpackcomposeapp.bsky.social · 02/11/2025
Hot take: If you figure out a way to improve your app's build times, you're basically working in Climate Tech now 😅 Every minute shaved off = less CO2, cooler laptops, and happier devs. We don't make the rules 🌍
000