A colorful, delightful fortune wheel for Android — the native Android twin of the iOS app. Add up to 20 choices, press the big SPIN button, and let the wheel pick a winner — complete with a spinning sound, celebration music, and rising balloons & confetti. Perfect for parties, events, classrooms, and everyday "what's for lunch?" decisions.
- 🎯 Up to 20 custom labels — add, rename, reorder, and delete your choices.
- 🔘 Big SPIN button — one tap launches a smooth, weighted spin that eases to a stop.
- 📍 Fair pointer result — the top pointer lands on a randomly chosen segment.
- 🔊 Spinning sound — a mechanical whirr plays while the wheel turns (toggleable).
- 🎉 Celebration music — a cheerful jingle plays on the win (toggleable).
- 🎈 Balloons & confetti — a festive overlay erupts when a winner is picked (toggleable).
- 🌈 Colorful & delightful — a vivid violet theme with eight rotating segment colors.
- 💬 Feedback tab — send a message straight to the team via WhatsApp.
- ℹ️ About tab — app info, developer, and version.
| Area | Choice |
|---|---|
| Language | Kotlin 2.0 |
| UI | Jetpack Compose + Material 3 |
| Audio | MediaPlayer (res/raw WAVs) |
| Haptics | Compose LocalHapticFeedback |
| Persistence | SharedPreferences (labels + settings) |
| Build | Gradle 8.11 / AGP 8.7, version catalog |
MainActivity → single activity, Compose entry point
└─ RootScreen → Material 3 bottom NavigationBar (Wheel · Feedback · About)
├─ WheelScreen → wheel area, SPIN button, settings, celebration overlay
│ ├─ WheelDial → Canvas-drawn colored segments + labels + hub
│ ├─ CelebrationOverlay → balloons + confetti animation
│ └─ EditLabelsDialog → add / edit / reorder / delete choices (max 20)
├─ FeedbackScreen → Title + Message → WhatsApp
└─ AboutScreen → app card, developer, version
WheelStore → labels + sound/music/balloons settings (SharedPreferences)
SoundManager → looping spin whirr + win jingle
ui/theme/Theme.kt → single source of truth for colors
Requirements: JDK 17+, Android SDK (API 35/36), or just open in Android Studio.
git clone https://github.com/alfredang/spinningwheelapp_android.git
cd spinningwheelapp_android
# Debug build
./gradlew :app:assembleDebug
# Install on a connected device/emulator
adb install -r app/build/outputs/apk/debug/app-debug.apkRelease AAB (requires a keystore.properties + upload keystore, both git-ignored):
./gradlew :app:bundleRelease
# → app/build/outputs/bundle/release/app-release.aabThe launcher icons are generated by tools/make_icons.py:
python3 tools/make_icons.pyapp/src/main/java/com/tertiaryinfotech/spinwheelfun/ Kotlin sources
app/src/main/res/raw/ spin.wav + win.wav
app/src/main/res/mipmap-*/ launcher icons
tools/ icon generator
screenshots/ emulator captures
distribution/ Play Store assets
Built by Tertiary Infotech Academy Pte Ltd.
MIT



