Add alpha1 release summary
This commit is contained in:
parent
f19c10c528
commit
75d5ae890c
|
@ -0,0 +1,107 @@
|
|||
# jellypig tvOS Alpha 1 Release
|
||||
|
||||
**Release Date**: October 17, 2025
|
||||
**Base Version**: Swiftfin 1.3
|
||||
**Branch**: jellypig-1.3
|
||||
**License**: MPL-2.0
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
jellypig is a personal fork of [Jellyfin/Swiftfin](https://github.com/jellyfin/swiftfin) optimized for tvOS with specialized support for Jellyfin.Xtream plugin content. This alpha1 release represents a stable, working build that plays everything upstream Swiftfin on tvOS plays **and more**, with an elegant native UI maintained by the Swiftfin development team.
|
||||
|
||||
## Key Features
|
||||
|
||||
### ✅ What Works
|
||||
- **Full Jellyfin Playback**: All standard Jellyfin content (movies, series, live TV) plays correctly
|
||||
- **Xtream Content Support**: Properly displays and plays Xtream VOD and Series content from Jellyfin.Xtream plugin
|
||||
- **Channel Navigation**: Fixed channel browsing with proper grid view for categories and content
|
||||
- **Full-Screen Navigation**: All views display full-screen (no modal popups)
|
||||
- **Video Playback Controls**: ESC key properly shows controls and allows exit with confirmation
|
||||
- **Native UI**: Maintains the elegant, native tvOS interface from upstream Swiftfin
|
||||
|
||||
### 🎯 Major Improvements Over Upstream
|
||||
1. **Xtream Content Listing**: Fixed channel folder navigation to use proper Jellyfin Channel API endpoints
|
||||
- Xtream VOD and Xtream Series channels now display correct, distinct content
|
||||
- Channel folders display in grid view matching library behavior
|
||||
|
||||
2. **tvOS Navigation Architecture**: Restructured routing to fix modal popup issues
|
||||
- Channels, items, and content display full-screen using `.push` navigation
|
||||
- MediaCoordinator uses `.fullScreen` to prevent navigation stack corruption
|
||||
- Video player properly stops on dismiss (no background playback)
|
||||
|
||||
3. **Leaner Codebase**: Removed entire iOS build and code (28,370+ deletions)
|
||||
- tvOS-only focus reduces complexity
|
||||
- Faster build times and easier maintenance
|
||||
- Single target: `jellypig tvOS`
|
||||
|
||||
## Technical Changes
|
||||
|
||||
### Core Fixes
|
||||
- **ItemLibraryViewModel.swift**: Implements proper channel API routing (`/Channels/{channelID}/Items`)
|
||||
- **PagingLibraryView.swift**: Added `.channelFolderItem` support for grid view display
|
||||
- **MainCoordinator.swift**: Restructured MediaCoordinator routing with `.fullScreen` navigation
|
||||
- **ItemView.swift**: Removed `.channelFolderItem` handling (delegates to library view)
|
||||
|
||||
### Project Configuration
|
||||
- **Bundle ID**: `org.ashik.jellypig`
|
||||
- **Project Name**: jellypig (renamed from Swiftfin)
|
||||
- **Targets**: tvOS only (iOS removed)
|
||||
- **CI/CD**: Updated GitHub Actions workflows for jellypig tvOS builds
|
||||
- **Dependencies**: Properly configured VLCKit (TVVLCKit.xcframework v3.5.0)
|
||||
|
||||
## Known Limitations
|
||||
|
||||
### Acceptable Trade-offs
|
||||
- **Error Dismissal**: Errors in deeply nested views (e.g., failed episode playback) dismiss all the way to Media tab instead of one level back
|
||||
- This is a limitation of `.fullScreen` presentation architecture
|
||||
- Prevents worse issue of returning to Home screen
|
||||
|
||||
- **Video Player Back Button**: Slightly "buggy" behavior but functional
|
||||
- ESC key works properly (shows controls → confirm → exit)
|
||||
- Playback stops correctly on dismiss
|
||||
|
||||
## Development Environment
|
||||
|
||||
### Requirements
|
||||
- **Platform**: macOS with Xcode 16+
|
||||
- **Build Method**: Must use Xcode GUI (Command+B)
|
||||
- Command-line `xcodebuild` fails due to Swift macro issues in swift-case-paths dependency
|
||||
- All other operations (git, editing) work via command line
|
||||
- **Simulator**: Any tvOS 16.0+ simulator or device
|
||||
|
||||
### Repository
|
||||
- **Fork**: [ashikslab/jellypig](https://github.com/ashikslab/jellypig)
|
||||
- **Upstream**: [jellyfin/swiftfin](https://github.com/jellyfin/swiftfin)
|
||||
- **Plugin**: [ashikslab/Jellyfin.Xtream](https://github.com/ashikslab/Jellyfin.Xtream)
|
||||
|
||||
## Companion Plugin
|
||||
|
||||
jellypig works best with the reverted **Jellyfin.Xtream** plugin (v0.7.2.0001) which uses pure upstream logic:
|
||||
- Repository: https://ashikslab.github.io/Jellyfin.Xtream/repository.json
|
||||
- Download: https://github.com/ashikslab/Jellyfin.Xtream/releases/download/v0.7.2.0001/jellyfin-xtream-for-jellypig_0.7.2.1.zip
|
||||
|
||||
The plugin provides standard Jellyfin Channel API endpoints for Xtream content, and jellypig handles the display and navigation correctly.
|
||||
|
||||
## What's Next
|
||||
|
||||
### Short Term (Until Upstream Stabilizes)
|
||||
- Bug fixes as discovered
|
||||
- UI adjustments and polish
|
||||
- Stay on Swiftfin 1.3 base
|
||||
|
||||
### Long Term
|
||||
- **Major Intake**: When upstream Swiftfin releases their next stable major version, jellypig will merge those changes
|
||||
- **iOS Support**: May consider re-adding iOS support with Xtream fixes as a separate project
|
||||
- **Upstream Contributions**: Channel navigation fixes could potentially be contributed back to Swiftfin
|
||||
|
||||
## Credits
|
||||
|
||||
- **Original Project**: [Jellyfin Swiftfin](https://github.com/jellyfin/swiftfin) - MPL-2.0 License
|
||||
- **Plugin**: [Kevinjil/Jellyfin.Xtream](https://github.com/Kevinjil/Jellyfin.Xtream) - GPL-3.0 License
|
||||
- **jellypig Fork**: Personal modifications for Xtream content support and tvOS optimization
|
||||
|
||||
---
|
||||
|
||||
**This is an alpha release**: Suitable for personal use and testing. Report issues at https://github.com/ashikslab/jellypig/issues
|
Loading…
Reference in New Issue