blastoise/ios/BlastoisePing/README.md

1.2 KiB

Blastoise iOS Sketch

Native SwiftUI sketch for the Blastoise/MusicRoom server.

What It Does

  • Defaults to http://mhsgroove.peterino.com:3001.
  • Signs in or signs up with the server.
  • Loads rooms, queue state, people, library, and playlists.
  • Connects to a room WebSocket and streams /api/tracks/:id through AVPlayer.
  • Applies server timestamp sync and drift correction.
  • Supports local library playback, queue/play-next actions, queue jumps/removes, and playback mode cycling.
  • Uses one compact broadcast-console theme.

Code Layout

  • BlastoisePingApp.swift - app entrypoint.
  • ContentView.swift - signed-in/signed-out shell and tab routing.
  • Models/AppTypes.swift - API response models and shared enums.
  • State/AppModel.swift - app state, server requests, WebSocket sync, uploads, and playback coordination.
  • UI/Theme.swift - pixel-art palette, typography, reusable view chrome, and time formatting.
  • Views/ - focused SwiftUI screens and reusable row/panel components.

Open

open ios/BlastoisePing/BlastoisePing.xcodeproj

The app currently allows arbitrary HTTP loads in Info.plist so it can reach the existing plain-HTTP test server and local development servers. Narrow that before any public distribution.