Hoe we OneLimit hebben gebouwd: het bijproject van een ontwikkelaar en vader

OneLimit Team

Elk bijproject begint met een probleem waar je maar niet over op kunt houden. Voor OneLimit was dat probleem dit: mijn kinderen hadden dagelijkse schermtijdlimieten. Ze hielden zich eraan. En toch zaten ze veel meer achter een scherm dan ik wilde.

Het duurde gênant lang voordat ik doorhad waarom. Ze hadden 90 minuten op de Switch. Een uur op de PS5. Anderhalf uur op de iPhone. Nog een uur op de Xbox. En tijd op de Windows PC ook nog. Vijf aparte limieten, vijf aparte systemen - allemaal ingesteld, allemaal afgedwongen, allemaal precies werkend zoals bedoeld. Het totaal was veel hoger dan ik voor ogen had. Dat had ik zelf zo ingericht. Ik had de optelsom alleen nooit gemaakt.

Dat was het moment waarop OneLimit als idee ontstond. Het duurde nog een jaar voordat het een app werd.

Het ding waar ik steeds naar zocht en dat niet bestond

Mijn eerste ingeving was dat iemand dit vast al had opgelost. Ik ben ontwikkelaar - ik weet hoe je moet zoeken. Ik heb een paar avonden gezocht naar een app waarmee ik één dagelijkse schermtijdlimiet kon instellen voor meerdere apparaten en platforms. Ik vond veel tools voor één platform. Ik vond monitoring-apps die je rapporten gaven maar niets afdwongen. Ik vond wat hardware-oplossingen die voor onze situatie overdreven waren.

Wat ik niet kon vinden, was iets eenvoudigs: één getal, alle schermen, automatisch afgedwongen. Het leek me een voor de hand liggende wens. Het bestond niet.

Dus begon ik na te denken of ik het zelf kon bouwen.

Wat dit technisch lastig maakte

Het eerste wat ik moest begrijpen, was waarom niemand dit al had gebouwd. Het antwoord: elk platform schermt zijn ouderlijk-toezichtgegevens af achter zijn eigen API's, met een eigen authenticatiemodel en een eigen reeks beperkingen op wat apps van derden mogen doen.

Apple's ScreenTimeKit is het krachtigst, maar ook het meest restrictief. Het is een eigen framework van Apple dat apps legitieme schermtijdbeheermogelijkheden op OS-niveau geeft. Om het te gebruiken, moet je app de juiste rechten (entitlements) hebben, en die worden niet automatisch uitgedeeld - Apple beoordeelt wat je ermee doet. De handhaving is echt: ze draait op OS-niveau en is behoorlijk moeilijk te omzeilen.

PlayStation Family Management biedt een API via PlayStation Network waarmee geautoriseerde apps speeltijdgegevens kunnen lezen en gezinsaccounts kunnen beheren. Sony heeft dit vooral voor zijn eigen app gebouwd, maar de API is toegankelijk. De uitdaging is een betrouwbare, gepollde integratie bouwen die de gegevens synchroon houdt zonder het eindpunt te overbelasten.

Nintendo Switch Online biedt op vergelijkbare wijze account- en ouderlijk-toezichtgegevens via een API die de officiële Parental Controls-app gebruikt. Achterhalen hoe dit werkt (legaal, door het verkeer van de officiële app te observeren) was een van de interessantere problemen om op te lossen.

Microsoft Family Safety biedt een API voor het beheren van schermtijd op Xbox en Windows PC. Van alle console-integraties is die van Microsoft het meest gestructureerd - het is een gedocumenteerde API met fatsoenlijke OAuth, en hij dekt zowel Xbox-consoles als Windows-pc's via hetzelfde account.

Geen van deze API's was ontworpen om met elkaar te communiceren. Ze gebruiken verschillende authenticatiestromen, verschillende dataformaten, verschillende ratelimieten. OneLimit bouwen betekende de brug ertussen zijn - tijdgegevens uit elk platform halen, een verenigde budgetstatus bijhouden, en handhavingsacties terugsturen naar elk platform.

De dingen die me verrasten

Ik had verwacht dat het API-werk lastig zou zijn. Ik had niet verwacht dat de UX nog lastiger zou zijn.

De technische integratie is werkelijk complex, maar zodra het werkt, werkt het. De interface - hoe je een 9-jarige daadwerkelijk vertelt "je hebt nog 45 minuten over, verspreid over al je apparaten" op een manier die eerlijk en begrijpelijk voelt - dat kostte veel meer iteraties dan ik had verwacht.

Vroege versies van de app waren te technisch. Te veel getallen, te veel details. Mijn kinderen keken ernaar en haalden hun schouders op. De versie die het gedrag echt veranderde, was veel eenvoudiger: een budgetring in de kinder-app die de resterende tijd toont als een visuele aftelling. Groen betekent volop. Geel betekent het komt dichtbij. Rood betekent bijna op. Dat is alles. Kinderen begrijpen dat meteen.

De andere verrassing was hoeveel het handhavingsmoment uitmaakte. Wat gebeurt er als de tijd op is? En hoe komt het kind erachter voordat het zover is? Die overgangen goed krijgen - waarschuwen met genoeg tijd om iets echt af te ronden, soepel vergrendelen, een duidelijke uitleg geven - daar ging veel van het ontwerpwerk in zitten.

Functies die voortkwamen uit echte opvoedsituaties

Vraag om meer tijd kwam voort uit een specifieke onderhandeling: "Mag ik meer tijd?" In plaats van dat dat elke keer een ad-hocbeslissing van de ouder is, laat OneLimit kinderen rechtstreeks vanaf hun apparaat een verzoek sturen. De ouder keurt het met één tik goed of af. Het haalt de discussie uit de kamer.

Streaks kwam voort uit de wens om zelfregulatie belonend te laten voelen. Kinderen die binnen hun dagelijkse budget blijven, bouwen een reeks op. Het is een eenvoudige prikkel, maar het maakt van de limiet iets dat niet opgelegd, maar verdiend is.

Noodvergrendeling kwam voort uit een situatie die veel ouders waarschijnlijk herkennen: het moment waarop een kind volledig over de rooie gaat omdat het een spel verliest, en elke extra minuut schermtijd het alleen maar erger maakt. Dat ik onmiddellijk vanaf mijn telefoon alle apparaten kon vergrendelen - zonder fysiek te hoeven ingrijpen en iets af te pakken - bleek echt nuttig te zijn.

Aftellen naar bedtijd geeft kinderen een duidelijke, zichtbare afkoelperiode voordat de schermen 's avonds vergrendelen. Geen abrupte afsluiting - ze zien de tijd naderen en kunnen op een natuurlijke manier afronden.

Roosters kwamen voort uit de werkelijkheid van schooldagen versus weekenden. De juiste limiet op een dinsdag is anders dan de juiste limiet op een zaterdag. Met OneLimit kun je verschillende budgetten instellen voor verschillende dagen, zodat weekenden wat meer ademruimte kunnen hebben zonder dat dat de standaard wordt.

Wat we fout deden (en hebben hersteld)

De eerste versie probeerde te veel. Gebruiksanalyses per apparaat, gedetailleerde uitsplitsingen per app, trendrapporten over de tijd. Dat zijn allemaal interessante gegevens, maar het is niet wat de meeste ouders op het moment zelf echt nodig hebben. Wat ouders nodig hebben is: hoeveel tijd is er nog over, en wordt het vanavond een probleem? Al het andere is ruis.

We hebben daar veel van geschrapt. De huidige app is eenvoudiger dan de vroege versies. Dat was de juiste keuze.

We hadden het in eerste instantie ook te moeilijk gemaakt om af en toe extra tijd te geven. Het systeem was star op een manier die bestraffend aanvoelde - voor het kind en voor ons. Het echte leven is niet star. Sommige dagen verdienen meer flexibiliteit. Het inbouwen van eenvoudige uitzonderingen voor één dag (zonder de hele structuur af te breken) was belangrijk.

Waar OneLimit nu staat

OneLimit is een echte app in de App Store. Het ondersteunt iPhone, PS5, Nintendo Switch, Xbox en Windows PC. Er is een gratis versie voor één kind en één apparaat - genoeg om het uit te proberen en te zien of het kernidee werkt voor jouw gezin. Het Pro-abonnement haalt de beperkingen weg; de actuele prijs staat in de App Store.

Het is nog steeds een kleine onderneming. We zijn een klein team dat iets bouwt wat we zelf nodig hadden, voor een probleem waar volgens ons veel gezinnen mee te maken hebben. De slogan - "Eén budget. Alle schermen." - is echt wat we voor ogen hadden, en het is wat de app doet.

Ben je een ouder die meerdere apparaten beheert en de wrijving van limieten per apparaat voelt, dan zouden we het geweldig vinden als je het probeert. En heb je feedback - dingen die niet werken, functies die je nuttig zou vinden, manieren waarop we iets verkeerd hebben aangepakt - dan lezen we dat echt, en het bepaalt echt wat we als volgende bouwen.

Dat deel van een klein team zijn valt eigenlijk best mee.


OneLimit is beschikbaar op iOS met ondersteuning voor iPhone, PS5, Nintendo Switch, Xbox en Windows PC. Ga aan de slag op onelimit.app.