Nieuwste bovenaan, geschreven voor een mens. Wat er veranderde, wat er stukging en wat er
nog ontbreekt.
De tekst die in de Play Store bij “wat is er nieuw” staat, komt letterlijk uit dezelfde
bestanden als deze pagina, dus ze kunnen niet uit elkaar lopen.
Wil je op de hoogte blijven? Er is een Atom-feed met elke versie,
met per release dezelfde korte tekst als in de Play Store. Geen nieuwsbrief en geen
adres om achter te laten: je feedlezer haalt een bestand op, en niemand hier weet dat
je dat deed.
1.0.1
Voor iedereen · de link in Over wijst naar stapel-app.nl
Stapel staat nu op stapel-app.nl. Tot deze versie wees de link naar de releasepagina,
onderaan het scherm Over, nog naar het adres waar de site stond voordat hij een eigen
domein had. Die link wijst nu naar het nieuwe adres.
Verder is er niets veranderd. Het oude adres blijft werken, dus op 1.0.0 is er niets kapot.
1.0.0 Play Store
Voor iedereen · Stapel staat in de Play Store
Stapel staat in de Play Store. Geen testerslijst meer, geen mail naar mij: je zoekt hem
op en installeert hem.
Aan de app is niets veranderd. Dit is dezelfde versie als de laatste gesloten test, met
hetzelfde versienummer in alles behalve de naam. Wat verandert is wie hem kan installeren:
tot nu moest ik je e-mailadres aan een testerslijst toevoegen, en dat hoeft niet meer.
Ik heb bewust niets toegevoegd voor deze versie. Een 1.0 die nieuwe dingen meeneemt is een
1.0 die niemand heeft getest. Dit is de build die een testronde heeft doorstaan, en precies
die build gaat nu naar buiten.
Geen advertenties, geen tracking, geen account. Je kaarten staan op je eigen telefoon en
nergens anders. Stapel is gratis en blijft gratis.
0.9.13 Gesloten test
Alleen voor testers · Aankomstdetectie weet weer welke kaarten je hebt
Deze versie voegt niets toe. Het zijn vijftien reparaties, en ze hebben allemaal dezelfde
vorm: de app deed stil iets anders dan je verwachtte, en zei er niets over. Dat is de
vervelendste soort fout, omdat er niets is om op te reageren.
Met aankomstdetectie aan worden de winkels om je heen ingesteld op basis van de ketens van
je kaarten, maar alleen het scherm waarop je een kaart wijzigt vroeg om een nieuwe ronde.
Een kaart erbij scannen, koppelen vanuit een winkel, verwijderen of importeren deed dat
niet. Dus: een Albert Heijn-kaart erbij, die middag een AH binnengelopen, en er gebeurde
niets. Van een verwijderde kaart bleven de winkels juist ingesteld staan. Dat is nu alle
vijf. Zet je je locatie uit en weer aan, dan vraagt Stapel ook om een nieuwe ronde, zolang
hij op dat moment nog draait: staat hij 's nachts uit, dan gebeurt het pas als je de app
weer opent.
De kaart die op je vergrendelscherm verschijnt bleef daar staan nadat je hem niet meer
nodig had. Vergrendel je de kaart, verwijder je hem, of zet je de instelling uit, dan gaat
hij nu weg. En je telefoon draaien verliest niets meer: de code die je aan het scannen was,
de ontgrendeling voor een export, een import die nog bezig was en een winkeldatabase die
aan het bijwerken was overleven het draaien allemaal.
Verder bewaarden twee snelle tikken op Opslaan de kaart twee keer, en nam je je kaarten
over uit een andere wallet-app, dan werd een cadeaubon die Stapel aan een bekend merk kon
koppelen als klantenkaart opgeslagen. Een cadeaubon gaat standaard achter je
schermvergrendeling en een klantenkaart niet, dus zo'n bon lag open. Nu blijft hij dicht.
0.9.12 Gesloten test
Alleen voor testers · De kaart van de winkel waar je staat, gaat naar boven
Deze versie is bijna helemaal uiterlijk, leesbaarheid en gevoel. Ik heb de app drie keer op
rij nagelopen op ontwerp en bruikbaarheid, en alles wat daaruit kwam zit hierin. Er komt
geen functie bij: wat er al was, staat nu waar je het zoekt, is te lezen als je slecht
ziet, en beweegt mee in plaats van te springen.
Sta je in een winkel die Stapel kent en heb je daar een kaart van, dan stond die kaart
gewoon ergens in Alles, op alfabet. Met dertig kaarten betekent dat zoeken terwijl de rij
achter je wacht. Die kaart gaat nu naar boven, onder het kopje Hier. Hij wordt verplaatst,
niet gekopieerd: in de eerste opzet stond dezelfde kaart twee keer op één
scherm.
In 0.9.11 kwam onder de streepjescode de vraag of je in deze winkel stond. Dat was precies
de verkeerde plek. Je houdt je telefoon omhoog bij de kassa, en één
duimbeweging naast Liggend legde de kaart vast aan een keten, zonder bevestiging en zonder
weg terug. Die vraag is weg bij de kassa, en een kaart die aan de verkeerde winkel hangt
kun je nu losmaken.
Het grootste deel van deze versie is het minst zichtbaar als je het niet nodig hebt. De
uitleg over het schermslot stond grijs op grijs, precies de zin die vertelt waarom je kaart
niet beschermd kan worden. De kleur van de tekst op een tegel wordt nu per merk uitgerekend,
zodat hij op elke merkkleur leesbaar is. TalkBack zegt of een kaart een favoriet is, en
leest de streepjescode nog één keer in plaats van twee. Op lettergrootte 2.0
braken de cijfers van de code over twee regels en dekte de toevoegknop een kaart af. Dat is
op orde.
En op een tablet, een opengeklapte vouwtelefoon of een telefoon in liggende stand gebruikte
Stapel de breedte niet: één kolom in het midden, de rest leeg. Nu staat de
kaart naast je overzicht.
0.9.11 Gesloten test
Alleen voor testers · Een kaart zonder winkel verdwijnt niet meer
Allebei de veranderingen komen uit één melding. Een tester stond in een winkel
met de kaart van die winkel in de app, en het Winkels-scherm liet alleen de twee buren zien.
De kaart was er, de winkel was er, en niets verbond ze. Het vervelende was niet dat het
misging, maar dat er nergens stond dát het misging.
Open je nu een kaart waar geen winkelketen aan hangt, en kan je toestel je op dat moment in
een winkel plaatsen die Stapel kent, dan staat er onder de streepjescode één
regel: sta je nu bij deze winkel? Eén tik koppelt hem, en alleen de keten wordt
vastgelegd. Zeg je "Nu niet", dan blijft die vraag dertig dagen weg voor die kaart. De regel
staat onder de code en niet erboven, want een kaart die je in een winkel opent gaat meestal
zo de kassa over.
12
1De code houdt de bovenkant van het scherm. De vraag staat eronder, zodat er niets overheen komt van wat bij de kassa gescand moet worden.
2Stapel ziet in welke winkel je staat en vraagt het één keer. Eén tik koppelt hem, en alleen de keten wordt vastgelegd. Zeg je "Nu niet", dan blijft deze winkel dertig dagen stil voor deze kaart.
Een kaart die bij geen enkele keten hoort, geopend in een winkel. Opgenomen op 0.9.11. De plaatsbepaling is ingevoerd, niet gelopen.
En een kaart waarvan de keten geen enkele winkel binnen het zoekbereik heeft, verdween
daarvóór uit allebei de helften van het Winkels-scherm. Er staat nu bij dat er
geen winkel binnen het doorzochte bereik ligt, met waar je dan naar moet kijken: een kaart
die aan het verkeerde merk hangt ziet er precies zo uit.
12
1De winkels waar je naartoe kunt, op afstand gesorteerd.
2Daaronder staat nu wat eerder wegviel: een kaart waarvan de keten geen winkel binnen het doorzochte bereik heeft. De regel eronder zegt waar je dan naar moet kijken, want een kaart die aan het verkeerde merk hangt ziet er precies zo uit.
Het Winkels-scherm in Maastricht. De dichtstbijzijnde IKEA staat op 18,9 km, buiten het bereik dat is doorzocht. Opgenomen op 0.9.11.
0.9.10 Gesloten test
Alleen voor testers · Je ziet nu welke widget je kiest
Stapel heeft twee widgets: een kaart over de volle breedte, en een kaart met je recente
kaarten eronder. In de lijst waarin je er een uitkiest waren ze niet uit elkaar te houden,
want allebei stonden ze er als hetzelfde grijze vlak met een draaiend rondje. Elke widget
laat nu zichzelf zien, dus je kiest op het verschil. Dat werkt op Android 12 en nieuwer.
In een winkelstraat liggen de cirkels van aankomstdetectie over elkaar heen, en dan meldt de
telefoon ze allemaal tegelijk. Er was niets dat de volgorde bepaalde, dus won de winkel die
toevallig achteraan stond en kon je de kaart van de buren krijgen. Nu wint de
dichtstbijzijnde winkel waar je een kaart voor hebt, met de locatie die al bij de melding
zat. Staat aankomstdetectie uit, en zo begint hij, dan verandert er niets.
0.9.9 Gesloten test
Alleen voor testers · Datums in je eigen taal, en een gesloten kaart blijft dicht
Elke datum op het scherm stond in de Nederlandse volgorde, in alle achttien talen. Wie de
telefoon op Engels heeft staan leest 03-04-2027 als 4 maart, terwijl het 3 april is, en dat
zat op de vervaldatum van een bon. Datums volgen nu de taal van de lezer, en het veld
waarin je zelf een datum typt doet dat ook.
Een kaart die je zelf had gesloten kwam open terug uit een back-up van voor 0.9.8, omdat
zo’n bestand niets over sloten zegt en dat werd gelezen als “neem de
standaard”. Een herstel opent nu geen kaart meer die dicht stond, en het scherm zegt
dat het bestand het niet vermeldde. Een kaart die je iemand overhandigt krijgt de regel van
de telefoon die hem ontvangt.
Een nummer dat een cijfer te kort is wordt nu ook bij wijzigen geweigerd, niet alleen bij
toevoegen. Nu bijwerken werkt ook de lijst met landen bij, dus een land dat die ochtend is
gepubliceerd is te vinden zonder op wifi te wachten. Een land dat niet meer wordt
gepubliceerd blijft zichtbaar met jouw kopie erbij, in plaats van te verdwijnen terwijl zijn
winkels blijven meetellen. En een lange PDF zegt hoeveel pagina’s zijn gelezen.
0.9.8 Gesloten test
Alleen voor testers · Bijwerken vindt nu de winkels bij jou in de buurt
Nu bijwerken keek alleen naar een locatie die Android al vasthield, en die is er meestal
niet. Voor een land waarvan de winkels in delen om je heen komen haalde de app daardoor de
landelijke lijst op en niets dichtbij, precies op de telefoon waarvoor die knop bedoeld is.
De app vraagt nu zelf een locatie op als er geen recente is, en laat zien dat hij bezig is
zolang dat duurt.
Een kaart intypen is strenger geworden. Een nummer dat een cijfer te kort is voor zijn
streepjescode wordt geweigerd in plaats van stil aangevuld met een cijfer dat niet op je
kaart staat, en een Amerikaanse kaart wordt als UPC-A getekend. Een vergrendelde kaart laat
zijn nummer niet meer zien in de lijst.
Omdat die knop nu zelf een locatie opvraagt, staat dat ook in de privacytekst. Wat
automatisch bijwerken leest en wat de knop vraagt staan er los bij, in alle achttien talen
en op beide privacypagina’s.
0.9.7 Gesloten test
Alleen voor testers · Een land erbij zonder nieuwe app
Deze versie verandert vooral iets wat je vandaag nog niet ziet. Tot nu toe stond de lijst
met landen waarvan winkels bekend zijn in de app zelf, en kwam er pas een land bij als er
een nieuwe versie uitkwam. Nu leest de app die lijst zelf op, ondertekend, en biedt aan
wat erin staat.
Op het moment dat deze versie uitkomt staan er precies de achtentwintig landen in die de
app al kende, dus er komt vandaag geen land bij. Het gaat om het volgende land: dat heeft
geen nieuwe app meer nodig. Dat verzoek noemt geen land en draagt geen locatie, en zet je
het bijwerken van de winkellijst uit, dan gaat ook dit verzoek niet meer.
Daarnaast krijgt een kaarthouder zonder kaarten de vraag over aankomstdetectie nu ook, met
een tekst die zegt waarom hij er staat: het gaat om de voorbeeldkaarten die Stapel zelf
meebrengt. En de releaselijst hieronder zet vanaf deze versie de datum waarop een versie
daadwerkelijk uitging, in plaats van de datum van de laatste wijziging ervoor.
0.9.6 Gesloten test
Alleen voor testers · De cirkel die te wijd bleef staan
Deze versie is voor de helft reparatie en voor de helft een app die ruim 4 MB kleiner is
geworden. Na 0.9.5 is de code van aankomstdetectie nagelopen, en daar kwamen drie fouten
uit die niemand op een scherm ziet gebeuren.
Om jou heen ligt één cirkel, en die is het enige dat de app laat herkijken
welke winkels in de buurt zijn. Als de app opnieuw keek en dezelfde winkels uitkwam, sloeg
hij het opnieuw aanmelden over. Alleen keek die vergelijking naar de winkels en niet naar
de cirkel, dus een cirkel die op een oude positie anderhalve kilometer breed was gemaakt,
bleef liggen zodra er een verse positie was die zei dat een paar honderd meter genoeg was.
Dat is precies de verkeerde kant op: binnen zo’n te wijde cirkel loop je nergens meer
een grens over, dus wordt er nooit meer gekeken, dus krijgt elke winkel waar je langs komt
geen cirkel meer. De cirkel telt nu mee in die vergelijking, met een speling van honderd
meter.
De marge voor een oude positie werd bovendien uitgerekend met de gewone klok van je
toestel, en dat is de klok die verspringt als je netwerk de tijd bijstelt of je de datum
zelf goedzet. Springt hij terug, dan lijkt een oude positie vers en wordt de marge niet
opgeteld; springt hij vooruit, dan wordt de cirkel voor niets anderhalve kilometer breder.
Android heeft daar een tweede klok voor die sinds het opstarten doorloopt en die niemand
kan verzetten, en die wordt nu gebruikt.
En de controle die merkt dat Play Services de cirkels alsnog geweigerd heeft, werd alleen
gedaan als de positie minder dan twee minuten oud was. Dat was het juiste getal voordat
0.9.5 de marge invoerde, en het is daarna blijven staan, terwijl de rest van de app
inmiddels met een positie van maximaal ongeveer achttien minuten rekent. Bij alles
daartussen werd er niets verwacht en dus ook niets gemist. Die grens is nu afgeleid van de
marge zelf, zodat de twee niet opnieuw uit elkaar kunnen lopen.
Alle vensters zijn te scrollen bij grote letters
In 0.9.5 werden twee vensters aangepakt. Er zijn er vijftien, en twaalf ervan hadden
hetzelfde probleem: bij grote letters werd de tekst afgekapt, zonder dat er iets op het
scherm stond dat er meer was. De knoppen zijn nooit weggevallen, maar de zin die zegt
wát er weggegooid wordt stond wel onder de rand. Bij het venster dat vraagt of je
een kaart wilt verwijderen is dat de hele waarschuwing.
De uitleg noemt nu ook de andere cirkels
Het scherm dat uitlegt wat aankomstdetectie doet, sprak alleen over winkels van ketens
waarvan je een kaart hebt. Een paar van die cirkels liggen om winkels waarvan je er juist
geen hebt, zodat zo’n winkel je bij aankomst een voorbeeldkaart kan aanbieden. Dat is
het scherm waarop je beslist of je dit aanzet, dus staat het er nu bij, in alle achttien
talen.
Pathé staat in de winkellijst, en dubbele winkels staan er niet meer dubbel in
Pathé kende de app wel als kaart, maar niet als winkel. Je kon een Club
Pathé-kaart bewaren en laten scannen, alleen wist de app van geen enkele bioscoop
waar die kaart bij hoort, dus kon hij ook nooit merken dat je er aankwam. Er staan er nu 31
in, evenveel als Pathé er zelf noemt. Het is de eerste keten in de lijst die geen
winkel is maar een bioscoop. Kinepolis staat er nu ook in, met 16 bioscopen in Nederland en
10 in België: je Movie Club-kaart geldt aan beide kanten van de grens, dus het zou raar
zijn als de app alleen de ene helft kende.
Bij het opnieuw opbouwen van die lijst kwam er nog iets uit. De reparatie die elke winkel
nog maar onder één keten zet kwam een week na de Nederlandse lijst, dus die
lijst had hem nooit gehad. Daardoor stond elke SPAR express, SPAR city, AVIA XPress, OK
express, Tamoil Express en TotalEnergies Express er twee keer in: een keer onder zijn eigen
naam en een keer onder de moederketen. Dat waren 595 winkels die je dubbel zag staan en die
twee van je twintig cirkels kostten in plaats van een. Ze staan er nu een keer in, en geen
enkele kaart verliest er een winkel door.
Diezelfde reparatie is daarna over dertien landen gegaan die je erbij kunt downloaden, waar
samen 1.061 winkels dubbel stonden. Wat je daarvan zag was veel kleiner dan hier: acht
plekken in die dertien landen samen kostten je twee cirkels in plaats van een. Het is
vooral een schoner bestand om te downloaden. In Tsjechië kwam er iets bij in plaats van
af: 322 Coop- en Jednota-winkels die in de vorige lijst helemaal ontbraken staan er nu wel
in.
De logo’s zitten niet meer allemaal in de app
Tot nu toe droeg elke installatie de logo’s van elke keten in elk land. Een Nederlands
toestel had dus de Britse, Italiaanse en Japanse logo’s ook, en gebruikte die nooit.
Dat waren 554 plaatjes. Er zitten er nu 111 in: precies de logo’s die een kaart in
Nederland kan tegenkomen, plus de handvol die bij geen enkel land horen. De andere 443
reizen mee met het land waar ze bij horen. Zet je België aan, dan komen de 60 Belgische
logo’s mee met de winkeldata van België. Er zijn 22 landen die zo’n pakketje
hebben.
Samen met het omzetten van de plaatjes naar een kleiner formaat, zonder dat er iets aan de
beeldkwaliteit verandert, is de app daarmee 4.048.727 bytes kleiner geworden: van 32,3 MB
naar 28,3 MB, gemeten aan dezelfde bouw van 0.9.5 en van deze versie. Wat je van Google
Play binnenhaalt is kleiner dan dat en verschilt per toestel, dus het verschil is het getal
dat klopt, niet die twee.
Dit is één netwerkverzoek meer dan de app tot nu toe deed, en het vraagt om
een bestand met de landcode erin. Het privacyscherm noemt het daarom als vierde verzoek,
met zijn eigen kopje, en op deze site staat het er ook bij. Het pakketje is ondertekend en
wordt op dezelfde manier gecontroleerd als de winkeldata zelf: komt de handtekening niet
uit, dan wordt er niets geïnstalleerd. Het gaat mee met het bijwerken van de
winkellijst, dus op onbeperkte wifi tenzij je mobiele data toestaat, en alleen voor landen
die je zelf hebt aangezet. Een logo dat nog niet binnen is, is geen fout: dan staat er het
symbool voor het soort winkel, en dat is wat ongeveer een derde van alle ketens toch al
doet omdat er voor die ketens geen logo is dat vrij te gebruiken is.
Een gedownload logo staat nu ook op het beginscherm en in de melding
De widget, de melding als je een winkel binnenloopt en het snelmenu op je startscherm
tekenen hun merkje anders dan de app zelf, en die drie keken alleen in de app. Zolang elk
logo in de app zat maakte dat geen verschil. Sinds de logo’s meereizen wel: een
Belgische kaart droeg zijn logo in de app en op die drie plekken het kale winkelsymbool.
Ze kijken nu allemaal op dezelfde plek.
De namen van landen komen nu van je toestel
De landen in de lijst hadden hun naam in 28 keer 17 met de hand geschreven regels staan.
Android weet die namen zelf al, in elke taal die je toestel kent, dus worden ze daar nu
opgehaald. Voor bijna alle landen verandert er niets aan wat er staat. In Brazilië wel:
daar stond de Portugese spelling van Portugal in plaats van de Braziliaanse, en dat is nu
goed. Groot-Brittannië houdt zijn eigen naam, want Android noemt dat land het Verenigd
Koninkrijk, en de winkellijst gaat niet over het Verenigd Koninkrijk: Noord-Ierland zit er
niet in. Die naam zou iemand in Belfast vertellen dat zijn land erin staat.
Twee schermen zeiden iets over de app dat niet klopte
Op het scherm van de winkeldatabase zit een knop “Wat er precies gebeurt”. Daar
stond dat Stapel per land één openbaar bestand ophaalt en dat er niets
meegaat: geen kaarten, geen codes, geen locatie. Twee tikken verderop staat op het
privacyscherm het omgekeerde, en dat is het scherm dat gelijk heeft. Een land wordt in
delen opgehaald, en welke delen worden opgevraagd volgt uit waar je toestel het laatst was.
De app deed wat het privacyscherm zegt; het andere scherm ontkende het, in achttien talen,
op de plek die aanbiedt om precies uit te leggen wat er gebeurt. Alle achttien zeggen nu
hetzelfde als het privacyscherm en verwijzen ernaar voor de rest, en er is nu een controle
die van elke taal eist dat ze het toegeeft.
Over het ophalen van logo’s stond op het privacyscherm: nooit een eigen run, en
helemaal niet zodra je het bijwerken van de winkellijst uitzet. Dat klopte niet. Het
ophalen van een logo wacht nergens op, en wachten is precies wat een lus nodig heeft om te
merken dat hij moet stoppen. Zette je het bijwerken uit terwijl er een run bezig was, dan
liep die lus alle landen af die nog over waren. De andere helft van diezelfde zin is erger,
want daar hoeft niemand een schakelaar voor om te zetten: Android stopt een run zodra de
verbinding niet meer is wat er gevraagd was, dus liep je halverwege een run de wifi uit,
dan ging de lus door over de mobiele data waarvan diezelfde zin zegt dat de app die niet
gebruikt. De lus stopt nu wel, en er is een test die faalt zodra dat weer niet zo is.
Bijwerken deed zijn handtekeningcontrole op de schermdraad
“Nu bijwerken” haalt eerst een lijstje op van welke stukken winkeldata er voor
jouw land zijn. Dat lijstje wordt ondertekend geleverd en de handtekening werd
gecontroleerd op dezelfde draad die het scherm tekent. De stukken zelf gingen al ergens
anders heen, alleen het lijstje niet.
Wat hier niet is getest
De stap van een geofence naar een melding gaat op een emulator nog steeds niet af, dus dat
is nog altijd alleen in een echte winkel te zien. De vensters zijn niet op een toestel met
grote letters bekeken: de tests die er zijn meten of er gescrold kán worden, niet
hoeveel er zonder scrollen wegviel. Van de logo’s is het downloaden en installeren wel
nagelopen, maar niet op een toestel met een ander land aangezet, en de widget, de melding en
het snelmenu zijn helemaal niet op een toestel bekeken. Bijwerken van 0.9.5 naar deze versie
is wel op een toestel gedaan, op een emulator met API 36: twee zelf ingetypte kaarten
stonden er daarna nog precies zo in, er viel niets te migreren, en aankomstdetectie stond
nog steeds uit.
0.9.5 Gesloten test
Alleen voor testers · Aankomstdetectie die aan blijft
Na een herstart van je toestel kon aankomstdetectie voorgoed stilvallen, zonder melding en
zonder dat er iets in de app op stond dat er iets mis was. Stapel geeft Google Play
Services de ongeveer twintig dichtstbijzijnde winkels, plus één cirkel om de
plek waar je bent: verlaat je die, dan wordt er opnieuw gezocht. Er is geen klok die dat
uit zichzelf doet. Vlak na een herstart heeft Android geen laatst bekende positie liggen,
en de app mag er zelf geen ophalen, want dat zou de gps aanzetten op een moment dat jij
niets gevraagd hebt. Er werd dus opnieuw geprobeerd, met een wachttijd die kon oplopen tot
vijf uur, en dan kwam de cirkel om een positie van uren eerder te liggen. Je stond er vanaf
het eerste moment buiten, dus binnenkomen werd nooit gemeld en naar buiten lopen ook niet.
De cirkel wordt nu ruimer naarmate de positie waar hij omheen ligt ouder is: 1,4 meter per
seconde, wandeltempo, tot maximaal anderhalve kilometer erbij. Dat dekt ongeveer achttien
minuten lopen. Ben je binnen die afstand gebleven, dan sta je nog in je eigen cirkel, loop
je er een keer uit, en kijkt de app opnieuw. Ben je verder weg, thuis herstart en inmiddels
op je werk, dan helpt die marge niet: daar is geen cirkel voor die niet meteen een halve
stad afdekt. Wandeltempo en niet autosnelheid, precies om dat te voorkomen.
Bij grote letters waren twee vensters niet meer helemaal te bedienen
Zet je de tekstgrootte op het maximum, dan werd het venster om een winkel vast te zetten en
het venster om een map te kiezen hoger dan het scherm. Schuiven ging niet, dus alles onder
het invoerveld viel weg: bij het vastzetten de knop om het adres op te zoeken, bij de map
de melding dat die naam al bestaat, het enige dat uitlegt waarom je niet kunt opslaan. De
knoppen onderaan bleven wel bereikbaar, want die staan buiten het schuivende deel. Nu
schuift dat deel. De test die dit had moeten vangen kon niet falen: hij zocht alleen in
bestanden die al een schuifbalk hadden.
De app legt de cirkel nu zelf uit
Wat die cirkel om jezelf is en hoe groot hij kan worden stond op de privacypagina op deze
site, maar niet op de privacypagina in de app, terwijl dat de pagina is die je meeneemt.
Daar staat het nu ook, in dezelfde woorden, in alle achttien talen. De getallen erin worden
voortaan nagerekend: die alinea is vier keer gecorrigeerd omdat een constante in de code
verschoof en de zin die hem citeert bleef staan, en er is nu een test die de ondergrens, de
cirkel zonder winkel, de halve breedte van het zoekvak, de marge voor een oude positie en
de bovengrens uitrekent zoals de app dat doet.
De voorbeeldkaart van Albert Heijn doet het weer
Sta je in een Albert Heijn zonder eigen Bonuskaart, dan biedt Stapel er een aan met een
Voorbeeld-label erop. Die kaart is alleen iets waard zolang de kassa hem aanneemt, en het
nummer dat er stond was verlopen. Er staat nu een nieuw nummer in, bewust gedeeld, zodat
iedereen zonder eigen kaart hem kan gebruiken. Een nummer hier gaat mee naar iedereen die
de app installeert, dus het kan alleen een nummer zijn dat de eigenaar er met opzet
neerzet, en nooit dat van iemand anders.
Wat hier niet is getest
De stap van een geofence naar een melding gaat op een emulator nog steeds niet af, dus dat
is nog altijd alleen in een echte winkel te zien. Het herstartscenario hierboven is in
tests nagebouwd, niet op een toestel dat echt opnieuw is opgestart.
0.9.4 Gesloten test
Alleen voor testers · Griekenland erbij
Griekenland is het achtentwintigste land waarvan Stapel de winkels kent, en Grieks is de
achttiende taal waarin de app zelf staat. Zet je het land aan onder Instellingen,
Winkeldatabase, dan komen er 10 056 winkels over 98 ketens bij, en loop je
Griekenland binnen terwijl grensdownloads aanstaan, dan biedt de app het zelf aan. Wat er
niet bij zit is een Grieks spaarprogramma in de catalogus: dat een paar Griekse ketens er
een hebben is wel vastgesteld, maar van geen enkele was de kaart zelf te achterhalen, de
kleur en het streepjescodeformaat, en raden is erger dan het gat. Lidl Griekenland doet
wel mee, want dat is Lidl Plus, en dat kende Stapel al.
Het brede widget noemde je portemonnee leeg
Had je precies één kaart, dan tekende het brede widget die kaart en zette er
“Nog geen kaarten. Tik om er een toe te voegen.” onder. Onder de kaart die er
stond. Het smalle widget deed dit al goed. Die regel verschijnt nu alleen nog als er echt
niets in zit.
In een druk centrum keek de app niet opnieuw
Stapel geeft Google Play Services de ongeveer twintig dichtstbijzijnde winkels om in de
gaten te houden, plus één cirkel om jezelf: verlaat je die, dan zoekt de app
opnieuw. Die cirkel was altijd drie kilometer, en dat is in een stadscentrum veel te ruim.
Op de Dam liggen de twintig dichtstbijzijnde winkels uit de catalogus binnen 153 meter,
terwijl er 462 staan binnen die drie kilometer; stond je in zo’n winkel, dan zat er
geen hek omheen en kwam er ook nooit een. De cirkel wordt nu om de winkels getrokken die echt
een hek kregen, en kleiner dan 500 meter wordt hij nooit.
De privacypagina zei iets dat niet meer klopte
Daar stond dat die cirkel drie kilometer is. Dat is hij sinds deze versie niet meer, en de
pagina waar de app zelf naar verwijst hoort niet het enige te zijn dat achterloopt. Er
staat nu wat de app doet, inclusief de bovengrens: de app zoekt in een vak van twaalf
kilometer naar elke kant, dus een winkel bij een hoek daarvan zet de cirkel ruim zeventien
kilometer verderop. De eerste poging om die zin te herstellen zette er twaalf kilometer
neer, de halve breedte van dat vak, en is voor publicatie gecorrigeerd.
0.9.3 Gesloten test
Alleen voor testers · weggeklikt is niet meer voorgoed
0.9.2 zette drie dingen op de lijst voor de volgende versie. Dit is die versie, en ze
staan er alle drie in. Daarnaast is de grootste scherpe rand eruit: een kaartaanbod dat je
wegklikte kwam nooit meer terug. Voorgoed, op dat toestel, zonder knop om het terug te
draaien, terwijl de app bij correcties juist zegt dat je die wél kunt terugdraaien.
Onder Instellingen, Winkeldatabase staat nu een lijst van de ketens die je hebt
weggeklikt, met per keten een knop om het aanbod weer aan te zetten.
Elke knop zegt bij welke winkel hij hoort
In de winkellijst heetten de knoppen “navigeren” en “correcties”,
zonder te zeggen bij welke winkel. Staan er twee Kruidvatten in de lijst, en dat komt
voor, dan las een schermlezer twee keer precies hetzelfde voor. Nu staat de straat erbij.
Tikte je op de knop om een winkel op de kaart te openen terwijl er geen enkele kaart-app
op je toestel stond, dan gebeurde er niets; nu zegt de app wat er aan de hand is.
Wat er in de winkelvermelding stond klopte niet
De tekst in de Play Store zei in alle veertien talen dat de broncode openbaar is. Dat is
niet zo, en dat blijft voorlopig zo; de winkeldata is wél openbaar, en de zin wijst
nu naar wat er echt open staat. Het scherm “Over Stapel” noemde een adres voor
de releasenotities dat nergens op uitkwam. Er is ook een openbare plek gekomen om iets te
melden, en het scherm Licenties opent sneller: dat las de lijst van 620 logo’s op de
hoofddraad in en tekende alle 677 regels tegelijk, ook de regels die niemand zag.
0.9.2 Gesloten test
Alleen voor testers · de winkellijst wijst de weg
0.9.1 ging over waar Stapel winkels kent. Deze gaat over wat je met die lijst kunt doen
zodra je ervoor staat. In de winkellijst zit per rij een knop die de winkel opent in de
kaart-app die al op je toestel staat, en een menu voor correcties als een winkel verhuisd
of dicht is. Stapel kiest die kaart-app niet voor je: het geeft de coördinaten door en
je telefoon beslist wie ze krijgt. Staat er geen kaart-app op, dan staat de knop er niet.
12
1De pijl opent deze winkel in de kaart-app die al op je toestel staat. Stapel kiest die app niet voor je: het geeft de coördinaten door en je telefoon beslist wie ze krijgt. Staat er geen kaart-app op, dan staat de knop er niet.
2Het menu is voor correcties, als een winkel verhuisd of dicht is.
Twee rijen uit de winkellijst. Zo ziet het er nu uit, opgenomen op 0.9.11.
Eén balk in plaats van losse meldingen
Stond je bij meerdere winkels waarvoor je nog geen kaart hebt, dan kreeg je daar tot nu toe
een losse melding per winkel voor. Dat is er nu nog maar één: een balk die
zegt hoeveel kaarten Stapel kent voor winkels waar je nu staat, en die opengaat als je
erop tikt. De winkelnaam werd in die rijen soms afgeknipt achter de knoppen ernaast, en
dat is rechtgezet.
Meer logo’s en meer kaarten
Er zitten 382 logo’s bij, van 238 naar 620, dus een keten zonder logo komt een stuk
minder vaak voor. Waar elk logo vandaan komt en onder welke voorwaarden het meekomt staat
in de app onder Licenties. De merkencatalogus gaat van 910 naar 927 rijen, waarvan dertien
Canadese kaarten: onder andere Aeroplan, SAQ Inspire, Journie Rewards, RONA VIPpro en
Guardian / I.D.A. Rewards. De streepjescode van die Canadese kaarten is een aanname en
geen meting, dus klopt er een niet, dan is dat te melden en wordt het rechtgezet.
Deze tekst staat er in jouw eigen taal
Tot en met 0.9.1 werd de "wat is er nieuw"-tekst alleen in het Nederlands en het
Engels geschreven. Vanaf deze release schrijft elke versie een blok in elke taal die de
winkelpagina spreekt, veertien op dit moment, afgeleid uit de landen die de app
ondersteunt. Het scherm "Over Stapel" in de app kiest hetzelfde blok op basis van
de taal van je toestel.
0.9.1 Gesloten test
Alleen voor testers · elf landen erbij
0.9.0 ging over de widget. Deze gaat over de kaart eronder: waar Stapel winkels kent, welke
klantenkaarten het herkent, en in welke taal het je aanspreekt. Oostenrijk, Ierland, Polen,
Canada, Australië, Nieuw-Zeeland, Zwitserland, Tsjechië, Slowakije, Mexico en
Argentinië komen erbij, samen goed voor 250.544 winkels. De winkeldatabase staat
daarmee op 1.213.080 winkels in 27 landen. Winkellijsten komen los van de app binnen, dus
hier hoef je geen update voor af te wachten.
Kaarten en talen
Zes van die landen kregen hun eigen klantenkaarten, met de coalitiekaarten die er het
meeste dekken — één kaart die bij tientallen ketens werkt. Mexico kwam
daarna: Spin Premia, dat bij OXXO en OXXO GAS werkt, Soriana YA!, Monedero del Ahorro en
Benavides Recompensas. Zwitserland ligt wel in de winkeldatabase maar heeft geen kaartrij,
en de reden daarvoor staat opgeschreven in plaats van stilgehouden. Verder spreekt Stapel
nu ook Pools, Tsjechisch en Slowaaks: zeventien talen, geen half vertaalde schermen.
Wat er lekte
Een kaart die je had gesloten, kon nog te zien zijn in het overzicht van recente apps.
Android maakt daar een schermafdruk voor op het moment dat je de app verlaat — precies
het moment waarop Stapel de kaart weer op slot doet. Dat is nu dicht op alle drie de
schermen waar een code staat: het kaartscherm, het deelscherm en het bewerkscherm. Het
vastzetten van een winkel schreef daarnaast je precieze GPS-positie mee in de tijdelijke
opslag van het scherm; daar staat nu helemaal geen positie meer in.
Kleinere dingen die opvielen
Zette je de systeemletter groter, dan knipte de brede widget de streepjescode aan de boven-
en onderkant af, omdat hij de ruimte voor zijn tekst in vaste eenheden rekende terwijl die
tekst meegroeit. Drukte je op "Nu bijwerken", liep je weg en kwam je terug, dan begon een
tweede druk een tweede download van hetzelfde land, tegelijk met de eerste; er start er nu
nog maar één. En op een drukke straat weigert de widget een winkel te noemen,
maar zette die winkel daarna wél als eerste chip neer. Dat gebeurt niet meer.
Wat hier niet is getest
Of Android de afdruk in het recente-apps-overzicht werkelijk achterhoudt, is het antwoord
van het besturingssysteem en niet van Stapel. De tests bewijzen dat Stapel het vraagt, op
beide manieren die Android sinds versie 8 kent, niet dat het lek daarmee dicht is. De
kleuren van de vier Mexicaanse kaarten komen van het app-icoon van de keten zelf; twee van
die vier sites laten geen enkele bezoeker binnen, ook geen gewone browser.
0.9.0 Gesloten test
Alleen voor testers · de widget is de kaart geworden
De widget liet zien welke kaart klaarlag. Nu is hij die kaart: de kleur van de keten, het
merkteken van de winkel, en de streepjescode zelf, groot genoeg om vanaf je startscherm te
laten scannen. De kleine widget is niet langer een blok van drie bij twee maar één rij van
rand tot rand. De brede widget toont de code van de kaart die klaarligt, met daaronder drie
chips in de kleur van hun eigen keten.
Codes die geen streepjes zijn
Een QR-code, een Aztec-code en een Data Matrix zijn vierkant, en een PDF417 is een blok van
gestapelde regels. Stapel rekte ze alle vier uit tot de vorm van een streepjescode, en zo
uitgerekt leest een scanner ze niet. Ze houden nu hun eigen vorm, op alle vier de plekken
waar Stapel een code laat zien. Rossmann geeft bovendien geen plastic pasje uit maar een
QR-code, terwijl Stapel er een EAN-13 neerzette: een symbool dat deze keten nooit heeft
gebruikt, en dat pas bij de kassa opviel.
De Verenigde Staten, en een land dat stilletjes ophield met bijwerken
De Amerikaanse ketenlijst gaat van 70 naar 200 ketens: van 134.902 naar 358.619 winkels, en
van 26 naar 64 procent van alles wat in de kaartgegevens een merknaam draagt. Winkellijsten
komen los van de app binnen, dus daar hoef je geen update voor af te wachten.
Een telefoon accepteerde tot nu toe hoogstens 200 ketens in één winkellijst, en Japan stond
op precies 200. Eén keten erbij en de telefoon wees de hele lijst af, hield wat er al stond,
en meldde de update als geslaagd. Zes van de andere vijftien landen zaten binnen 35 ketens
van die grens. De grens staat nu op 5.000.
Wat hier niet is getest
De widgets zijn op een emulator gemaakt en bekeken, niet op een echt toestel. Wat er gebeurt
met een widget die al op je startscherm staat als deze update binnenkomt, is daarmee niet
gemeten: een nieuw geplaatste kleine widget is één rij hoog, maar of een bestaande meekrimpt
bepaalt je launcher.
0.8.0 Gesloten test
Alleen voor testers · de winkellijst haalt nog maar op wat in de buurt is
Tot nu toe haalde je telefoon per land de hele winkellijst binnen. Heel Frankrijk, heel
Groot-Brittannië, alles. Dat is veel data voor winkels waar je nooit langsloopt, en het
werd erger bij elk land dat erbij kwam. Vanaf deze versie haalt Stapel per land alleen de
winkels op die binnen 25 kilometer van je liggen, plus een landelijke basislijst waarin elke
keten één keer voorkomt.
Ook de kant die minder goed uitpakt
Er is één geval dat slechter uitpakt: ga je een paar honderd kilometer verderop
zonder tussendoor bij te werken, dan heb je daar alleen de landelijke basislijst. Daarom
vertelt Stapel dat nu ook. Sta je ergens waar je winkelgegevens niet over gaan, dan zegt het
scherm dat, met een knop om ze meteen op te halen. Zeg je "niet nu", dan blijft dat zo totdat
er echt iets verandert.
Veel meer winkels
Groot-Brittannië stond op 12 ketens tegen bijna 1.600 in de kaartgegevens, en staat nu
op 190. Spanje ging van 69 naar 183. De Nederlandse lijst die in de app zelf meegeleverd
wordt ging van 36 naar 173, dus ALDI, Action, Zeeman en McDonald's zitten er nu gewoon in.
België ging van 62 naar 177, Italië van 75 naar 175 en Portugal van 60 naar 166.
In Frankrijk ontbraken ongeveer 3.400 tankstationwinkels doordat één
categorie niet werd gelezen.
Er kwamen zeven landen bij: Denemarken, Zweden, Noorwegen, Finland, IJsland, Brazilië
en Japan. Daarmee staat de teller op zestien. De app spreekt nu ook Deens, Fins,
IJslands, Japans, Noors en Zweeds, dus het is niet alleen de winkellijst die meekomt.
De lijst met landen was een platte opsomming van alles wat Stapel kent. Het eerste scherm
toont nu het land waar je bent, de landen waarvoor je al winkels hebt en de buurlanden; de
rest staat achter Meer landen, met een zoekveld dat een landnaam vindt in jouw taal, in het
Engels en in de taal van het land zelf.
Bijwerken ging altijd al alleen over wifi, maar dat stond nergens als keuze. Nu staat het
in Instellingen als een schakelaar die uit staat: laat je hem uit, dan wordt er niets
geweigerd, de download wacht gewoon op wifi. Één land loopt in de tientallen
megabytes, dus dat is een keuze die je zelf hoort te maken.
Het ziet er nu uit als een app
Stapel had geen type- en vormsysteem, en dat zag je. Dat is er nu, en daarmee zijn het
kaartscherm, de tegels, de lege schermen en het aankomstscherm opnieuw gedaan. Op de
Winkels-lijst staan de merktekens van de keten in plaats van overal hetzelfde blauwe
vierkant. Zoeken vindt nu ook op de naam van de keten en op de laatste vier cijfers van de
code.
Er is ook beweging en trilling bijgekomen, maar zo min mogelijk: een korte trilling als een
scan lukt, als je iets opslaat en als je een favoriet aanzet, en een langere voordat je een
kaart weggooit. Zet je in Android de animaties uit, dan speelt Stapel er geen enkele.
Het merk van een kaart kon je alleen bij het toevoegen kiezen. Nu kun je het bij het
bewerken ook veranderen of weghalen, en het scherm zegt erbij wat dat betekent: zonder merk
let aankomst voor die kaart op geen enkele winkel.
0.7.2 Gesloten test
Alleen voor testers · drie dingen die stil misgingen
"Nu bijwerken" antwoordde vaak met "Bijwerken geweigerd, de vorige winkellijst blijft
staan". Dat is woord voor woord de zin die je krijgt als een gedownload bestand niet
klopt, en er was niets mis. De meegeleverde Nederlandse lijst heeft nog geen kenmerk om
mee te vragen of er iets veranderd is, dus haalt de telefoon het hele bestand op en
vergelijkt daarna pas de versie. Was die gelijk, dan viel er niets te installeren, en
dat werd gemeld alsof het geweigerd was. Er staat nu dat de lijst al de nieuwste versie
was. Eén land dat al bij was verborg bovendien het nieuws van elk ander land.
Een winkel vastzetten die niet werd opgeslagen
Zei je ja op de vraag of Stapel een winkel bij je kaart mocht onthouden, dan verdween
het venster en werd het opslaan op dat moment tegelijk afgebroken. Of het schrijven het
haalde, hing van de timing af, en haalde het het niet, dan kwam er geen melding. Het
opslaan hangt nu aan het scherm eronder, dat blijft staan.
Een streepjescode die niet te tekenen was
Op het scherm dat verschijnt als je bij een winkel aankomt, stond bij zo'n kaart altijd
een leeg wit vlak boven de cijfers. Het scherm kon niet zeggen dat de code niet te
tekenen was, want "nog bezig" en "gaat niet lukken" zagen er hetzelfde uit. Nu staat er
dezelfde uitleg die het kaartscherm al gaf.
0.7.1 Gesloten test
Alleen voor testers · ruimte vrijmaken met bijwerken uit
Wat 0.7.0 bij het nalopen opleverde. Zet je bijwerken uit, dan gaan de schakelaars per
land op slot, en de knop "Opschonen" stond alleen bij Nederland. Wie Duitsland had
gedownload en daarna bijwerken uitzette, hield bijna zestigduizend winkels op de
telefoon zonder er nog iets aan te kunnen doen. De knop staat nu bij Nederland, en bij
elk ander land dat winkels op de telefoon heeft zolang bijwerken uit staat.
Een zin die niet meer klopte
Bij die knop hoort een bevestiging. De tekst voor andere landen dan Nederland bestond
al, en tot en met 0.6.0 was hij ook gewoon te zien: de knop stond toen nog bij elk land.
In 0.7.0 verdween hij overal behalve bij Nederland. Nu komt hij terug, maar alleen met
bijwerken uit, en daar klopte hij niet meer voor: er stond dat de winkels bij de
eerstvolgende keer bijwerken op wifi terugkomen, en die keer komt dan niet. De tekst is
in alle acht de talen herschreven.
Een land kwijtraken door weg te lopen
Opschonen wiste eerst de winkels en schreef daarna pas op dat het land er niet meer
stond. Liep je tijdens het wissen van het scherm weg, dan gebeurde alleen het eerste.
Het land was leeg terwijl Stapel dacht dat het bij was, en kwam daar nooit meer uit. De
twee stappen staan nu andersom, zodat de eerstvolgende keer bijwerken het rechtzet.
0.7.0 Gesloten test
Alleen voor testers · elk merk een logo
Deze versie gaat vooral over de twee lijsten die de app van buiten haalt: welke merken
Stapel kent, en waar hun winkels staan. In 0.6.0 werkten die lijsten zichzelf voor het
eerst bij, en dat maakte meteen zichtbaar wat er in stond. Bij 44 van de 230 merken
stond geen logo maar een gekleurde letter. In de winkellijst stond een tankstation twee
keer, en de winkel bij datzelfde tankstation stond er juist helemaal niet in. Daarnaast
kun je nu zelf kiezen hoe ver de winkellijst kijkt, en leest een telefoon die in mijlen
rekent voortaan ook mijlen.
12
1Een kaart zonder keten houdt een algemeen pictogram en de kleur die je zelf koos.
2Elke keten die Stapel kent draagt nu haar eigen logo. Je herkent de kaart aan hoe hij eruitziet, niet aan het lezen van de naam.
De portemonnee met zes kaarten. Zo ziet het er nu uit, opgenomen op 0.9.11.
Elk merk heeft nu een logo
230 merken, 44 zonder logo. Nu 231 merken en geen enkele zonder. Elk bestand dat
meegaat staat met zijn licentie in catalogue/logos/ATTRIBUTION.md; wat daar
niet in staat, gaat niet mee.
De volgorde waarin een logo wordt gezocht ligt vast: eerst Wikimedia Commons, waar de
licentie bij het bestand staat, dan de site van de keten zelf, en pas daarna iets wat met
de hand is aangeleverd, en dan alleen als erbij staat waarom het rechtenvrij is.
Één rij is weggehaald. AKO bestaat niet meer als winkelketen, dus een kaart
aanbieden voor een programma dat nergens meer werkt is geen dienst.
Biocoop droeg een jubileumbadge voor veertig jaar. Die badge veroudert, het merkteken
eronder niet.
TGJones
WHSmith verkocht in 2025 zijn winkels in de hoofdstraat en die heten sindsdien
TGJones. De stations en vliegvelden houden de naam WHSmith. Dat zijn nu twee merken in
Stapel, want het zijn twee bedrijven.
Van de ongeveer 470 TGJones-winkels staan er 216 in de winkellijst. De rest draagt in
de openbare kaartgegevens nog de oude naam, omdat iemand ter plaatse het bord moet hebben
zien veranderen. Die lijst werkt zichzelf maandelijks bij, dus die winkels komen erin
zonder dat er een nieuwe versie van de app voor nodig is.
Twee fouten in de winkellijst
Een tankstation stond er twee keer in. In de openbare kaartgegevens is een
tankstation vaak twee dingen op bijna dezelfde plek: de pompen, en de shop. Stapel zette
er twee spelden op de kaart, een paar meter uit elkaar. Nu wordt een shop binnen 125
meter van de pompen van dezelfde keten als dezelfde winkel gezien.
En de shop bij een tankstation stond er juist helemaal niet in. Een winkel kan in de
kaartgegevens meer dan één soort tegelijk zijn, gescheiden door een puntkomma:
shop=convenience;gas betekent gemakswinkel én tankstation. Stapel las
dat als één onbekende soort en gooide de winkel weg. Dat trof 3.372 shops bij
tankstations, verdeeld over 50 ketens.
Samen maken die twee de lijst korter en tegelijk vollediger. TotalEnergies in
Frankrijk ging van iets meer dan een derde van zijn stations naar bijna tweederde. In de
Verenigde Staten verdwenen ruim negenduizend dubbele rijen.
Hoe ver “in de buurt” is, kies je nu zelf
De winkellijst keek altijd tien kilometer ver. Dat werkt in Nederland, waar binnen tien
kilometer tientallen winkels staan. Het werkt niet in een land waar je overal heen
rijdt. Een tester in de Verenigde Staten kreeg een lege lijst: op het platteland van
Kansas staat binnen tien kilometer geen enkele winkel van een keten waarvan je een kaart
hebt, en binnen vijftig kilometer elf.
In de instellingen staat nu “Wat telt als in de buurt”, met tien,
vijfentwintig of vijftig kilometer. Tien blijft de standaard, dus wie niets aanraakt
merkt er niets van. Het verandert alleen de lijst: aankomstmeldingen houden hun eigen
bereik, want hoeveel plekken je telefoon tegelijk bewaakt is wat ze aan batterij kosten.
Mijlen waar mijlen horen
Stapel schreef elke afstand in kilometers, in alle acht talen, ook op een telefoon in de
Verenigde Staten of Groot-Brittannië. Die twee landen zitten sinds 0.6.0 in de app.
Een telefoon die in mijlen rekent leest nu mijlen, en voeten voor de laatste meters. De
komma in “1,5 km” volgde altijd het Nederlands, op elke telefoon in elke
taal; nu volgt hij de taal van de telefoon.
Verder in 0.7.0
Giant Food komt erbij, met 320 winkels aan de Amerikaanse oostkust.
Drieëndertig kaarten droegen een kleur die niet de kleur van het merk was.
Meestal kwam dat aan het licht toen het echte logo ernaast kwam te staan.
Drie logo’s waren wit op wit en dus onzichtbaar: U, Globus en JBC. Ze staan nu
op de merkkleur, waar ze horen. Voortaan wordt bij elke bouw nagemeten op welk vlak een
logo thuishoort.
De winkellijst gaat niet meer mee in de back-up van je telefoon. Hij is tientallen
megabytes groot en de app haalt hem toch opnieuw op, dus hij hoorde daar nooit te
staan.
In de instellingen staat elk land nu op één regel in plaats van op
drie.
Kotlin, Compose en de rest van het gereedschap zijn bijgewerkt, en de laatste zes
compilerwaarschuwingen zijn weg. Aan de app verandert dat niets.
0.6.0 Gesloten test
Alleen voor testers · de grens over
Stapel was een Nederlandse app die toevallig ook in België werkte. Deze versie maakt
er een app van die in negen landen werkt en acht talen spreekt. De helft van het werk zat
in het weghalen van aannames die nergens opgeschreven stonden, omdat ze in Nederland
altijd klopten: een postcode had de Nederlandse vorm, een land was één omtrek
dus Terschelling lag erbuiten, en een grens bestond niet dus Dover kon zich scherpstellen
op Calais.
Negen landen, acht talen
Nederland, België, Duitsland, Frankrijk, Spanje, Italië, Portugal,
Groot-Brittannië en de Verenigde Staten. Je zet per land aan of je de winkels ervan
wilt. Een land dat je niet aanzet kost je niets: geen download, geen ruimte, geen
batterij.
De Verenigde Staten zijn te groot voor één bestand. Dat land wordt in
stukken gepubliceerd en je telefoon haalt alleen de stukken in de buurt op, plus
één klein stuk dat elke keten één winkel geeft zodat de app ook werkt
voordat je telefoon weet waar hij is.
Nederlands, Engels, Duits, Frans, Italiaans, Spaans, Portugees en Braziliaans
Portugees. Alle teksten in elke taal, ook de foutmeldingen en de meldingen.
De code van een bon zit achter je vergrendeling
Een cadeaubon is geld: wie de code leest, kan hem uitgeven. Een bon is daarom
standaard gesloten en een klantenkaart standaard open, en je kunt dat per kaart
omzetten.
Gesloten betekent niet verborgen. De naam, de kleur, het saldo en de vervaldatum
blijven zichtbaar. Alleen de streepjescode en de code in cijfers vragen om je
vingerafdruk of pincode.
De lijsten werken zichzelf bij
De merkenlijst zat alleen in de app, dus een keten die haar spaarprogramma hernoemde
bleef onder de oude naam staan tot er een nieuwe versie in de winkel lag. Zes Nederlandse
programma’s zijn in 2025 of 2026 hernoemd. Stapel haalt die lijst nu één
keer per maand ondertekend op, langs dezelfde weg als de winkellijst: geen account, geen
extra toestemming, geen nieuwe server.
Draagt een kaart van jou de oude naam nog, dan gaat die mee. Heb je hem zelf een naam
gegeven, dan blijft die staan. Op het scherm Merken staat wanneer jouw lijst voor het
laatst is bijgewerkt.
De winkellijst kón zichzelf niet bijwerken. De telefoon deed het goede en
weigerde een bestand dat niet nieuwer was, maar de kant die publiceert zette het
versienummer nooit hoger, dus stond elke gepubliceerde lijst op versie 1. Rechtgezet: de
volgende winkellijst is de eerste die je telefoon ook echt installeert.
Verder in 0.6.0
Je kunt één kaart aan een andere telefoon geven via een QR-code op je
scherm, of als bestand. Dat gaat van telefoon naar telefoon, er komt geen server aan te
pas.
Een cadeaubon die je als pdf kreeg, importeer je nu zonder hem eerst af te drukken of
te fotograferen.
Sta je in een straat waar meerdere kaarten werken, dan krijg je één melding
in plaats van een melding die steeds van kaart wisselde. Loop je één winkel uit
terwijl je nog in een andere staat, dan verdwijnt de melding niet meer.
De app beweerde dat aankomstdetectie 1 tot 2 procent per dag kostte. Dat getal was
nooit gemeten en staat er niet meer, in geen enkele taal.
0.5.0 Gesloten test
Alleen voor testers · minder vragen stellen
Stapel vroeg te veel. Deze versie beantwoordt op twee plekken zelf wat de app eerder
vroeg terwijl hij het al wist: in welke winkel je staat als je scant, en welke kaart je
nodig hebt als je naar binnen loopt.
Een deel van wat hieronder staat zit al in 0.4.1, de versie die testers nu hebben. Die
release ging over één ding, de scanner die vastliep, en de rest kwam er zonder
aankondiging in mee. Daarom staat er hier bij welke versie wat heeft gedaan.
Wat al in 0.4.1 meekwam, zonder dat het ergens stond
De eerste keer opstarten vraagt niet meer om locatie, meldingen en aankomstdetectie
voordat er één kaart in staat. Aankomstdetectie bied je zelf aan als je hem
wilt, en hij staat nog steeds uit tot je hem aanzet.
Vier tabbladen zijn er drie geworden en vijf filters zijn er drie. “Bonnen”
is nu een filter in je kaartenlijst, met dezelfde vervaldatums en saldo’s als eerst.
“Soort” en “Codetype” zijn van het kaartscherm af. Codetype,
Kleur en Notitie zitten achter “Meer details” bij toevoegen en bewerken.
Een winkel die op de verkeerde plek staat kun je verplaatsen naar waar je staat. Die
correctie blijft op je telefoon en overschrijft de oorspronkelijke winkel niet.
Nieuw in 0.5.0
Scan je een kaart terwijl je in de winkel staat, dan vult Stapel het merk alvast in
en bevestig je met één tik. Alleen bij een keten waarvan de kaart een QR-code
is, en waar geen andere bekende winkel in de buurt ligt, bewaart hij hem meteen. Een
streepjescode uit het schap nooit: in een supermarkt lijkt die te veel op een
klantenkaart. De app vraagt tijdens het scannen nooit om je locatie.
Aankomstmeldingen kunnen de streepjescode op je vergrendelscherm zetten, op volle
helderheid, zonder te ontgrendelen. Dat staat uit tot je het zelf aanzet.
Op drie plekken stond er in woorden bij of iets aan of uit stond, naast een pijltje,
een schakelaar of een knop die dat al zei. Die woorden zijn weg. Voorleessoftware hoort
de stand nog steeds.
Wat de laatste ronde op een telefoon opleverde
Een bon zonder vervaldatum toonde een kalender met “geen vervaldatum”
ernaast, en daarnaast nog “onbeperkt geldig”. Nu staat er alleen
“onbeperkt geldig”. Met een datum blijft de kalender staan.
Vroeg je om een bon en typte je de code daarna zelf in, dan werd het toch een
klantenkaart. Nu blijft een bon een bon.
“Meer details” sprong bij handmatig toevoegen open zodra je begon te
typen. Het blijft nu dicht tot je het zelf opent.
De vraag of Stapel de kaart alvast mag klaarzetten zei altijd “Je hebt nu twee
kaarten”, ook boven een stapel van negen na het terugzetten van een back-up. Er
staat nu het echte aantal.
Dichtbij zonder bekende locatie zette onder zijn eigen uitleg ook nog het algemene
“niets gevonden”. Dat tweede blok is weg.
En wat de controle voor het uitbrengen daarna nog vond
De scanner mocht een kaart meteen bewaren zodra er één bekende keten om je
heen stond en de code bij het vastgestelde codetype van dat merk paste. Bij de grootste
supermarktketen is dat een gewone streepjescode, en die heeft elk product in het schap
ook. Een pak hagelslag kon zo als klantenkaart in je stapel komen. Nu vraagt Stapel het
bij zo’n code altijd.
Het venster dat vraagt of je een kaart die je al hebt nog eens wilt toevoegen, voegde
hem toe als je het wegtikte of op terug drukte. Nu voegen die twee niets toe.
Een tweede aankomstmelding liet de kaart van de eerste winkel staan. Nu wisselt hij
mee.
Op een lichte kaartkleur stond de naam in wit, op het kaartscherm en op het
vergrendelscherm. De kleur van de letters volgt nu de kaart.
Voorleessoftware las bij “Meer details” nog de oude naam voor. En de
privacypagina zei zeven toestemmingen, terwijl er in het scherm van Android tien staan.
De pagina noemt nu allebei de aantallen en waar de andere drie vandaan komen.
0.4.1 Gesloten test
Alleen voor testers · scannen werkt nu echt
In de release notes van 0.4.0 staat de zin “Scannen werkt gewoon”. Dat klopte
niet. In de versie die testers kregen sloot de app zichzelf zodra je “Kaart
scannen” opende. Niet op één telefoon, niet bij één soort
kaart: altijd, bij iedereen. Die zin blijft staan waar hij staat; deze release is de
correctie.
Wat er mis was
Voordat de app naar Play gaat wordt hij kleiner gemaakt: alles wat nergens gebruikt
lijkt te worden gaat eruit. De scannerbibliotheek van Google wordt echter niet op de
gewone manier aangeroepen, die zoekt zichzelf op aan de hand van een naam. Het
opschoongereedschap kon dat niet zien en haalde een stuk ervan weg. Dit zat niet alleen
in 0.4.0, maar in elke versie die ooit naar Play is gegaan. Dat het nooit gemeld is,
komt doordat niemand die versies ooit geopend heeft.
Wat eraan gedaan is
De scanner wordt met rust gelaten bij het opschonen, en een controle in de
bouwstraat laat de bouw mislukken als dit stuk er ooit opnieuw uit verdwijnt.
De app kon ook afsluiten als je hem opende via de snelkoppeling “Scannen”
of via een melding. Dat hing van de timing af, dus het gebeurde niet altijd, en het
raakte ook de melding die je krijgt als je een winkel binnenloopt.
Werk je bij naar 0.4.1, dan kun je gewoon scannen. Kaarten die je met de hand had
ingevoerd staan er nog.
0.4.0 Gesloten test
Alleen voor testers · de eerste versie die testers echt krijgen
De vorige versies stonden wel in Play, maar niemand kreeg ze onder ogen. Dit is de
eerste release die daadwerkelijk bij testers terechtkomt, en daarom is hij grondiger
nagelopen dan de vorige bij elkaar. Er is meer weggehaald dan bijgebouwd.
Wat er weg is
De scannerbibliotheek van Google stuurde uit zichzelf gegevens over je toestel naar
een server van Google zodra je de camera opende: merk en model, je provider, je land,
je taal en je tijdzone. Dat deed ik niet, maar het gebeurde wel in mijn app, en de
privacypagina beweerde ondertussen dat er geen analytics in zat. De officiële
manier om dat uit te zetten blijkt bij deze variant niet te werken, dus is het
onderdeel dat het versturen regelt uit de app gehaald. Gemeten: daarna wordt er niets
meer klaargezet. Scannen werkt gewoon, en een controle in de bouwstraat houdt het
eruit.
Wat er nieuw is
Een seintje dertig dagen voordat een bon verloopt of een betaald abonnement wordt
verlengd, zodat opzeggen mogelijk blijft. Dit staat aan; je kunt het uitzetten.
Een winkel die je zelf hebt vastgelegd kun je nu ook weer weghalen of opnieuw
vastleggen.
Een winkel die niet meer bestaat kun je melden, en die melding kun je terugdraaien
als je je vergist. Beide staan bij elkaar onder “Jouw correcties”.
Wat er stuk was
Het kleine widget liet nooit een kaart zien. Het toonde alleen iets bij aankomst in
een winkel, en aankomstdetectie staat standaard uit, dus in de praktijk bleef het
leeg.
Twee pictogrammen werden helemaal niet getekend: de map in Instellingen en het
greepje om kaarten te slepen. Op een echt toestel waren het lege plekken.
Een back-up terugzetten kon meer geheugen vragen dan een goedkope telefoon heeft.
Het bestand wordt nu stukje bij beetje gelezen.
Wat er niet klopte op deze website
De back-up werd op vier pagina’s “versleuteld” genoemd. Dat is hij
niet en is hij nooit geweest: het is gewone JSON, expres, zodat je hem over tien jaar
nog kunt openen. Het back-upscherm in de app zei dat al wel gewoon.
De functiepagina zei dat er geen merklogo’s in de app zitten. Er zitten er 119
in, ze staan aan, en ze komen van Wikimedia Commons onder vrije licenties.
De privacypagina noemde foto’s van je kaart als opgeslagen gegeven. Die
functie bestaat niet.
0.3.0 Gesloten test
Alleen voor testers · nog niet openbaar
Stapel kende tot nu toe alleen Nederlandse winkels. Wie in België tankt of in
Duitsland boodschappen doet, had niets aan de winkellijst. Nu kent Stapel er zes landen
bij, en je kiest zelf welke je downloadt.
Wat er nieuw is
Winkels in België, Duitsland, Frankrijk, Spanje, Italië en Portugal. Samen
ruim 164.000 winkels, naast de 9.152 Nederlandse die al in de app zitten.
130 buitenlandse spaarprogramma’s erbij, van Colruyt Xtra en PAYBACK tot
Cartão Continente. Waar één kaart bij meerdere ketens werkt, weet Stapel
dat: de Xtra-kaart geldt bij Colruyt, OKay, Bio-Planet, Spar, Dreamland en DATS 24.
Je kiest per land of je die winkels wilt. Alleen Nederland staat aan; de rest
download je zelf, alleen op wifi.
Kom je binnen twintig kilometer van een land dat je niet hebt gekozen, dan biedt
Stapel aan het alsnog te downloaden. Dit staat uit, en gaat alleen aan als je het zelf
aanzet.
Een land dat je niet meer nodig hebt, gooi je er weer uit. Wat dat aan ruimte
scheelt, staat erbij.
150 van de 179 ketens hebben nu hun eigen logo op de kaart, in plaats van het symbool
voor het soort winkel. Ze zitten in de app zelf, dus er wordt niets opgehaald om ze te
laten zien. Onder Instellingen staat per logo waar het vandaan komt en onder welke licentie
het valt.
Wat je niet merkt, en zo hoort
De app blijft Nederlands. Dit is voor Nederlanders die op reis zijn of in het
buitenland wonen, niet een vertaalde app voor het buitenland.
Stapel vraagt nog steeds nergens om een account, en stuurt nog steeds niets over jou
weg. Het downloaden van een land is een gewoon bestand ophalen, zonder dat er iets over
jou meegaat.
De grenscontrole gebeurt op je telefoon en alleen terwijl de app openstaat. Geen
achtergrondlocatie, geen nieuwe rechten.
0.2.0 Gesloten test
Alleen voor testers · nog niet openbaar
Tot nu toe kon een kaart alleen de app in via de camera, en eenmaal binnen stond alles
vast. Allebei niet meer.
Wat er nieuw is
Een kaart zelf intypen. Voor de kaart die te versleten is om te scannen, de code die
te klein gedrukt staat, of het nummer dat je ergens hebt opgeschreven. Typ je een keten
die Stapel kent, dan staan de kleur, het logo en het codetype er meteen bij.
Een kaart bewerken. Het potlood op de kaart opent naam, soort, code, codetype, kleur,
notitie en de velden die bij een bon of lidmaatschap horen.
Een code die niet te tekenen is, kun je niet opslaan. Stapel zegt wat er mis is:
“EAN-13 heeft 13 cijfers, je typte er 11.” Een kaart die niets laat zien,
faalt bij de kassa met de rij achter je.
Wat er is gerepareerd
Tikken op een aankomstmelding sloot de app af in plaats van de kaart te openen.
0.1.1 Gesloten test
Alleen voor testers · nog niet openbaar
Eén versie na de eerste, en meteen op de functie waar de app om draait.
Wat er is gerepareerd
Tikken op een aankomstmelding sloot de app af in plaats van de kaart te openen. De
code die op zo'n melding reageert begon te navigeren voordat het scherm waar ze naartoe
navigeert bestond. Dat ging goed tot de introductiewizard erbij kwam: sindsdien wacht dat
scherm eerst op een instelling die van schijf moet komen, en in dat gaatje van een
fractie van een seconde liep elke koude start vanaf een melding vast.
Wat er niet veranderd is
Verder niets. Geen nieuwe functies, geen nieuwe rechten, geen wijziging aan je
kaarten.
0.1.0 Gesloten test
Alleen voor testers · vervangen door 0.1.1
De eerste regel van het logboek staat er met opzet voordat er iets uit te brengen valt.
Wat er staat
De kaartopslag op het toestel: klantenkaarten, cadeaubonnen en lidmaatschappen,
met mappen en een eigen volgorde. Kaarten sleep je naar een andere plek of map.
Streepjescodes tekenen op het toestel, met een controle op de controlecijfers. Een
EAN-13 met een fout cijfer wordt geweigerd in plaats van scheef getekend, bij het
tekenen en bij het importeren.
De kaartenlijst en het kaartscherm, met een liggende weergave voor aan de kassa.
Scannen met de camera, met herkenning van de keten.
Importeren uit Catima en uit Apple Wallet, en een eigen back-up die je zelf
wegschrijft en weer terugzet.
Aankomstdetectie met meldingen als je bij een winkel staat, en winkels die je kunt
vastzetten.
Twee widgets, een tegel in de snelle instellingen en snelkoppelingen onder het
app-icoon.
De winkeldatabase: 9.153 winkels van 36 ketens uit OpenStreetMap, gecontroleerd
tegen gepubliceerde aantallen, ondertekend en byte-voor-byte reproduceerbaar. Cijfers
per keten staan op de winkeldatapagina.
De maandelijkse synchronisatie van die winkellijst.
De merkencatalogus: 49 Nederlandse ketens onderzocht, 39 met een spaar- of
lidmaatschapsprogramma, 43 met een logo.
Wat er nog niet staat
Schermafbeeldingen van de widgets. De schermen van de app zelf staan er echt op;
de widgetafbeeldingen op de functiepagina zijn nog
schetsen, en dat staat erbij.
De app is nog door niemand anders dan de maker gebruikt.
Wat ik al weet dat niet klopt
Van 488 winkels ken ik geen straatnaam en van 558 geen postcode.
Aankomstdetectie heeft daar geen last van, want die werkt op coördinaten. Zoeken
op postcode wel.
DA en Pets Place zijn de zwakste ketens in de database: ik vind 71% en 75% van
wat er volgens de gepubliceerde cijfers zou moeten staan. Etos zit op 94%, dat scheelt
ongeveer 29 winkels.
Albert Heijn komt op 118% uit. OpenStreetMap telt vestigingen mee die in de
Locatus-lijst als één punt staan. Te veel winkels is hier minder erg dan
te weinig, maar het is geen schoon cijfer.
Van de 49 ketens in de catalogus is het voorkeursformaat van de streepjescode bij
6 geverifieerd. Bij de andere 43 is het een aanname of een gok. Daarom is het
gedegradeerd tot een hint voor met de hand ingetikte nummers; wat de scanner meldt
wint altijd.
In de Play Store
Stapel staat in de Play Store. Gratis, zonder account, en je hoeft nergens voor op
een lijst te staan.