Prompt teardown: GPS, geheugen en Maps uit één enkele zin
Written by Dumè Siacci on
Niemand twijfelt er nog aan dat een AI capabele code kan genereren. De interessante vraag is wat een gegenereerde sectie werkelijk doet binnen je app — dus namen we een prompt en haalden we hem uit elkaar, regel voor regel.
Zeven woorden

Niemand twijfelt er nog aan dat een AI capabele code kan genereren — zelfs «vibe-coded» werkt het, soms heel goed. Dat is niet de interessante vraag. De interessante vraag is: wat doet die sectie, eenmaal gegenereerd, werkelijk binnen je app? Blijft ze een geïsoleerd blok in een hoekje, of benut ze wat het toestel en de app al kunnen? De eerlijkste manier om dat te beantwoorden is een prompt nemen en hem uit elkaar halen, regel voor regel.
Daarvoor is deze nieuwe reeks bedoeld. In elke aflevering nemen we een prompt uit de bibliotheek van de AI Extension Builder en halen we hem uit elkaar: waar hij het platform vertrouwt, waar hij het forceert, en wat de resulterende sectie echt kan. We beginnen met een van de voorbeeldprompts uit de bibliotheek: «waar heb ik geparkeerd».
Dit is de kortste prompt die je hiervoor zou kunnen schrijven:
Dat is alles. Eén zin, geen bestek. En dit komt eruit:
Een knop om je locatie op te slaan. Een sectie die dat punt terugvindt bij het heropenen van de app. Een knop om terug te keren naar de auto. Een discrete link om te wissen. En als je de locatie weigert, een scherm dat het uitlegt in plaats van te crashen.
De verrassing is niet dat zeven woorden een scherm tekenen. Het is dat deze sectie, geboren uit één zin, al de mogelijkheden van het toestel benut: ze leest het GPS, houdt een geheugen bij, opent Maps. Om geen van die drie dingen hebben we gevraagd.
Ze raakte de telefoon niet rechtstreeks — ze ging via de app

Hier komt wat telt, en het is makkelijk te missen. Om de GPS-locatie te krijgen, richt de sectie zich niet rechtstreeks tot de telefoon. Ze gaat via de app die haar herbergt.
Het is de app die de toegang tot het GPS bezit, en de sectie leent die. Het gevolg is eenvoudig en geruststellend: de sectie heeft geen eigen toestemming. Wat de app mag doen, erft ze; wat de app niet mag, kan de sectie niet forceren. En welke toestemmingen de app om te beginnen vraagt, beslis jij als maker van de app: je verklaart ze in het Privacy Center van de app. Een gegenereerde sectie blijft strikt binnen dat kader; ze opent geen achterdeur ernaast.
Dat is precies onze guardrails-filosofie: een gegenereerde sectie kan niets doen wat de app zelf niet toestaat. We laten je via een prompt geen grens overschrijden die je niet hebt besloten te openen. Dezelfde logica beheerst de andere twee mogelijkheden.
Het geheugen. De sectie vindt de opgeslagen locatie terug nadat je de app hebt gesloten en heropend. En om die persistentie hebben we niet gevraagd: het platform zet ze vanzelf op zodra een sectie gebruikersgegevens verwerkt. Sterker nog, het maakt onderscheid — een parkeerplek is een eenvoudig, persoonlijk, aan het toestel gebonden gegeven: daarvoor is geen database als Supabase nodig, opslag op het toestel volstaat, en dat is wat het kiest. Daarin zit de hele finesse: weten wanneer een echte backend nodig is en wanneer het toestel volstaat. Bewaren wat bewaard moet worden, op de juiste plek, is het standaardgedrag — geen vakje om aan te vinken.
Maps. De knop «terug naar de auto» tekent geen kaart binnen de sectie: ze opent de Maps-app van de telefoon, rechtstreeks op de juiste coördinaten. Een gegenereerde sectie is geen gevangene van haar eigen scherm; ze weet te delegeren aan wat de telefoon al goed doet.
Drie mogelijkheden — GPS, geheugen, Maps — en telkens hetzelfde principe: de sectie gaat niet alleen te werk, ze steunt op de app eromheen. Van buitenaf, voor de gebruiker en voor jou, is het één samenhangend geheel. Dat is het echte onderwerp van deze aflevering — niet het parkeren.
Het standaardgedrag is al het juiste
Wat dit eerste voorbeeld interessant maakt, is dat we om niets daarvan hebben gevraagd. We schreven niet «gebruik het native GPS», noch «bewaar de gegevens» of «open Maps». De sectie nam die wegen uit zichzelf, omdat het de wegen van het platform zijn.
Anders gezegd: goed gedrag verdien je niet met precisie in de prompt. Het is het vertrekpunt. Dus keert de interessante vraag om: kan een formulering je van dat goede pad afbrengen?
Dat kan. En daar wordt de lange prompt uit de bibliotheek leerzaam.
De enige plek waar de prompt uit het spoor raakt
De echte prompt van «waar heb ik geparkeerd», in de bibliotheek, is gedetailleerder. De meeste van zijn zinnen verrijken alleen wat we al zagen: een precies label, een tijdstempel «23 min geleden geparkeerd», een bevestigingsstap vóór het wissen. Niets wat de aard van de sectie verandert.
Behalve één regel. De prompt vraagt om een Google Maps-route, berekend vanaf de huidige positie tot de auto. En daar verlaat de sectie het geïntegreerde pad.
De reden heeft niets technisch: we noemden een specifieke dienst. Om «Google Maps» vragen is om Google Maps vragen — de online dienst, met zijn webadres — en niet om «een kaart», wat het platform die van de telefoon had laten openen. Dus ging de sectie die dienst buiten de app halen. En zoals elke sectie die een externe dienst aanspreekt, moest ze toestemming vragen: het platform toonde het domein google.com en wachtte op jouw akkoord voor ze het naar buiten liet. (Opnieuw de guardrails: niets verlaat het kader van de app zonder jouw uitdrukkelijke toestemming.)
We kregen precies waar we om vroegen. We verlieten ook de app richting het web en voegden een domein toe om goed te keuren. Het is geen bug en geen goed of slecht nieuws: het is een ruil, en die maak je beter met open ogen.
Vandaar de enige regel om uit deze aflevering te onthouden: beschrijf het resultaat dat je wilt, niet hoe je het krijgt. De korte versie, die alleen «terug naar de auto» zei, liet het platform kiezen — en het opende de Maps van de telefoon, zonder ergens buiten iets te halen. Je noemt een specifieke dienst of technologie alleen wanneer je een reden hebt die het platform niet kan kennen.
De hele prompt
Als je liever van de volledige versie uitgaat en die aanpast, hier is ze — die uit de bibliotheek, één klik verwijderd in de AI Extension Builder:

Jouw beurt
Het leerzaamste is niet deze prompt kopiëren, maar hem verbuigen. Vervang de auto door een fiets, een kampeerplek, een marktkraam. Haal de Google Maps-regel weg en kijk hoe de sectie uit zichzelf terugkeert naar de Maps van de telefoon. Verander «23 min geleden geparkeerd» in iets anders en zie het formaat volgen.
De bibliotheek heeft er meer om op dezelfde manier uit elkaar te halen: een deelbare filmquiz, een speelbare Flappy Bird-kloon met ranglijst, of een sectie die met je eigen bestanden werkt.
De AI Extension Builder is in beta, open voor iedereen.
FAQ
Kan een door AI gegenereerde app-sectie het GPS van de telefoon gebruiken?
Ja. Niet rechtstreeks: ze gaat via de app die haar herbergt en erft de locatietoestemming van die app.
Vraagt de sectie een eigen locatietoestemming aan?
Nee. Ze steunt op die van de app. Heeft de app toegang, dan leent de sectie die; heeft de app die niet, dan kan de sectie ze niet forceren.
Kan een gegenereerde sectie gegevens bewaren nadat de app gesloten is?
Ja. Het platform zet die persistentie op zodra een sectie gebruikersgegevens verwerkt, en kiest het juiste niveau: opslag op het toestel voor een eenvoudig gegeven, een echte backend wanneer het nodig is.
Kan een gegenereerde sectie Maps openen?
Ja. Ze opent de Maps-app van de telefoon, rechtstreeks op de gewenste coördinaten.
Hoe schrijf je een goede prompt voor een app-sectie?
Beschrijf het resultaat dat je wilt, niet hoe je het krijgt. Het platform kiest dan het meest geïntegreerde pad. Noem een specifieke dienst of technologie alleen als je daar een bijzondere reden voor hebt.
Ontwerp