Phase 0: Projektgerüst, Design-Tokens und Navigation
Legt das Fundament für den Plex-Client an: - XcodeGen-Projekt nach dem Muster von Onyx (com.scarriffleservices, strict concurrency, Projektdatei nicht eingecheckt) - FlixyKit mit vier Modulen: PlexKit, FlixyDesign, FlixyPlayback, FlixyDownloads. macOS steht als Plattform mit drin, damit die Logik-Tests ohne Simulator laufen. - FlixyDesign: dunkle Farb-Tokens, Schriftskala, Poster- und Querformat-Kacheln, Aufmacher-Bild. Die Akzentfarbe fließt über die Umgebung und wird per WCAG-Rechnung lesbar gehalten. - PlexKit: Kopfzeilen-Identität, Transport-Protokoll, Fehlerarten und die Medienmodelle samt nachsichtigem Decoder. - FlixyPlayback: VideoPlayerEngine-Protokoll und PlaybackDecider — die eine Funktion, an der Phase 2 das Transcoding andockt. - Ausfahrbare Seitenleiste auf dem iPhone, Split-View auf dem iPad. - 45 Tests, alle grün. VLCKit 4.0.0-a24 ist vorab geprüft: baut über SPM unter Swift 6 mit strict concurrency. Die iOS-Slice ist mit 239 MB allerdings gewichtig, deshalb bekommt sie in Phase 1 ein eigenes Target. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+83
@@ -0,0 +1,83 @@
|
||||
name: Flixy
|
||||
|
||||
options:
|
||||
bundleIdPrefix: com.scarriffleservices
|
||||
deploymentTarget:
|
||||
iOS: "26.0"
|
||||
createIntermediateGroups: true
|
||||
groupSortPosition: top
|
||||
developmentLanguage: en
|
||||
|
||||
settings:
|
||||
base:
|
||||
DEVELOPMENT_TEAM: PP34X97WS3
|
||||
SWIFT_VERSION: "6.0"
|
||||
MARKETING_VERSION: "0.1.0"
|
||||
CURRENT_PROJECT_VERSION: "1"
|
||||
SWIFT_STRICT_CONCURRENCY: complete
|
||||
|
||||
packages:
|
||||
FlixyKit:
|
||||
path: Packages/FlixyKit
|
||||
|
||||
targets:
|
||||
Flixy:
|
||||
type: application
|
||||
platform: iOS
|
||||
sources:
|
||||
- path: Flixy
|
||||
dependencies:
|
||||
- package: FlixyKit
|
||||
product: PlexKit
|
||||
- package: FlixyKit
|
||||
product: FlixyDesign
|
||||
- package: FlixyKit
|
||||
product: FlixyPlayback
|
||||
- package: FlixyKit
|
||||
product: FlixyDownloads
|
||||
settings:
|
||||
base:
|
||||
PRODUCT_BUNDLE_IDENTIFIER: com.scarriffleservices.flixy
|
||||
PRODUCT_NAME: Flixy
|
||||
# iPhone und iPad aus demselben Target.
|
||||
TARGETED_DEVICE_FAMILY: "1,2"
|
||||
CODE_SIGN_STYLE: Automatic
|
||||
info:
|
||||
path: Flixy/Info.plist
|
||||
properties:
|
||||
CFBundleDisplayName: Flixy
|
||||
UILaunchScreen:
|
||||
UIColorName: LaunchBackground
|
||||
|
||||
# Der harte Schalter für „nur dunkel". Eine Ansicht mit
|
||||
# .preferredColorScheme(.dark) allein reicht nicht: Systemdialoge,
|
||||
# Statusleiste und Tastatur richten sich danach nicht.
|
||||
UIUserInterfaceStyle: Dark
|
||||
|
||||
UISupportedInterfaceOrientations:
|
||||
- UIInterfaceOrientationPortrait
|
||||
- UIInterfaceOrientationLandscapeLeft
|
||||
- UIInterfaceOrientationLandscapeRight
|
||||
UISupportedInterfaceOrientations~ipad:
|
||||
- UIInterfaceOrientationPortrait
|
||||
- UIInterfaceOrientationPortraitUpsideDown
|
||||
- UIInterfaceOrientationLandscapeLeft
|
||||
- UIInterfaceOrientationLandscapeRight
|
||||
|
||||
# Ohne diesen Modus hält iOS die Wiedergabe an, sobald die App in den
|
||||
# Hintergrund geht — und Bild-in-Bild gäbe es gar nicht.
|
||||
UIBackgroundModes:
|
||||
- audio
|
||||
|
||||
NSAppTransportSecurity:
|
||||
# Plex-Server im Heimnetz laufen überwiegend auf blankem HTTP an
|
||||
# Port 32400. Diese Ausnahme erlaubt genau das, ohne die
|
||||
# Transportsicherheit für das offene Netz abzuschalten.
|
||||
NSAllowsLocalNetworking: true
|
||||
|
||||
# Seit iOS 14 verlangt jeder Zugriff auf Adressen im eigenen Netz eine
|
||||
# Freigabe. Fehlt der Text, verweigert das System sie kommentarlos und
|
||||
# die Serversuche findet dauerhaft nichts.
|
||||
NSLocalNetworkUsageDescription: >-
|
||||
Flixy benötigt Zugriff auf das lokale Netzwerk, um deinen
|
||||
Plex-Server zu finden und Medien direkt von ihm zu laden.
|
||||
Reference in New Issue
Block a user