Skip to content

gannonmg/DSSwiftUI

Repository files navigation

DSSwiftUI (Vinyl Space)

DSSwiftUI is a purely SwiftUI version of my Discogs Shuffler app. This app allows users to store their Discogs vinyl collections on their device, pick a random album from their collection, filter potential albums to "shuffle", and Scrobble their listens by connecting a Last.fm account.

Setup

Clone the repository onto your machine

You'll need to create both a Discogs and Last.fm application of your own to test the app:

  1. Discogs
  2. last.fm

Then, you'll need to add a file to hold your credentials within the application

  1. Create a file Secret.swift within the API directory
  2. Add the following structures to Secret.swift:
struct DCAuthInfo {
    static let client   = "**REDACTED**"
    static let key      = "**REDACTED**"
    static let secret   = "**REDACTED**"
    static let callback = "**REDACTED**"
}

struct LFAuthInfo {
    static let apiKey    = "**REDACTED**"
    static let apiSecret = "**REDACTED**"
}

ToDo

  • Setup Discogs login via OAuth
  • Retrieve and display user collection in list
  • Implement SwiftUI solution for pre-iOS 15 async images
  • Retrieve and display release track listing from additional detail API
  • Rough initial CoreData implementation
  • Implement Searching and Filtering of releases
  • Fix bug where CoreData creates multiple Collections instead of updating the existing one
  • Store Release tracks in CoreData
  • Save user credentials in Keychain instead of user defaults
  • Bug: Collection list scrolls to top after closing detail view
  • Add welcome screen
  • Smooth out user flow from login to release loading.
  • Add Scrobble button to release detail view
  • Use Matched Geometry Effect to present ReleaseDetailView in style
  • Explore @FetchRequest property wrapper for CoreData

About

SwiftUI variation of my Discogs Shuffle App

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages