Navigatie & viewstructuur

WattFlow draait nu om Vandaag, Schema, Training en Meer

De hoofdstructuur is nu bewust gebouwd rond de vraag die een gebruiker op dat moment heeft. Eerst: hoe ziet vandaag eruit? Daarna: welk schema rijd ik? Daarna: welke workout start ik echt? Pas daarna komt de ondersteunende laag met apparaten, koppelingen, historie en support.

Codebasis: 9 april 2026 Indoor-first voor wielrennen Voorbereid op multisport uitbreiding
Tab 1

Vandaag

De dagelijkse cockpit. Ook op rustdagen heeft dit scherm zin, omdat het niet alleen om starten gaat maar om context.

  • Zichtbaar hier: datumkop, Freshness-kaart, sessie van vandaag, AI-advies alleen als er echt iets wijzigt, snelle acties en een korte vooruitblik.
  • Waarom hier: dit is de plek waar de app in gewone taal zegt wat vandaag verstandig is, nog voordat iemand de bibliotheek of weekplanning induikt.
  • Belangrijke code: TodayTabView, FreshnessSummaryCard en planvoorbereiding via AppModel.preparedPlanWorkout(...).
  • Niet hier: volledige weekstructuur, technische instellingen of de actieve workoutplayer.
Tab 2

Schema

De planlaag. Hier draait het om samenhang: waarom je traint, hoe de weken zijn opgebouwd en welke sessie logisch volgt.

  • Zichtbaar hier: Freshness-kaart, volgende training, plancatalogus, persoonlijk AI-plan, planupdateflow en weekdetail.
  • Waarom hier: een gebruiker moet in Schema kunnen begrijpen waarom een week eruitziet zoals hij eruitziet, zonder te verdrinken in losse workouts.
  • Routing: een plansessie start vanuit Schema of Vandaag, maar de uitvoering schuift bewust door naar Training.
  • Belangrijke code: PlanView, PlanWizardView, PlanImportView en PlanUpdateFlowView.
Tab 3

Training

De concrete workoutlaag. Hier kies, filter, importeer en start je sessies, en op ditzelfde tabblad landt ook de actieve workoutplayer.

  • Zichtbaar hier: geplande workoutkaart bovenaan, categorieknoppen, duurfilter, zoekactie, favorieten, import en sessiedetail.
  • Nieuw gedrag: als een plan actief is, verschijnt de eerstvolgende sessie boven de bibliotheek. Zo hoeft de gebruiker niet heen en weer te springen.
  • Belangrijke code: TrainingenTabView, TrainingDetailView en WorkoutSessionView.
  • Niet hier: planredenering, freshness-uitleg of systeeminstellingen.
Tab 4

Meer

De ondersteunende laag. Hier zet WattFlow alles neer wat belangrijk is, maar niet elke rit je startscherm hoeft te zijn.

  • Zichtbaar hier: Apparaten, Workout-instellingen, Koppelingen, Freshness-instellingen, AI plan-instellingen, Historie & imports, Diagnostiek en Over de app.
  • Waarom hier: setup, support en terugkijken blijven belangrijk, maar drukken niet langer de dagelijkse trainingservaring weg.
  • Belangrijke code: MoreTabView, scopes in SettingsTabView en ActivitiesTabView.
  • Belangrijk detail: ook Freshness-uitleg en AI-planacties zitten hier, omdat dat instellingen- en contextwerk is, geen primaire workoutflow.

Waarom Deze Indeling Beter Werkt

De nieuwe indeling is niet cosmetisch. Ze dwingt een duidelijkere mentale volgorde af: context, plan, uitvoering, support. Daardoor hoeft een gebruiker niet meer eerst technisch te denken voordat die kan trainen.

Vandaag is geen dashboard om het dashboard

Dit scherm bestaat zodat Freshness, je sessie van vandaag en concrete acties bij elkaar komen. Dat voorkomt dat Schema te abstract en Training te vroeg wordt.

Schema blijft echt schema

Het scherm hoeft niet tegelijk bibliotheek, speler en settingshub te zijn. Daardoor kunnen plannen, AI-import en updateflows inhoudelijk helder blijven.

Training blijft concreet

Een workout kies je tussen andere workouts. Daarom staan zoeken, filters, favorieten en imports juist hier, niet in Schema.

Meer verlaagt ruis

Apparaten, koppelingen, historie en diagnostiek zijn essentieel, maar niet voor elke rit het eerste scherm dat iemand nodig heeft.

Persoonlijk AI-plan past nu logisch

Een AI-plan is geen los eiland meer. Het hangt in Schema, wordt zichtbaar in Vandaag en eindigt qua uitvoering gewoon in Training.

Freshness krijgt een echte plek

De score leeft niet meer verstopt als losse widgetlogica. Ze stuurt Vandaag, Schema en planvoorbereiding, en is onder Meer nader instelbaar.

Mapping Van Oud Naar Nieuw

De refactor bouwt geen parallel systeem. Bestaande schermen zijn vooral anders gegroepeerd en scherper gescheiden op verantwoordelijkheid.

Oude hoofdtab: Instellingen

Verplaatst naar Meer en opgesplitst in apparaten, workoutinstellingen, koppelingen, Freshness en diagnostiek.

Oude hoofdtab: Plan

Herpositioneerd als Schema. Focus nu expliciet op planning, weeksamenhang, AI-planbeheer en planupdates.

Oude hoofdtab: Historie

Verplaatst naar Meer, zodat terugkijken beschikbaar blijft zonder de hoofdflow te domineren.

Bestaande bibliotheek

TrainingenTabView blijft bestaan, maar vertegenwoordigt nu de user-facing tab Training.

Workoutplayer

Blijft binnen Training, ook wanneer een workout vanuit Schema of Vandaag gestart wordt.

Freshness

Prominent op Vandaag, zichtbaar in Schema, uitlegbaar via detailview en ondersteunend instelbaar onder Meer.

Kernprincipe. Schema gaat over wanneer en waarom. Training gaat over wat en hoe. De code-routing volgt dat onderscheid nu ook: start vanuit Schema, uitvoeren in Training, terugkeren naar Schema wanneer de sessie klaar is.

Waarom “Hoe Voel Je Je?” In Deze App Zit

Die vraag hoort functioneel bij de nieuwe navigatie. Health-data zegt veel, maar niet alles: spierpijn, mentale stress en “vandaag voelt het gewoon niet fris” zijn precies de dingen die een automatische sensor mist.

Waarom in de Freshness-detailview

De check-in hoort bij duiding, niet bij setup. Daarom open je hem vanuit Vandaag of Schema via de Freshness-kaart, niet verstopt tussen algemene instellingen.

Waarom niet als los dagboek

De app wil geen wellnessjournal worden. De check-in is kort, begrensd en mag de score alleen licht bijsturen.

Waarom ook feedback achteraf

“De score was te hoog/te laag” en “training voelde lichter/zwaarder” helpen om de persoonlijke calibratie voorzichtig bij te sturen zonder de engine black-box te maken.

Belangrijkste Codepunten

De navigatie is bewust centraal gehouden. Views blijven presentatielaag; state, routes en trainingsbeslissingen zitten in AppModel en de onderliggende services.

WattFlow/Domain/AppNavigationModels.swift Nieuwe hoofdtab-enum en aangescherpte workout source-namen.
WattFlow/Views/MainTabView.swift Centrale tabbar, schema-reset, more-reset, trainer-connection sheet en de scheiding tussen schema-routing en training-routing.
WattFlow/AppModel.swift Centrale workout-presentatie, planvoortgang, Freshness-refresh, planvoorbereiding en return-routing zonder viewlogica.
WattFlow/Views/TodayTabView.swift Dagelijkse containerlaag met Freshness-kaart, sessie van vandaag, AI-advies, quick actions en vooruitblik.
WattFlow/Views/PlanView.swift Schema-catalogus, next workout flow, AI-planwizard, import en progress review/update.
WattFlow/Views/TrainingenTabView.swift Bibliotheek, planned workout card, filters, favorieten en import voor workouts en activitybestanden.
WattFlow/Views/MoreTabView.swift Ondersteunende navigatiehub voor apparaten, workoutsettings, koppelingen, Freshness, AI-plannen, historie en support.
WattFlow/Views/FreshnessDetailView.swift Detailview met score-uitleg, trends, trainability, subjectieve check-in en feedbackacties.