familiewapen Mick Beermickbeer.com

manuscript ·

geverifieerdzekerSoftware en apparatenbronnenverwant

Een app kan volledig lokaal, zonder een enkele netwerkcall

Sommige apps versturen niets, alles blijft op je toestel. Dat bewijst dat de zware advertentie- en telemetriestack een keuze is, geen technische noodzaak. Wie zegt dat het niet anders kan, wordt door de schone tegenvoorbeelden weersproken.

De positieve uitschieter

In een reeks metingen zat ook goed nieuws. Een app die nul netwerkverkeer maakte. Niets ging naar buiten, alles bleef op het toestel. Ik zette de opname aan, ik gebruikte de app zoals een gewone bezoeker dat zou doen, en de lijst met verstuurde requests bleef leeg. Andere apps in dezelfde reeks deden het ook netjes, zij het minder radicaal. Die hielden het bij hun eigen backend, met de verwerking en de monitoring binnen de EU.

Zulke uitkomsten noteer ik met opzet, want ze breken het patroon van het onderzoek. Het meeste werk gaat over wat er misgaat, en dan ga je vanzelf verwachten dat elke app lekt. De app die niets verstuurt, herinnert me eraan dat die verwachting een aanname is en geen natuurwet.

Het is ook het soort uitkomst dat je makkelijk overslaat. Een lek springt in het oog, want er staat iets in de lijst dat er niet hoort. Een lege lijst vraagt om een tweede blik, want leegte trekt geen aandacht. Toch is die lege lijst het bewijsstuk dat mijn hele betoog draagt. Daarom behandel ik de schone app met dezelfde zorg als een lek, en controleer ik hem net zo streng. Een goede uitkomst die ik te makkelijk aanneem, is net zo onbetrouwbaar als een lek dat ik te makkelijk aanwijs.

Wat het bewijst en wat niet

Een schone app is meer dan een prettige uitzondering. Ze doet iets met het debat. Ze weerlegt het meestgehoorde excuus, namelijk dat de zware advertentie- en telemetriestack er nu eenmaal bij hoort. Als één app volwaardig werkt zonder ook maar één call naar buiten, dan is diezelfde stack bij een andere app een keuze die iemand heeft gemaakt. Technische noodzaak valt als verklaring af, want het tegenvoorbeeld staat er.

Ik moet wel precies zijn over wat het tegenvoorbeeld aantoont. Het bewijst dat lokaal werken kan. Het bewijst niet dat elke app zonder netwerk toe kan, want sommige apps hebben een echte reden om iets te versturen. Een berichtenapp moet berichten afleveren. Een navigatie-app heeft kaartdata nodig. Het tegenvoorbeeld slaat op de stack die niets met de functie te maken heeft: de trackers, de reclamekoppelingen, de telemetrie die de gebruiker geen betere app oplevert. Voor die laag is "het kan niet anders" na één schone meting niet meer houdbaar.

Hoe zeker is die nul eigenlijk

Nul netwerkverkeer klinkt als een harde uitkomst, en toch verdient het een kanttekening. Wat ik meet is: in mijn meetvenster, bij het gebruik dat ik uitvoerde, verstuurde de app niets. Dat is een gemeten feit binnen die grenzen. Het is geen garantie dat de app onder alle omstandigheden en voor altijd zwijgt.

Er zijn twee bekende valkuilen. De eerste is dat niet alles bij het opstarten vuurt. Sommige calls komen pas na een handeling, na een dag, of na een trigger die ik in mijn sessie niet raakte. Dat werk ik uit in Niet alles vuurt bij opstart, sommige trackers wachten op jou. De tweede valkuil is de omgekeerde vergissing. Een meting die mislukte, bijvoorbeeld omdat de opname niet goed liep of het toestel geen verbinding had, levert ook een lege lijst op, en die leegte lijkt op een schone app zonder er een te zijn. Ik moet dus eerst uitsluiten dat de nul door een meetfout komt voordat ik hem als goed nieuws opschrijf. Dat onderscheid staat in Een mislukte meting is geen schone app. Om beide valkuilen te vermijden, meet ik zoals een echte bezoeker de app gebruikt, en niet zoals een scanner die één keer de voordeur aantikt. Die aanpak licht ik toe in Meet zoals een bezoeker, niet zoals een scanner.

Waarom ik dit ook opschrijf

Dit werk gaat vaak over wat misgaat, en dat trekt een bepaalde toon aan. Als je alleen de lekken publiceert, ontstaat het beeld dat het overal fout zit en dat er niets aan te doen is. Dat beeld is onwaar en het is ontmoedigend, en het speelt de partij in de kaart die zegt dat de stack onvermijdelijk is.

Een eerlijke meting noteert daarom ook de goede uitkomst. De schone app is het sterkste antwoord op wie beweert dat het niet anders kan, sterker dan welk moreel appel ook, want het is een feit in plaats van een mening. Het verplaatst de bewijslast. Ik hoef niet aan te tonen dat het anders kan. De bouwer die lekt moet uitleggen waarom hij het niet doet zoals de schone app het al doet.

De schone app als maatstaf

Er zit nog een functie in het schone voorbeeld die verder gaat dan het weerleggen van een excuus. Het geeft me een maatstaf om de rest langs te leggen. Zonder een bovengrens van wat haalbaar is, blijft elk oordeel over een lekkende app zweven. Je kunt zeggen dat een app veel verstuurt, maar veel ten opzichte van wat? De schone app en de EU-only app vullen dat gat. Ze markeren wat er in de praktijk mogelijk is binnen dezelfde categorie.

Zo wordt mijn beoordeling relatief in plaats van willekeurig. Een app die alles lokaal houdt, staat aan de ene kant. Een app die je toestel op een veiling aanbiedt en tientallen partijen meeneemt, staat aan de andere. Alle apps daartussen kan ik plaatsen ten opzichte van die twee ankers. Dat is eerlijker tegenover de bouwer, want ik meet hem af aan wat een vergelijkbare app aantoonbaar redt, en niet aan een ideaal dat ik zelf verzin.

Het legt ook de lat op de juiste hoogte. De maatstaf is niet mijn mening over hoe het zou moeten. De maatstaf is een bestaande app die het al doet. Dat maakt de eis moeilijk weg te wuiven, want het is geen theorie. Het draait op een toestel, het is gemeten, en het werkt.

Wat dit voor mijn werk betekent

Praktisch houdt dit me aan twee dingen. Ten eerste rapporteer ik de schone apps net zo hard als de lekkende. Ze horen in hetzelfde overzicht, want zonder de goede voorbeelden mist mijn kritiek zijn maatstaf. Ten tweede blijf ik streng op de zekerheid van de nul. Ik label de uitkomst op bewijsniveau. Gemeten: geen verkeer in dit venster bij dit gebruik. Nog niet vastgesteld: dat de app onder alle omstandigheden zwijgt. Pas als ik de meetfout en het late vuren heb uitgesloten, noem ik een app schoon.

Het heeft me ook iets geleerd over de toon van mijn werk. Wie alleen aanklaagt, wordt op den duur weggezet als iemand die overal een probleem ziet. De schone app geeft me een geloofwaardig alternatief om naar te wijzen. Ik kan zeggen dat het beter kan en meteen laten zien dat het beter gebeurt, in dezelfde categorie, op een echt toestel. Dat maakt de kritiek moeilijker af te doen als zwartkijken, want er ligt een werkend voorbeeld naast.

Zo blijft het tegenvoorbeeld bruikbaar. Het toont dat lokaal werken kan, het houdt mijn eigen verhaal eerlijk, en het legt de vraag terug waar hij hoort, bij degene die de stack koos en beweert dat het niet anders kan.

Zie ook Een mislukte meting is geen schone app, Niet alles vuurt bij opstart, sommige trackers wachten op jou en Meet zoals een bezoeker, niet zoals een scanner.

bronnen
  1. Eigen meting: nulbevinding bij een app zonder netwerkverkeerhet bewijs dat lokaal verwerken haalbaar is, en dus een keuze
citeer alsBeer, M. (2026, 2 juli). Een app kan volledig lokaal, zonder een enkele netwerkcall. mickbeer.com. https://mickbeer.com/#een-app-kan-volledig-lokaal-zonder-een-enkele-netwerkcall

lees dit stuk in het manuscript, met alles waar het aan hangt