Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

aldefy/StickerExplode

Repository files navigation


StickerExplode

Slap stickers. Pinch, spin, fling. Vibe.

Kotlin Compose Platform Stickers

Demo


A Compose Multiplatform sticker canvas — place, drag, pinch-zoom, rotate, and peel stickers off a canvas like they're real. Holographic shimmer, haptic feedback, spring physics, and die-cut outlines that make every sticker feel tactile.

Screenshots

Sticker Canvas Sticker Tray Drag Demo

What makes it pop

Feature The details
Peel-off grab Stickers lift + scale when you grab them, with a dynamic drop shadow that grows as they rise
Holographic shimmer Tilt your phone — an iridescent shader responds to the accelerometer in real-time
Die-cut outlines White border around every sticker, just like a real vinyl die-cut
Spring physics Double-tap for a bouncy 2x zoom, everything animates with spring specs
Haptic feedback Feel every grab, drop, tap, and selection through your fingertips
Pinch + Rotate Full multi-touch transform gestures on every sticker
Z-ordering Tap a sticker to pop it to the front
History log Chronological record of everything you've placed, persisted across launches
State persistence Full canvas state saved to DataStore — pick up right where you left off

The sticker lineup

 Kotlin logo Gift Dev Hello Build Code
 Heart Star Fire Rocket Sparkles Party
 Thumbs Up Lightning Rainbow Eyes

16 stickers across emoji, custom canvas drawings, styled text, and Material icon styles.

Under the hood

Kotlin Multiplatform
├── Compose Multiplatform ─── Declarative UI across Android & iOS
├── Material 3 ──────────── Bottom sheets, FAB, icons
├── Navigation Compose ───── Canvas + History screen nav
├── DataStore ────────────── Full canvas state persistence
├── Compose Gestures ─────── detectTransformGestures + detectTapGestures
├── Spring Animations ────── animateFloatAsState with spring specs
├── Platform Sensors ─────── Accelerometer/gyroscope via expect/actual
└── Platform Haptics ─────── Native haptic feedback via expect/actual

Project layout

composeApp/src/
 commonMain/
 App.kt # Root nav host
 StickerCanvas.kt # The main canvas with draggable stickers
 StickerTray.kt # Bottom sheet sticker picker
 ShimmerGlow.kt # Tilt-based holographic shimmer modifier
 HistoryScreen.kt # Chronological sticker history
 model/ # StickerData, HistoryEntry
 data/ # CanvasRepository, DataStore
 viewmodel/ # CanvasViewModel
 sensor/ # TiltSensor expect declarations
 haptics/ # HapticFeedback expect declarations
 androidMain/ # Android sensor + haptics implementations
 iosMain/ # iOS sensor + haptics implementations
iosApp/ # SwiftUI entry point

Get started

Prerequisites: Android Studio Ladybug+, Kotlin 2.1+, JDK 17+, Xcode 15+ (iOS)

# Android
./gradlew :composeApp:installDebug
# iOS
open iosApp/iosApp.xcodeproj
# then hit Run in Xcode

License

MIT — go wild.

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /