finds.dev

Anuj-Kumar-Sharma/Shuffler

An android App which Shuffles your favorite songs in the best possible way.

View on GitHub

★ 332Javaupdated Oct 2022

// the take

An Android client for shuffling a user's SoundCloud library using more than just RNG — it factors in playback count, average listen duration, artist, genre, release date, and likes to guess what you'll want to hear next. Aimed at Android devs curious about building a smarter personalized shuffle, not at end users looking for a daily driver.

The shuffle logic isn't just Fisher-Yates — there's a weighting layer (Matrix.java, RecursiveLeastSquare.java) that actually tries to model listening behavior, which is more interesting than the usual 'shuffle app' clone. Playback stack is reasonable for 2018-era Android: ExoPlayer for audio, Glide for artwork, a proper MediaButtonBroadcast/NotificationGenerator pair for lock-screen controls. Code is organized into clear activity/fragment/adapter/dao layers rather than one giant Activity.

Data access is DAO-wrapped around a hand-rolled SQLite helper (MySqliteHelper, SqliteDbAdapter), so at least the persistence logic isn't scattered across UI classes.

It's built entirely on the SoundCloud API, which SoundCloud has locked down hard since 2018 — new app registrations have been effectively closed for years, so this almost certainly can't be run against live data without an old grandfathered API key. No commits since October 2022, and the screenshots/UI are dated 2018, so there's no indication it was ever revisited after the API landscape shifted. Persistence is raw SQLite via custom adapters instead of Room, meaning more boilerplate and more places for migration/threading bugs to hide. Tests are the stock Android template files (ExampleUnitTest, ExampleInstrumentedTest) — there's no real test coverage of the actual shuffle/scoring logic, which is the one part of this project worth trusting.

We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →

search the same ground:

// at a glance

Stars
332
Forks
299
Language
Java
Last commit
30 Oct 2022

// nearby

If Shuffler isn't quite it.

All repos →