Spin The Wheel

Spin The Wheel

UXEngWearableConnect IQ

Can't decide? Building an intuitive, easy-to-use Spin The Wheel widget for Garmin Connect IQ

Centered on quick decision-making, this project designed and developed an intuitive Spin The Wheel widget with clear feedback, letting users draw a result in just a few taps. Within platform constraints, the wheel presentation was rebuilt to balance performance and readability, with the settings flow refined after launch based on user feedback.

Role
UI/UX Designer + Independent Developer
Platform
Garmin Connect IQ

An Everyday Post-Work Problem: What Should I Have for Dinner?

As someone who eats out regularly, I often found myself paralyzed by options: bento boxes, convenience stores, ramen, healthy meals. Too many choices, no decision made. And it's not just food. Life is full of these low-stakes but annoying small decisions: where to go on the weekend, whether to exercise tonight.

"Just leave it to fate." A quick glance at my watch, and the idea clicked: a fortune wheel, right on the wrist.

Garmin watch glance inspiring the idea for a fortune wheel widget

This Widget Is Meant to Be Grabbed and Used

I happened to have a Garmin watch on hand, so out of curiosity I decided to try building on Connect IQ. I started by reading the official documentation as the foundation for both design and implementation.

Garmin's UX guidelines put it clearly: "Great wearable apps stay out of the user's way and keep interactions to a minimum." This widget is meant to be grabbed and used in a moment, not something that demands attention.

Minimal Interaction

Keep only what's essential. No extra steps added to the flow.

Second-Scale Flow

Open, tap, get a result. The whole interaction wraps up in seconds.

Clear Feedback

Feedback is clear and immediate, while preserving the anticipation of the draw.

The Spin Is the Soul: Rotation, Deceleration, Vibration

Showing a random result instantly would take milliseconds, but it would feel like nothing. The soul of a fortune wheel is in the wait: the pointer sweeping across options, speed gradually slowing, finally locking onto a result. I designed three layers of dynamic feedback around this feeling.

Deceleration Curve

Quartic easing extends the low-speed glide, keeping the spin suspenseful right before it stops.

Illustration of an easeOutQuart deceleration curve comparing spin speed over time

Tick Vibration

Short haptic ticks simulate the tactile feeling of a pointer passing each option.

Animated fortune wheel reference illustrating tick-like vibration as the wheel spins

Result Reveal

A stronger haptic pulse and prominent animation give the final locked result more weight.

Wheel of Fortune celebration reference illustrating the energy of the final result reveal

A Solution Under Constraints: From Pizza Slices to a Ring Pointer

The initial concept used a traditional pie-slice wheel: each option occupying a wedge, visually intuitive. But implementing it in Monkey C hit a wall. Rotating text inside wedges was difficult to handle, and the large screen updates during animation caused stuttering.

The solution flipped the concept: keep the wheel stationary and rotate a pointer around a ring instead. This dramatically reduced computation and smoothed out the animation. The center of the ring displays the full option name in sync, compensating for the ring slots that could only fit short abbreviations.

Final solution: stationary ring with rotating pointer; center displays the full option name in sync
Actual wheel experience on Garmin watch

Launched and Humbled: Users Expected On-Watch Settings

v1.0 routed all configuration through the companion phone app. My logic: typing on a phone is easier, so it should be the better experience. The low ratings told a different story.

v1.0 settings were phone-only, misaligned with what users expected

If it's a wheel you play on the watch, of course you should be able to change the options on the watch.

v1.1 added on-watch configuration while keeping the phone as the "faster recommended method." The iteration increased development complexity, but made the settings flow more intuitive and started bringing in more positive reviews.

v1.0.0 to v1.1.0: expanding from phone-only setup to on-watch wheel editing

Compatibility Challenge

The dashboard showed that about a quarter of downloads came from Forerunner 55. This older device doesn't support the SDK's built-in text input component, so I had to build a compatible input solution to make sure those users could configure options on the watch too.

Dashboard stats: Forerunner 55 leads all devices in download share

Cover Art Matters

After fixing the settings flow, I also swapped in a more eye-catching cover image. Downloads picked up noticeably. The effect was way more significant than I expected.

After the cover update, downloads jumped from 10+ to 1K+

Closing: Giving Small Things Soul

This widget completed a full iteration loop: from need and inspiration, through defining interaction principles, designing and refining the experience, implementing and launching, then realigning with real user expectations post-launch.

I genuinely enjoyed the process of giving a small thing real character. I'll keep iterating to make it smoother and more complete.