Layover is a multi-platform SwiftUI app that enables synchronized group experiences across:
Built with SharePlay API and AVPlaybackCoordinator for seamless synchronization.
When you launch the app:
cd /Users/benh/Documents/Layover
open Package.swift
Press βU or run:
swift test
Press βR or run:
swift build
βββββββββββββββββββββββββββββββββββββββββββββββ
β Views β
β (SwiftUI - ContentView, RoomViews, etc.) β
ββββββββββββββββββββ¬βββββββββββββββββββββββββββ
β observes
ββββββββββββββββββββΌβββββββββββββββββββββββββββ
β ViewModels β
β (@Observable - RoomListVM, GameVM, etc.) β
ββββββββββββββββββββ¬βββββββββββββββββββββββββββ
β uses
ββββββββββββββββββββΌβββββββββββββββββββββββββββ
β Services β
β (SharePlay, Room, Media, Game Services) β
ββββββββββββββββββββ¬βββββββββββββββββββββββββββ
β operates on
ββββββββββββββββββββΌβββββββββββββββββββββββββββ
β Models β
β (User, Room, MediaContent, Game) β
βββββββββββββββββββββββββββββββββββββββββββββββ
SharePlay requires specific setup:
enum RoomActivityType: String, Codable, Sendable {
case myNewActivity = "my_activity"
}
protocol MyActivityServiceProtocol: LayoverService {
// Define methods
}
@Observable
final class MyActivityViewModel: LayoverViewModel {
// Implement logic
}
struct MyActivityView: View {
// Build UI
}
Sources/Models/Sources/Services/Tests/Layover/
βββ Package.swift # Swift Package definition
βββ README.md # Project overview
βββ DEVELOPMENT.md # Detailed developer guide
βββ QUICKSTART.md # This file
βββ setup.sh # Setup script
β
βββ Sources/
β βββ LayoverApp.swift # App entry point
β β
β βββ Models/ # Data models
β β βββ User.swift
β β βββ Room.swift
β β βββ MediaContent.swift
β β βββ ChessGame.swift
β β βββ LayoverActivity.swift
β β
β βββ Services/ # Business logic
β β βββ SharePlayService.swift
β β βββ RoomService.swift
β β βββ AppleTVService.swift
β β βββ AppleMusicService.swift
β β βββ ChessService.swift
β β
β βββ ViewModels/ # MVVM ViewModels
β β βββ RoomListViewModel.swift
β β βββ AppleTVViewModel.swift
β β βββ AppleMusicViewModel.swift
β β βββ ChessViewModel.swift
β β
β βββ Views/ # SwiftUI Views
β βββ ContentView.swift
β βββ RoomRowView.swift
β βββ CreateRoomView.swift
β βββ AppleTVView.swift
β βββ AppleMusicView.swift
β βββ ChessView.swift
β
βββ Tests/ # Unit tests
β βββ Models/
β βββ Services/
β βββ ViewModels/
β
βββ Resources/ # Configuration
βββ Info.plist
βββ Layover.entitlements
swift build
swift test
swift package clean
swift package update
swift package generate-xcodeproj
swift package cleanswift test)swift build)For issues or questions:
Built with β€οΈ using SwiftUI, SharePlay, and MVVM