Skip to content

alfredang/spinningwheelapp_android

Repository files navigation

🎡 Spin Wheel Fun (Android)

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.

Platform Kotlin Compose Material 3 License

Spin wheel home screen Celebration with balloons and confetti

Feedback tab About tab

✨ Features

  • 🎯 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.

🛠 Tech Stack

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

🏗 Architecture

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

🚀 Getting Started

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.apk

Release AAB (requires a keystore.properties + upload keystore, both git-ignored):

./gradlew :app:bundleRelease
# → app/build/outputs/bundle/release/app-release.aab

The launcher icons are generated by tools/make_icons.py:

python3 tools/make_icons.py

📁 Project Structure

app/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

🙏 Acknowledgements

Built by Tertiary Infotech Academy Pte Ltd.

📄 License

MIT

About

Colorful fortune wheel app for Android — add up to 20 choices, spin, and celebrate the winner with sound, music, balloons and confetti. Native Kotlin + Jetpack Compose (Material 3).

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors