- Bidirectional progress sync: server's `lastUpdate` now parsed correctly; pull timer (60s) + scenePhase hook reconcile against local state. Server-newer while paused/playing stashes a `pendingServerProgress` and surfaces a prompt on next Play; server-older triggers an immediate push. - History: lockscreen/Control-Center skip & scrub now route through AppState via `onRemoteSkip`/`onRemoteSeek` callbacks (previously bypassed history). `AppState.skip(by:)` itself now records the pre-skip position. - Chapter detection moved to the AVPlayer periodic time observer — fires reliably while the app is backgrounded or the device is locked, where the 5s runloop Timer can be throttled. - Always fetch item detail when online (even for downloaded items) so `item.chapters` is populated and history entries get chapter titles. - DownloadManager: per-track byte-fraction progress, so single-track 1+GB audiobooks' ring grows smoothly instead of staying at 0% until done. - PlayerBar: extracted ScrubberView into its own struct so per-second time updates no longer re-render the parent (fixes iOS history-popup flicker). - App icon: re-embedded sRGB profile in marketing icon; bumped version 2.0 to 2.1. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
ABS-Client
Ein nativer iOS- und macOS-Client für deine selbst gehostete Audiobookshelf-Instanz.
📖 Über die App
ABS-Client ist eine native App für iPhone, iPad und Mac, die eine direkte Verbindung zu deiner eigenen Audiobookshelf-Serverinstanz herstellt. Du behältst die volle Kontrolle über deine Hörbuch-Bibliothek – ganz ohne Drittanbieter oder Cloud-Abhängigkeit.
⚠️ Hinweis: Die App befindet sich noch in aktiver Entwicklung und ist aktuell noch nicht im App Store verfügbar. Der Release ist in Kürze geplant.
✨ Features
Aktuell verfügbar
- 🔗 Serververbindung – Verbinde die App mit deiner eigenen Audiobookshelf-Instanz
- 📚 Bibliotheks-Browser – Durchsuche und verwalte deine Hörbücher
- ⬇️ Download – Lade Hörbücher für die Offline-Nutzung herunter
- 🎧 Wiedergabe – Höre deine Hörbücher direkt in der App
Geplant
- ⏱️ Einschlaftimer – Automatisches Stoppen der Wiedergabe nach einer festgelegten Zeit
- 🌍 Mehrsprachigkeit – Die App ist aktuell nur auf Deutsch verfügbar; weitere Sprachen sind in Planung
📋 Voraussetzungen
- iOS / iPadOS: 26.0 oder neuer
- macOS: 26.0 (Tahoe) oder neuer
- Eine laufende Audiobookshelf-Serverinstanz
🚀 Installation
Die App ist noch nicht im App Store verfügbar. Wer die App bereits jetzt nutzen oder testen möchte, kann das Projekt selbst aus dem Quellcode bauen:
git clone https://git.scarriffle.com/Scarriffle/ABS-Client.git
cd ABS-Client
Öffne das Projekt in Xcode, wähle dein Zielgerät und starte den Build.
🔧 Einrichtung
- App starten
- URL deiner Audiobookshelf-Instanz eingeben (z. B.
https://abs.deinserver.de) - Mit deinen Zugangsdaten anmelden
- Bibliothek auswählen und loslegen
🤝 Beitragen
Contributions sind willkommen! Wenn du einen Fehler gefunden hast oder eine Idee für ein neues Feature hast, eröffne gerne ein Issue oder einen Pull Request im Repository:
👉 git.scarriffle.com/Scarriffle/ABS-Client
Bitte achte auf einen sauberen, gut dokumentierten Code-Stil und beschreibe deine Änderungen im PR möglichst nachvollziehbar.
📄 Lizenz
Dieses Projekt ist lizenziert unter der GNU General Public License v3.0. Das bedeutet: Du kannst den Code frei nutzen, verändern und weitergeben – aber abgeleitete Projekte müssen ebenfalls unter der GPL v3 veröffentlicht werden.
Den vollständigen Lizenztext findest du in der LICENSE-Datei.
📬 Kontakt
Bei Fragen, Feedback oder Problemen:
✉️ scarriffleservices@gmail.com
ABS-Client ist ein unabhängiges Community-Projekt und steht in keiner Verbindung zum offiziellen Audiobookshelf-Projekt.