ParticleEmitter is now a Compose Multiplatform library. The same physics-based particle API runs on Android, JVM desktop, iOS, macOS, and the web (JS/Wasm) — no longer Android-only.
Huge thanks to @zsmb13 for the migration (#19) — the project's first external contribution. 🎉
Changes
- Kotlin / Compose Multiplatform. The library now targets Android, JVM (desktop), iOS (arm64 + simulator), macOS, JS, and Wasm. Dependencies moved from AndroidX Compose to JetBrains Compose (
org.jetbrains.compose.*). - Library code relocated to
commonMain. Platform-specific calls were replaced with multiplatform-safe equivalents (Dispatchers.Defaultinstead ofDispatchers.IO, frame-based particle timestamps instead ofSystem.nanoTime()). No public API changes to the emitter or config types. - Samples restructured into
samples/{androidApp, shared, desktopApp, webApp, iosApp}— runnable demos for every supported platform. - CI added to build the library and samples across all targets.
Requirements
- Build with JDK 21 and a recent Kotlin/Compose toolchain. On Android, Compose Multiplatform stays binary-compatible with AndroidX Compose.
Install
implementation("io.github.piotrprus:particle-emitter:1.1.0")