🔍 Overview
This release focuses on improving lifecycle awareness and coroutine safety in Jetpack Compose-based ViewModels. Inspired by legacy coroutine patterns from XML-based old Jetpack projects on 2019, this update brings modern debugging tools and race condition prevention strategies into the Compose world.
🛠️ What's New
Debug Logging with logChanges
A new StateFlow extension to log UI state transitions, making Compose lifecycle behavior easier to trace and understand.
Race Condition Prevention
Implemented job cancellation in NewsHomeViewModel and NewsDetailViewModel to avoid overlapping coroutine executions during events like swipe-to-refresh or configuration changes.
Lifecycle-Aware Debugging
Integrated logChanges into NewsHomeViewModel to monitor state updates in real-time, aiding in lifecycle analysis and debugging.
💡 Why It Matters
Understanding Compose lifecycle can be challenging—especially when dealing with asynchronous data flows. This release bridges the gap between traditional coroutine handling and modern Compose architecture, making debugging process smoother and app more resilient.
What's Changed
- feat(viewmodel): add debug logging and prevent race conditions by @yogithesymbian in #13
Full Changelog: V1.0.7...V1.0.8