diff --git a/README.md b/README.md index c7dec7f..88de71a 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,110 @@ +
+

💢 ExplodingComposable

+

A Jetpack Compose utility library to add explosive dust effect animation to any composable

- \ No newline at end of file +
+ + + + +
+ +
+ Based on + ExplosionField by + @tyrantgit +
+ +
+ +## 💻 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.0" +``` + +You can 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.0/ExplodingComposableDemo.apk) +or explore the [sample project](https://github.com/omkar-tenkale/ExplodingComposable/tree/master/app/src/main/java/dev/omkartenkale/explodable/sample) + +## 📃 License +Licensed under Apache license 2.0 + +This work is derived from [ExplosionField](https://github.com/tyrantgit/ExplosionField) +