HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
RiftValleySoftware
RVS_Spinner
Swift2019–2026
RiftValleySoftware / RVS_Spinner

RVS_Spinner

A Fancy "Popup Prize-Wheel Spinner" UIControl

3Distinct people
21Mentions
0Explicit recommenders
27GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A Fancy "Popup Prize-Wheel Spinner" UIControl

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year21 dated mentions

Observed mentions: 2019-06-02 19:06:44 UTC to 2026-10-24 02:30:44 UTC.

0123452019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC110
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC101
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC303
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC505
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC303
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC303
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC101
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC404

What Hacker News says

21 sources
Your code isn't as unnecessarily commented as this. E.g. look at this line https://github.com/RiftValleySoftware/RVS_Spinner/blob/d44ee... An LLM would have commented `// Create temporary UI view.` Completely redundant comments like this are a classic hallmark of LLMs: # Set frequency scaling factor freq=0.2 Dunno why I have been downvoted for stating the obvious. Also from my brief look at one file it looks like you have 50% comments because you have a gazillion comment separator lines.
In Decoding the obfuscated bash script on a Uniqlo t-shirt
Great article -but the image has issues with Safari (invisible drag corner), and iOS (a mess). I have found that we need to be very, very careful, when making the UI more "fun." Things like rounded affordances, short transition animations, easy-to-understand elements, etc., are good. They remove the "friction." However, cute icons, unprompted animations, and overuse of whitespace for the sake of design aesthetics, can cause the UI to be too prominent. UI needs to be approachable, useful, and unobtrusive. i.e. "forgettable." Many designers absolutely can't stand the idea of designing stuff that no one pays attention to; but that's actually exactly what most UI needs to be. The metaphor that I use, is that most waitstaff at restaurants, wear black. The reason is, is because people don't go to a restaurant to pay attention to the staff (with
Read the rest
a couple of ahem exceptions <owl emoji/>). They go for the food, and the ease of having it provided without the need to cook and wash up. I feel that UI needs to be the same. I am currently working on a version 2 of a pretty popular app that has been out for a couple of years. The original was almost entirely designed by a professional graphic designer, and he did a great job -for the most part. It looks great, and people like it. But I am constantly encountering people that have no idea about some of its most important features, mainly because the affordances were deprecated in service to visual aesthetic. The new version uses a distinct "accent color" for elements that can be manipulated, as well as simpler, clearer design. It's working well. Another example is my "Spinner" UI element[0]. This was a UIKit element that I designed, to provide an interactive "prize wheel" spinner feature for iOS. It works nicely. But I have never been able to justify actually using it for any of my projects. It's too "in your face." [0] https://github.com/RiftValleySoftware/RVS_Spinner
In Free the Icons
Agreed. They do have a nasty habit of dinging competitors to Apple apps, in the App Store. It would not be a good thing, if they did that, here. It would be interesting to see what they do with some of my packages. I release alternative UI views, and Apple is infamous for wanting to force all developers into conforming to their UX. It would make me sad, if they blocked things like these: https://github.com/RiftValleySoftware/RVS_Spinner https://github.com/RiftValleySoftware/RVS_Checkbox https://github.com/RiftValleySoftware/RVS_RetroLEDDisplay
In Swift Package Index joins Apple
Well, I thought I explained it well. Frankly, I'm shocked that folks don't know what test harnesses are. They are one of the oldest constructs in Software Engineering. In the days of old, we often called them "Unit Tests." If you want some concrete examples, here you go: Here's my "Spinner" widget: https://github.com/RiftValleySoftware/RVS_Spinner This is the four test harness apps: https://github.com/RiftValleySoftware/RVS_Spinner/tree/main/... This is my checkbox widget: https://github.com/RiftValleySoftware/RVS_Checkbox Here's the test harness app: https://github.com/RiftValleySoftware/RVS_Checkbox/tree/main... There's more, but these should be enough to illustrate the point.
In Developer's block
That's nice! I wrote a Swift package that does a similar thing (but as an iOS widget): https://github.com/RiftValleySoftware/RVS_Spinner My own experience, is that I keep on not using it in my projects. It's too much of an "in your face" widget. I was going to do a SwiftUI version of it, but stopped working on it, when I figured out that I probably wouldn't use it. I suspect that MacOS, with the cursor-oriented navigation, is a better home for it.
In Show HN: Pie Menu – a radial menu for macOS
Just to expand, I have found that the best UI, is the UI that no one notices, appreciates, or compliments. Bit humbling, but there you have it. Case in point: I have a fancy “prize wheel spinner” for UIKit, that I wrote, a few years ago[0]. I started working on a SwiftUI version of it, but stopped. The reason was, because I kept not using it, in my shipping projects. It’s too “in your face.” Some of the UI approaches that I tried, in my test app, were “sexy,” but I didn’t use any of them. The one I ended up using, was a bit pedestrian. [0] https://github.com/RiftValleySoftware/RVS_Spinner
In An experiment in UI density created with Svelte
Like I said, anybody that designs anything, to be used by anyone. Graphic designers often design stuff that isn't meant to be used. It only applies to the ones that design stuff to be used. But anyone that designs anything to be used (whether a graphic designer, engineer, or architect), should have a good grasp of Usability, IMNSHO, even though it's obvious that a lot of folks don't think that should be the case. In my experience, I've come to learn that usable interfaces stay out of the way. There's a reason that waitstaff usually wear black. When an interface is "in your face," it may elicit an "Ooh!" or an "Ah!" at first, but the novelty rapidly declines. I've been designing unusual interfaces for most of my adult life, and have come to learn that there's a reason the classics are so prevalent. I write about that here[0]. Here's an exa
Read the rest
mple, from my own work[1]. It's a fancy "spinner" control, that acts like a prize-wheel spinner. Quite nice. I keep not using it in my apps. It's too "in your face." [0] https://littlegreenviper.com/miscellany/the-road-most-travel... [1] https://github.com/RiftValleySoftware/RVS_Spinner
In What Bed Linen Can Teach Us About Usability
Surface dial was very cool. I haven't heard much about it, though. Wouldn't surprise me to find that there may be patent clashes with this project. Most hardware is heavily patented with highly enforceable patents. It's a damn minefield. One of the problems with "Cool UX," is that it is too "in your face." I know of what I speak. I have designed "cool" UX elements for most of my career. It's a mistake I keep making. I guess I like the challenge. One of my latest efforts, is a "prize wheel" spinner for Swift (iOS/iPadOS, via UIKit)[0]. I have considered creating a SwiftUI version of it (and even started work on that), but I can't justify it. It's really very lightweight, high Quality, and easy to use. I keep on not using it in my projects, because it's too "attention-grabbing." There's a reason that waitstaff usually wear black. [0] https:
Read the rest
In SmartKnob – Haptic input knob with software-defined endstops and virtual detents
I learned the hard way, that iconic UI is probably not the best way to go. But designers pretty much insist on it, these days, and fun, ensues (and sometimes, F*kN sues). I have found the best UI, is UI that gets out of the way, and doesn't call attention to itself. There's a reason that waitstaff usually wear black. An example: I designed this really clever Swift UIKit widget (not SwiftUI)[0]. I keep trying to use it in my projects, and keep removing it, because it's too "in your face." [0] https://github.com/RiftValleySoftware/RVS_Spinner
In The Dilemma of Icons
I have had quite a bit of experience with this. I'm primarily a native Apple application developer, but have done some backend stuff, as well. I have designed numerous Web sites, but I am not a particularly skilled Web designer. I was, in the days of yore, an artist. I have also taken numerous design and usability courses, from the likes of NNG (Nielsen-Norman Group). I'm a passable graphic designer, but don't pretend to be anywhere near "pro" level. I know enough to be dangerous (and use many of the tools). I have designed a bunch of fancy widgets[0 - 4]. I actually use very few of them, because they are too intrusive. I am in the "refining UX" stage of an iOS app that I've been developing for the last year and a half, or so. I'm working with designers and testers, to clean up the information architecture, interaction, usability, aesthet
Read the rest
ic design, and accessibility. For me, the most valuable technique, has been rapid, high-quality prototyping. I have been abusing Apple's TestFlight[5] beta release system, and have been using it to make regular (usually, a couple a day) releases to the rest of the team, who are mostly non-tech people. I've made over 600 releases. The first release was made less than a month after first code submission. The way I use it, is that I run what I call "constant beta." The app is always at "ship" Quality, even if incomplete. This means that the code people get, is fully operational, for the currently developed feature set, and they aren't using some kind of "lash-up" kludgy throwaway code. They are working with the actual code that will ship. This has the advantage of constant vetting by Apple. They don't test TestFlight to the same level as the App Store, but they look for things like unsupported API usage, code signing issues, and obvious quality issues (like crashes). In at least one case, their testing found a crash that I missed. Once the first release for a version has been vetted (takes a day or so), subsequent build releases, within that version, are approved almost immediately, so I get quick turnaround. If the testers encounter crashes, I get a fairly useless report. If I use a Ouija board, I can often figure out the general part of the application affected. With this workflow, we can have a highly iterative process, with aesthetics, usability, and general UX, being tested, almost from the start. It also means that integration testing (the most important kind), starts almost immediately, and continues, throughout the development lifecycle. It also means that I throw away a lot of good code. Most of those widgets I referenced were once in the app, and we decided not to use them, so I broke them into open-source packages, for reuse in future projects (I tend to eat my own dog food. I have a lot of packages in the app). I'm pretty good at interpreting designs. I can accept Figma, Photoshop, Sketch, Illustrator, Napkin Sketch, or Hand-Wavy Verbal Description, and turn it into UX. I usually have something for the designers to try out, within minutes. Most of the actual app assets are generated (and stored in the app) as vector PDF, via Illustrator, and I will often redesign raster art, into vector. The designers and non-tech stakeholders seem to like it. WFM. YMMV. [0] https://github.com/RiftValleySoftware/RVS_Spinner [1] https://github.com/RiftValleySoftware/RVS_MaskButton [2] https://github.com/RiftValleySoftware/RVS_Checkbox [3] https://github.com/RiftValleySoftware/RVS_RetroLEDDisplay [4] https://github.com/RiftValleySoftware/RVS_AutofillTextField [5] https://developer.apple.com/testflight/
In Ask HN: How to get developers and UI designers to work well together
I've learned to design UX that "gets out of the way." I have written some pretty cool UI elements that I've ended up, not using. Here's an example; It's a cool "popup prize-wheel spinner" for iOS, and I have tried using it a few times, but we always decide that it's too intrusive: https://github.com/RiftValleySoftware/RVS_Spinner I generally end up taking "The Road Most Traveled By": https://littlegreenviper.com/miscellany/the-road-most-travel...
In The most satisfying checkbox
I have to be willing to throw away a lot of code, and use implementation techniques that afford flexibility. I've been working on a fairly large-scale iOS app, for the last couple of years. It's about 40 screens (Most of my apps are 2-5 screens). It also has a fairly substantial backend (that I also wrote). One of the reasons that it has taken that long, is because I have thrown away -literally- months' worth of work. I spend a lot of time on each screen, leaving placeholders, or disabled selectors, for unimplemented ones. Each screen is done as "ship" Quality. People aren't testing a prototype; they are testing the actual ship code. I call this "constant beta." The app is always at ship Quality. Localization, accessibility, and "white glove" testing are being done, right from the start. This means that integration testing (the most impor
Read the rest
tant type of testing, in my opinion) starts almost immediately. Since this is iOS, I can use Apple's TestFlight beta-testing system, to distribute the builds to the non-technical stakeholders. I generally do a couple of releases a day. I have done over 600 releases, so far. Bugs get found quickly. It's important to find bugs as close to the point they were created, as possible. Since this is integration testing, whole subsystems get tested; not just individual modules. Also, the testers are much closer to the actual target audience, than you would get with professional QA teams. I tend to prefer the use of test harnesses, as opposed to unit tests, for this reason[0]. A lot of times (it has happened numerous times, in this project) we "get what we want," and realize that it isn't actually what we want, or it's unusable/impossible. A lot of times, you can't get to that point, unless you have built the app pretty completely. The absolute worst thing that can happen, is that you get exactly what you asked for. That's one of the problems with using outsourced shops and loosely-coupled distributed development. These techniques require heavy-duty specification, and those specifications often end up as rock-hard cement. No one wants to change them; even when it becomes clear that the result will be less-than-satisfactory. I've been through that, a number of times. But the crap-quality MVP isn't (in my opinion) an acceptable solution, either. Every now and then, one gets a home run, but, more frequently, we end up with foul balls. The brand gets damaged, the engineers quit in disgust, the money gets used up, and it becomes difficult to pivot. One thing that I often do, is spin off code that I'm not gonna use, into subprojects, for reuse in other projects. Here are a couple of examples: https://github.com/RiftValleySoftware/RVS_Spinner https://github.com/RiftValleySoftware/RVS_CalendarInput I'm not using these in the project (they were written for the project, but we decided they weren't appropriate), but they are available for other projects. [0] https://littlegreenviper.com/various/testing-harness-vs-unit...
In Write documentation first, then build

Showing the 15 most recent of 21 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.