Skip to content

twocentstudios/vinylogue

Repository files navigation

Vinylogue for Last.fm

Vinylogue is a Last.fm client for iOS that shows you and your friends' weekly music charts from previous years.

Home Charts Album
Home Charts Album

Features

  • iOS 18.0+ SwiftUI
  • Weekly Charts - Browse you and your friends' listening for this week in history by year
  • Album Details - View album listening history and info from last.fm
  • Friend Management - Import friends from Last.fm

Getting Started

Prerequisites

  • Xcode 16.0+ (iOS 18.0+)
  • XcodeGen (install with brew install xcodegen)
  • SwiftFormat (install with brew install swiftformat)
  • Last.fm developer API key

Setup Instructions

  1. Clone the repository

    git clone git://github.com/twocentstudios/vinylogue.git
    cd vinylogue
  2. Add your Last.fm API key

    # Copy the example secrets file
    cp Secrets.example.swift Vinylogue/Core/Infrastructure/Secrets.swift
    # Then edit the file to add your API key
  3. Generate the Xcode project

    xcodegen
  4. build

    open Vinylogue.xcodeproj

Architecture

Core Technologies

  • SwiftUI with @Observable state management
  • Point-Free Dependencies for dependency injection
  • Point-Free Sharing for global state management
  • Swift Concurrency (async/await) throughout
  • Nuke for remote images

Migration & Legacy Support

Version 2.0 automatically migrates data from the legacy Objective-C versions v1.0 - v1.3.1:

What gets migrated:

  • Last.fm username
  • Selected friends
  • Play count filter

License

License for source is Modified BSD.

All rights are reserved for image assets.

Contributing

Contributions and feedback are welcome. Open an Issue on the repo with your ideas first.

About

vinylogue was created by Christopher Trott at twocentstudios.

History

I created vinylogue in 2013 as an Objective-C, UIKit, and ReactiveCocoa app for iOS 6. It was released on the App Store and open sourced on GitHub. Over the years, I've updated the app to run well on newer versions of iOS without making any functional changes.

In 2025, with the help of Claude Code, I rewrote the app from the ground up in modern Swift and SwiftUI with a few quality of life improvements, but overall the same design and navigation. The app is simple, but just complex enough be a useful playground for trying out new app architectures and development tools. Plus, I still use it to check out my listening history.

About

A simple Last.fm client for iOS

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •