π’ Exploding Composable
A Jetpack Compose utility library to add explosive dust effect animation to any composable
π» Installation
- Add this to
build.gradle
of project gradle dependency
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
- In
build.gradle
ofapp
module, include this dependency
implementation "com.github.omkar-tenkale:ExplodingComposable:1.0.1"
Find latest version and changelogs in the releases.
β Usage
Wrap the content to explode in Explodable
and trigger the explosion with explosionController.explode()
val explosionController = rememberExplosionController()
Explodable(controller = explosionController) {
//Content to explode
Box(modifier = Modifier
.size(100.dp)
.background(Color.Black)
.clickable { explosionController.explode() })
}
π¨ Customization
ExplodingComposable offers a variety of customizations
val explosionController = rememberExplosionController()
Explodable(
//Standard compose modifier
modifier = Modifier,
// Control the explosion state with an instance of ExplosionController
// You can access it using rememberExplosionController() method
// Provides methods controller.explode() and controller.reset()
controller = explosionController,
// Control the animation with these params
animationSpec = ExplosionAnimationSpec(
// The higher the number, the bigger the explosion
explosionPower = 2f,
// Duration for the particle explosion
explosionDurationMs = 750,
// Duration for the shake effect before explosion
shakeDurationMs = 250
),
// Callback to fire when explosion is finished
onExplode = {
},
// To control the explosion manually, use this param [0f-1f]
currentProgress = progress,
// The composable to explode
content = {
}
)
π± Demo
Download the sample app or explore the sample project
π§
How it Works Curious about how the library works under the hood? Check out this in-depth Medium article for all the details
Discuss π¬
Have any questions, doubts or want to present your opinions, views? You're always welcome. You can start a discussion
π License
Licensed under Apache license 2.0
This work is derived from ExplosionField