Why has my background Worker stopped? Exploring Android WorkManger’s StopReason | by Paolo Rotolo | Sep, 2023
Between platform changes, new rules, and Android customizations by OEMs, scheduling long-running background jobs has become a quite challenging task. A practical solution that abstracts most of the underlying problems for developers is WorkManager, which supports both short, immediate jobs (Expedited Work) and long-running workers…
Exploring Canvas in Jetpack Compose — Crafting Graphics, Animations, and Game Experiences | by Nirbhay Pherwani | Sep, 2023
The Canvas composable isn’t limited to graphics; it’s also used in creating interactive and immersive game experiences directly within your app. Let’s look at a simple game concept — a bouncing ball. Bouncing Ball Game @Composablefun BouncingBallGame() {val position = remember { mutableStateOf(Offset(300f, 0f)) }val…
Getting Better with Kotlin — Exploring Advanced Features and Effective Coding Strategies | by Nirbhay Pherwani | Aug, 2023
1. Inline Classes — Compact Abstractions Example — Inline classes allow us to create lightweight wrappers around primitive types without runtime overhead. Inline Class Example Explanation — In this example, we define an inline class Meter that wraps a Double value. The toCentimeter function showcases…