Haze 2.0 is here, and it's a big one! 🎉
For Compose Multiplatform:
🫧 Glass with refraction & lighting
⚡ Faster blur
🎛️ Adaptive rendering quality
🎨 Reusable styles
🛠️ Build your own effects
https://t.co/Iz4rkHGjSy
We had 100% test coverage and still shipped a critical bug to production.
How?
- Our tests mocked every external dependency
- The bug was in how we integrated with a third-party API
- The mocks returned what we thought the API returned
- The actual API had changed its response format
- All tests passed because they tested our assumptions, not reality
The bug caused a 1 hour outage.
Added contract tests. Integration tests against staging APIs. Reduced unit test coverage to 70%.
100% test coverage measures quantity, not quality. Tests that mock reality don't test anything useful.
Create high-converting app store screenshots in just a few minutes with ScreenshotWhale 🐋
Carefully crafted professional templates for iOS and Android to boost your app conversion.
Find it in https://t.co/6OXE1RdAkF 📸📲
Just published the main page of @RevenueCat Codelabs!
The codelabs provide a step-by-step guide to building, analyzing, and growing your in-app purchases, subscriptions, and paywalls for iOS, Android, KMP, and Flutter.
https://t.co/YatTD79Sv5
Introducing Watch Face Designer — bridging design and development in Wear OS. Create simple no-code watch faces or build complex faces more quickly → https://t.co/yDBkP8ecfH
Introducing Compose Unstyled
Compose Unstyled is an API for implementing any design system in Jetpack Compose and Compose Multiplatform.
🎨 Token based Theming API
🍱 20+ renderless components
🎹 Keyboard navigation
🤟 Fully a11y
Link in the reply
Here's your latest reminder to stop using Gson with anything that touches Kotlin, as every alternative is much better.
kotlinx.serialization is especially a great choice to be multiplatform-ready, with whatever code you're writing.
https://t.co/T9wZnBehxz
Want to see how your UI adapts to different wallpapers?
You can preview dynamic colors directly in Android Studio using the "wallpaper" parameter for preview annotation.
Does your app support dynamic colors?
`flatMapMerge` in Kotlin Flow isn't as smooth as it seems... 👀
- Async? Not always.
- Default settings? Questionable.
- Consistency? Not always.
Think you know how it works? You might want to take a closer look. 🔍
https://t.co/g1e6lsGaJ7
If you were rebuilding your Android app from scratch in 2025, what would you not use again?
A library, a pattern, a tool, whatever.
Let’s make this brutally honest.