En podkastspiller for iOS, laget i Swift. Rolig, retro design uten sporing eller kontoer.
- Søk etter podkaster via Podcast Index
- NRK-podkaster via dedikert katalog
- Spillekø med manuell sortering, total spilletid og automatisk avspilling av neste episode
- Abonnementer med egen visning av nye episoder
- Fullskjermspiller med kapitler, transkripsjoner og søvntimer
- Avspillingshastighet per podkast, som appen husker
- Smart gjenopptakelse med 10 sekunders tilbakespoling etter lange pauser
- Eksport av lydfiler direkte fra spilleren
- Import og eksport av egne data: OPML for abonnementer, JSON for alt
- Eksplisitt-merking etter retningslinjene til Apple og Podcast Index
- Sortering og filtrering på språk, kategori, dato, popularitet og varighet
- Avansert søk med eksakte fraser (
"..."), ekskludering (-ord) og OR-operator - Bakgrunnsoppdatering av abonnementer
- All data lagres lokalt, uten sky og kontoer
Se brukerveiledningen for hvordan appen brukes.
| Område | Valg |
|---|---|
| Språk | Swift 6.3, strict concurrency |
| Rammeverk | SwiftUI, SwiftData, AVFoundation, MediaPlayer |
| Minstekrav | iOS 26, iPhone |
| Avhengigheter | Ingen tredjepartsbiblioteker |
| Tester | Swift Testing (enhetstester) og XCUITest (grensesnitt) |
| Byggverktøy | Xcode 26.6, xcodegen |
| Typografi | DM Mono (inkludert) |
| Design | Lys modus, beige/blågrønn retro |
Prosjektet bruker xcodegen for å generere .xcodeproj fra project.yml.
# Installer xcodegen (første gang)
brew install xcodegen
# Opprett Secrets.swift (første gang) og legg inn dine egne nøkler
# NB: må gjøres før xcodegen, ellers kommer ikke filen med i prosjektet
cp Lyttejeger/Config/Secrets.example.swift Lyttejeger/Config/Secrets.swift
# Generer Xcode-prosjekt
xcodegen generate
# Bygg
xcodebuild -project Lyttejeger.xcodeproj -scheme Lyttejeger \
-sdk iphonesimulator \
-destination 'platform=iOS Simulator,name=iPhone 17 Pro,OS=26.5' build
# Kjør tester
xcodebuild -project Lyttejeger.xcodeproj -scheme Lyttejeger \
-sdk iphonesimulator \
-destination 'platform=iOS Simulator,name=iPhone 17 Pro,OS=26.5' testAPI-nøkler ligger ikke i repoet. Registrer deg på podcastindex.org/developer og legg inn dine egne nøkler i Lyttejeger/Config/Secrets.swift.
Appen bruker ikke sertifikatpinning. Begrunnelsen og resten av sikkerhetsmodellen står i SECURITY.md.
Lyttejeger/
Config/ Konstanter, hemmeligheter (gitignored)
Data/ Kategorier, språk
Models/ Podcast, Episode, SwiftData-modeller
Services/ API-klienter (actor), lydtjeneste, bakgrunnsoppdatering
Theme/ Farger, typografi, spacing
Utilities/ Hastighetsbegrenser, søkeparser, tidsformatering, TTL-cache
ViewModels/ Søk, kø, abonnementer, spiller, fremdrift
Views/
Common/ Gjenbrukbare komponenter (bildecache, meny, episodekort, menyrader)
Library/ Følgeliste, kø
Player/ Spiller, kontroller, kapitler, transkripsjoner
Podcast/ Podkastdetaljer
Search/ Hjem, søk, podkastkort, filtre
Preview Content/ Forhåndsvisningsdata for SwiftUI Previews
LyttejegerTests/ Enhetstester (Swift Testing)
LyttejegerUITests/ Grensesnittstester (XCUITest)
Oppdaget en sårbarhet? Se SECURITY.md for rapportering.
MIT. Se LICENSE.