WattFlow trainingsgids

Trainingen, plannen en de logica erachter

Dit document trekt de hele trainingslaag uit de app open: hoe de bibliotheek is opgebouwd, hoe categorieën in de UI werken, welke zones en IF/TSS-logica worden gebruikt, welke plannen erin zitten en waarom die opbouw precies zo gekozen is.

Gebaseerd op
TrainingenTabView.swift WorkoutLibraryModels.swift WorkoutCategory.swift TrainingPlanCatalog.swift JSON-libraries
Datum: 27 maart 2026 Scope: ingebouwde trainingsbibliotheek, plansysteem en importcategorisatie

1. Kort samengevat

WattFlow heeft op dit moment twee ingebouwde bibliotheken en drie ingebouwde trainingsplannen. De bibliotheek wordt in de app niet alleen op type weergegeven, maar ook op gebruikerscategorieën, zodat de Trainingen-tab rustig blijft: vooral Uithoudingsvermogen, Omslagpunt en Testen voor de ingebouwde set, met VO2max en Kracht als extra bakjes voor imports.

Belangrijk ontwerpprincipe. De trainingslaag is bewust indoor-first. Dat zie je terug in de duurvensters, de statische blokopbouw, het beperkte aantal lange sessies en de manier waarop veel trainingen herbruikbare IDs hebben zodat plannen er later stabiel naar kunnen verwijzen.

2. Hoe de Trainingen-tab werkt

De Trainingen-tab is tegelijk bibliotheek, filterlaag en importpunt. In de app komen ingebouwde sessies, favorieten, imports en actieve plannen dus samen rond dezelfde workoutgegevens uit.

Wat de gebruiker ziet

  • Categorieknoppen in app-volgorde: uithoudingsvermogen, omslagpunt, VO2max, kracht, testen.
  • Duurfilter in stappen van 15 minuten.
  • Zoeken op titel.
  • Favorieten en geïmporteerde trainingen in een aparte Favorieten-weergave.
  • Import via .zwo, workout-.fit en activity-.fit/.tcx.

Wat er technisch gebeurt

  • De Trainingen-tab leest uit WorkoutStore, dat built-in en imported workouts samen indexeert.
  • Filters en zoekwaarden leven in AppModel en worden direct op de geïndexeerde lijst toegepast.
  • Imports worden gekopieerd naar Documents/Trainingen en daarna opnieuw geïndexeerd.
  • Een net geïmporteerde workout kan automatisch openen of in de segmentweergave “Geïmporteerd” landen.
  • Als er een actief plan loopt, stuurt de app je sneller naar planvoortgang; anders opent Trainingen als standaardtab.
Onderdeel Gebruikerslaag Technische logica
Zoeken Op titel filteren zonder extra scherm Filtert direct de reeds geïndexeerde WorkoutItem-lijst
Categorieën Snel naar een type sessie Displayvolgorde komt uit WorkoutCategory.displayOrder
Duurfilter Van kort en haalbaar naar langer en zwaarder Werkt in stappen van 15 minuten met een bewaakte min/max-range
Favorieten Vaste sessies snel terugvinden Koppelt aan bestandsnaam, zodat herindexeren geen favorieten wist
Import Bestanden uit Bestanden, Mail of iCloud toevoegen Workoutbestanden blijven in de trainingsbibliotheek; activitybestanden gaan door naar Historie

3. Categorieën in de app

De app gebruikt een gebruiksvriendelijke categorielaag boven op de ruwe workouttypes. Daardoor hoeven gebruikers niet te denken in JSON-typen als sweet_spot of maintenance, maar ziet de Trainingen-tab er stabiel en herkenbaar uit.

3.1 Ingebouwde bibliotheek

Belangrijke nuance. Sweet spot zit in de huidige app onder Uithoudingsvermogen en niet onder Omslagpunt. Dat is dus een bewuste UI-keuze: de bibliotheek groepeert sessies op gebruikersgevoel en trainingsfamilie, niet alleen op theoretische zoneleer.

3.2 Imports en analyzer

Voor imports loopt de app via een analyzer en classifier. Daardoor kan een buitenbestand wél in VO2max of Kracht terechtkomen, ook al levert de ingebouwde WattFlow-bibliotheek daar nu nog geen eigen sessies voor.

Analyzerregels

    Importgedrag

    • Workoutbestanden: .zwo en workout-.fit worden trainingsitems.
    • Activiteiten: activity-.fit en .tcx worden geen training, maar historie.
    • Waarom dat nuttig is: één importknop, maar toch een scheiding tussen “iets om te rijden” en “iets om terug te kijken”.
    • App-flow:

    4. Zones, kleuren en planmetrics

    De grafische blokken in deze gids volgen dezelfde denklaag als in de app: FTP-percentages worden naar zones vertaald, zones krijgen een kleur, en diezelfde drempels sturen zowel mini-grafieken als trainingsclassificatie.

    4.1 Zonegrenzen

    4.2 IF en TSS

    Geplande metrics in de bibliotheek

    Elke ingebouwde training draagt een geschatte IF en TSS mee. Die waarden zijn bedoeld als plan- en bibliotheeknavigatie, dus als “hoe zwaar is dit ongeveer?” nog vóór je gaat rijden.

    • IF: in de analyzer is dat de genormaliseerde vermogensfactor uit de blokken.
    • TSS: uren × IF² × 100.
    • Stressbars: in de analyzer worden die uit TSS afgeleid in 1 tot 5 balken.

    Wat dit in de praktijk betekent

    • De bibliotheek kan lichte, middelzware en zware sessies sorteren zonder eerst een echte rit nodig te hebben.
    • Plannen kunnen weken opbouwen in duur en belasting, niet alleen in titels.
    • De werkelijke rit berekent later zijn eigen metrics opnieuw uit de live samples en niet alleen uit de planwaarde.
    • Voor testworkouts kan daarnaast nog een kandidaat-FTP uit het testblok komen.

    5. Trainingsplannen

    De plannen in WattFlow zijn geen losse labels boven op de bibliotheek, maar echte vaste schema’s die naar specifieke workout-IDs verwijzen. Daardoor blijft voortgang stabiel, ook als de trainingsbibliotheek later groeit.

    6. Bibliotheken en ontwerpkeuzes

    Onder de plannen hangen nu twee bibliotheken. Eén richt zich op FTP-opbouw en één op duur/fit. Ze hebben bewust een ander karakter, maar delen wel dezelfde indoor logica en charttaal.

    6.1 Structured FTP

    6.2 Endurance & Fit

    Waarom twee libraries? De FTP-library is strakker en explicieter periodiseerd. De Endurance & Fit-library moet juist rustiger voelen, minder mentale druk geven en bruikbaar blijven voor onderhoud of algemene duurverbetering zonder dat elke sessie meteen “FTP werk” wordt.

    7. Alle trainingen

    Hieronder staan alle ingebouwde trainingen gegroepeerd volgens de categorieën die de app zelf gebruikt. Elke kaart toont dezelfde basisinformatie die je in de bibliotheek nodig hebt, plus extra technische details en trainingsreden.

    7.1 Uithoudingsvermogen

    7.2 Omslagpunt

    7.3 Testen

    7.4 Importcategorieën

    VO2max

    De huidige WattFlow-library levert nog geen ingebouwde VO2max-sessies, maar imports kunnen daar wel landen als ze duidelijk veel korte harde blokken of race-achtige hard/rest-patronen bevatten.

    Kracht

    Ook Kracht is nu vooral een importcategorie. De classifier gebruikt onder andere cadence-indicaties om strength-achtige bestanden los te trekken van gewone duur- of drempeltrainingen.

    8. Hoe en waarom achter de opbouw

    Als je wilt begrijpen waarom deze bibliotheek voelt zoals hij voelt, dan zit de kern hier: WattFlow kiest niet voor zoveel mogelijk exotische sessies, maar voor een indoor bruikbare bibliotheek die plannen, progressie en herhaalbaarheid ondersteunt.

    1. Indoor-first boven “alles kunnen”

    De meeste sessies vallen in een bruikbaar venster van ongeveer 30 tot 75 minuten. Dat sluit beter aan op trainergebruik binnenshuis dan een eindeloze buitenlogica.

    2. Statische blokken zijn expres saai

    “Simpel en statisch” is hier geen beperking maar een ontwerpkeuze. Binnen voelt een heldere structuur vaak beter dan pseudo-complexiteit met veel microvariatie.

    3. Sweet spot zit bij duurfamilie

    Sweet spot ligt trainingskundig dicht tegen FTP aan, maar wordt in de app gegroepeerd bij duur/uithoudingsvermogen omdat het vaak als opbouw- en basiswerk wordt gebruikt.

    4. Herstelweken zijn niet optioneel op papier

    De plannen bouwen niet alleen omhoog. Een herstelweek zit erin om vermoeidheid te laten zakken, openers op het juiste moment terug te brengen en plantrouw haalbaar te houden.

    5. Fit blijven is bewust klein

    Het onderhoudsplan is geen afgezwakt FTP-blok maar een apart productdoel: ritme behouden, drempel laag houden en regelmaat maximaliseren.

    6. Reusable IDs zijn een architectuurkeuze

    Plannen verwijzen naar vaste workout-IDs. Dat maakt voortgang stabieler, laat plannen later uitbreiden en voorkomt dat een titelwijziging meteen een planstructuur breekt.

    9. Relevante bronbestanden

    Bestand Rol in de trainingslaag
    WattFlow/Views/TrainingenTabView.swift Trainingen-tab, filters, importentrypoint en navigatie naar detail of favorieten
    WattFlow/Views/FavorietenView.swift Favorieten- en geïmporteerd-segmenten
    WattFlow/Views/PlanView.swift Plancatalogus, voortgang en weekschema’s
    WattFlow/Domain/WorkoutLibraryModels.swift Decoding van bibliotheken, workouttypes, intervallen en plangebruik
    WattFlow/Domain/WorkoutCategory.swift Gebruikerscategorieën en displayvolgorde in de app
    WattFlow/Services/TrainingPlanCatalog.swift Ingebouwde planstructuur, inclusief hardcoded FTP-plan
    WattFlow/Services/WorkoutStore.swift Indexeren, imports en samenvoegen van built-in en imported workouts
    WattFlow/Services/WorkoutAnalyzer.swift IF/TSS-achtige analyse voor imports en classificatieinput
    WattFlow/Services/WorkoutCategoryClassifier.swift Regels die imports richting uithoudingsvermogen, omslagpunt, VO2max, kracht of test sturen
    WattFlow/Resources/WorkoutLibrary/*.json De huidige ingebouwde trainingsbibliotheken
    WattFlow/Resources/Plans/*.json Bundled plan-definities voor duur en fit

    Deze trainingsgids is afgestemd op de huidige appstructuur en bibliotheekinhoud van 27 maart 2026.