ExplodingComposable
https://github.com/omkar-tenkale/ExplodingComposable
📚 Library Overview

💢 Exp...

💢 Exploding Composable
A Jetpack Compose utility library to add explosive dust effect animation to any composable
Based on
ExplosionField by
@tyrantgit
</div>
## 💻 Installation 1. Add this to `build.gradle` of project gradle dependency ```groovy allprojects { repositories { ... maven { url 'https://jitpack.io' } } } ``` 2. In `build.gradle` of `app` module, include this dependency ```groovy implementation "com.github.omkar-tenkale:ExplodingComposable:1.0.1" ``` Find latest version and changelogs in the [releases](https://github.com/omkar-tenkale/ExplodingComposable/releases).
## ❓ Usage Wrap the content to explode in [`Explodable`](https://github.com/omkar-tenkale/ExplodingComposable/blob/master/explodable/src/main/java/dev/omkartenkale/explodable/Explodable.kt) and trigger the explosion with `explosionController.explode()` ```kotlin 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
```kotlin
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](https://github.com/omkar-tenkale/ExplodingComposable/releases/download/1.0.1/ExplodingComposableDemo.apk)
or explore the [sample project](https://github.com/omkar-tenkale/ExplodingComposable/tree/master/app/src/main/java/dev/omkartenkale/explodable/sample)
## How it Works 🔧
Curious about how the library works under the hood?
Check out this in-depth [Medium article](https://proandroiddev.com/creating-a-particle-explosion-animation-in-jetpack-compose-4ee42022bbfa) 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](https://github.com/omkar-tenkale/ExplodingComposable/discussions)
## 📃 License
Licensed under Apache license 2.0
This work is derived from [ExplosionField](https://github.com/tyrantgit/ExplosionField)
## 💻 Installation 1. Add this to `build.gradle` of project gradle dependency ```groovy allprojects { repositories { ... maven { url 'https://jitpack.io' } } } ``` 2. In `build.gradle` of `app` module, include this dependency ```groovy implementation "com.github.omkar-tenkale:ExplodingComposable:1.0.1" ``` Find latest version and changelogs in the [releases](https://github.com/omkar-tenkale/ExplodingComposable/releases).
## ❓ Usage Wrap the content to explode in [`Explodable`](https://github.com/omkar-tenkale/ExplodingComposable/blob/master/explodable/src/main/java/dev/omkartenkale/explodable/Explodable.kt) and trigger the explosion with `explosionController.explode()` ```kotlin 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
