---
title: "Prompt teardown: GPS, memória e Maps a partir de uma única"
description: "Já ninguém duvida de que uma IA consiga gerar código capaz — mesmo «vibe-coded», funciona, às vezes muito bem. Não é essa a pergunta interessante. A pergunta in"
canonical_url: "https://pt.goodbarber.com/blog/prompt-teardown-gps-memoria-e-maps-a-partir-de-uma-unica-frase-a1304/"
lang: pt
date: 2026-07-21
last_updated: 2026-07-21
---

# Prompt teardown: GPS, memória e Maps a partir de uma única

[Voltar](/blog/make-it-r19/)

# Prompt teardown: GPS, memória e Maps a partir de uma única frase

Escrito por [Dumè Siacci](https://pt.goodbarber.com/blog/author/dominique-siacci/)  na Terça-Feira 21 Julho 2026

## Já ninguém duvida de que uma IA consiga gerar código capaz. A pergunta interessante é o que faz realmente uma secção gerada dentro da tua app — por isso pegámos num prompt e desmontámo-lo, linha a linha.

## Sete palavras

![](https://cmsphoto.ww-cdn.com/superstatic/121801/art/grande/97419130-67846667.jpg?v=1784628745.576468)

Já ninguém duvida de que uma IA consiga gerar código capaz — mesmo «vibe-coded», funciona, às vezes muito bem. Não é essa a pergunta interessante. A pergunta interessante é: uma vez gerada, o que faz realmente essa secção **dentro da tua app**? Fica como um bloco isolado a um canto, ou aproveita o que o dispositivo e a app já sabem fazer? A forma mais honesta de responder é pegar num prompt e desmontá-lo, linha a linha.

É para isso que serve esta nova série. Em cada episódio pegaremos num prompt da biblioteca do [AI Extension Builder](https://pt.goodbarber.com/extensions/ai-extension-builder/) e desmontá-lo-emos: onde confia na plataforma, onde a força, e o que sabe fazer de facto a secção resultante. Começamos com um dos prompts de exemplo da biblioteca: «onde estacionei».

Este é o prompt mais curto que poderias escrever para isto:

Build a "remember where I parked" helper.

É tudo. Uma frase, não um caderno de encargos. E eis o que sai:

Um botão para guardar a tua localização. Uma secção que reencontra esse ponto ao reabrir a app. Um botão para voltar ao carro. Um link discreto para apagar. E, se recusares a localização, um ecrã que o explica em vez de falhar.

A surpresa não é que sete palavras desenhem um ecrã. É que esta secção, nascida de uma frase, **já aproveita as capacidades do dispositivo**: lê o GPS, guarda uma memória, abre o Maps. Não pedimos nenhuma destas três coisas.

## Não tocou no telefone diretamente — passou pela app

![](https://cmsphoto.ww-cdn.com/superstatic/121801/art/grande/97419130-67846668.jpg?v=1784628747.1884878)

Eis o que importa, e é fácil deixá-lo escapar. Para obter a localização GPS, a secção não se dirige diretamente ao telefone. Passa pela app que a aloja.

É a app que detém o acesso ao GPS, e a secção pede-o emprestado. A consequência é simples e tranquilizadora: a secção **não tem uma permissão própria**. O que a app pode fazer, ela herda; o que a app não pode fazer, a secção não o consegue forçar. E que permissões a app pede, à partida, decides tu como criador da app: declara-las no [Privacy Center](https://pt.goodbarber.com/blog/o-privacy-center-transparencia-e-confianca-no-centro-de-seus-aplicativos-a1189/) da app. Uma secção gerada mantém-se estritamente dentro desse enquadramento; não abre nenhuma porta das traseiras ao lado.

É exatamente a nossa filosofia de guardrails: uma secção gerada não pode fazer nada que a própria app não permita. Não te deixamos atravessar, através de um prompt, um limite que não decidiste abrir. A mesma lógica governa as outras duas capacidades.

**A memória.** A secção reencontra a localização guardada depois de teres fechado e reaberto a app. E essa persistência não a pedimos: a plataforma coloca-a a funcionar por si só assim que uma secção lida com dados do utilizador. Melhor ainda, sabe distinguir — a localização de um estacionamento é um dado simples, pessoal, ligado ao dispositivo: não é preciso uma base de dados como o Supabase para isto, basta um armazenamento no dispositivo, e é o que escolhe. Está aqui toda a subtileza: saber quando é preciso um verdadeiro backend e quando basta o dispositivo. Guardar o que deve ser guardado, no sítio certo, é o comportamento por omissão — não uma caixa a assinalar.

**Maps.** O botão «voltar ao carro» não desenha um mapa dentro da secção: abre a app Maps do telefone, diretamente nas coordenadas certas. Uma secção gerada não é prisioneira do seu ecrã; sabe delegar naquilo que o telefone já faz bem.

Três capacidades — GPS, memória, Maps — e de cada vez o mesmo princípio: a secção não age sozinha, apoia-se na app que a rodeia. De fora, para o utilizador e para ti, é um único objeto coerente. É esse o verdadeiro tema deste episódio — não o estacionamento.

## O comportamento por omissão já é o certo

O que torna este primeiro exemplo interessante é que não pedimos nada disso. Não escrevemos «usa o GPS nativo», nem «guarda os dados», nem «abre o Maps». A secção seguiu esses caminhos sozinha, porque são os da plataforma.

Por outras palavras: o bom comportamento não se conquista à força de precisão no prompt. É o ponto de partida. Assim, a pergunta interessante inverte-se: **pode uma formulação tirar-te desse bom caminho?**

Pode. E é aí que o prompt longo da biblioteca se torna instrutivo.

## O único sítio onde o prompt sai dos carris

O verdadeiro prompt de «onde estacionei», na biblioteca, é mais detalhado. A maior parte das suas frases apenas enriquece o que já vimos: uma etiqueta precisa, uma marca temporal «estacionado há 23 min», um passo de confirmação antes de apagar. Nada que mude a natureza da secção.

Exceto uma linha. O prompt pede um percurso do **Google Maps**, calculado da posição atual até ao carro. E aí, a secção sai do caminho integrado.

A razão não tem nada de técnico: nomeámos um serviço concreto. Pedir «Google Maps» é pedir o Google Maps — o serviço online, com o seu endereço web — e não «um mapa», que teria deixado a plataforma abrir o do telefone. Por isso a secção foi buscar esse serviço fora da app. E como qualquer secção que recorre a um serviço externo, teve de pedir autorização: a plataforma mostrou o domínio google.com e esperou o teu aval antes de a deixar sair. (De novo, os guardrails: nada sai do enquadramento da app sem o teu consentimento explícito.)

Obtivemos exatamente o que pedimos. Também saímos da app para a web e acrescentámos um domínio a aprovar. Não é um bug nem uma boa ou má notícia: é uma troca, e convém fazê-la de olhos abertos.

Daí a única regra a reter deste episódio: **descreve o resultado que queres, não como o obter.** A versão curta, que dizia apenas «voltar ao carro», deixou a plataforma escolher — e abriu o Maps do telefone, sem ir buscar nada lá fora. Só se nomeia um serviço ou uma tecnologia concreta quando se tem uma razão que a plataforma não pode conhecer.

## O prompt completo

Se preferires partir da versão completa e modificá-la, aqui está — é a da biblioteca, a um clique no AI Extension Builder:

Build a "remember where I parked" helper. Show a big primary button labeled "Save my parking spot" that captures the device's current GPS coordinates and stores them persistently on the device. Once a location is saved, swap the UI to show the saved coordinates, a timestamp ("Parked 23 min ago"), and a second button "Find my car" that opens Google Maps directions from the user's current location to the saved spot. Include a discreet "Clear" link to forget the saved location. Handle the no-permission case gracefully with an explanation.

![Remember where I parked](https://assets.ww-cdn.com/blog/where_I_parked.gif)

## É a tua vez

O mais instrutivo não é copiar este prompt, é torcê-lo. Troca o carro por uma bicicleta, um lugar de campismo, uma banca de mercado. Tira a linha do Google Maps e observa a secção voltar sozinha ao Maps do telefone. Muda «estacionado há 23 min» por outra coisa e vê o formato acompanhar.

A biblioteca tem mais para desmontar da mesma forma: um [quiz de filmes para partilhar](https://pt.goodbarber.com/blog/roube-esta-ideia-um-quiz-de-filmes-criado-com-ia-que-a-sua-audiencia-vai-mesmo-compartilhar-a1303/), um [clone jogável de Flappy Bird com classificação](https://pt.goodbarber.com/blog/crie-um-jogo-com-classificacao-na-sua-app-sem-programar-a1299/), ou uma secção que [usa os teus próprios ficheiros](https://pt.goodbarber.com/blog/ai-extension-builder-carrega-os-teus-ficheiros-a1294/).

O AI Extension Builder está em beta, aberto a toda a gente.

## FAQ

**Uma secção gerada por IA pode usar o GPS do telefone?**

Sim. Não diretamente: passa pela app que a aloja e herda a permissão de localização dessa app.

**A secção pede a sua própria permissão de localização?**

Não. Apoia-se na da app. Se a app tem acesso, a secção pede-o emprestado; se a app não o tem, a secção não o consegue forçar.

**Uma secção gerada pode conservar dados depois de a app fechar?**

Sim. A plataforma coloca essa persistência a funcionar assim que uma secção lida com dados do utilizador, e escolhe o nível certo: armazenamento no dispositivo para um dado simples, um verdadeiro backend quando é preciso.

**Uma secção gerada pode abrir o Maps?**

Sim. Abre a app Maps do telefone, diretamente nas coordenadas que quiseres.

**Como se escreve um bom prompt para uma secção de app?**

Descreve o resultado que queres, não como o obter. A plataforma escolhe então o caminho mais integrado. Só nomeia um serviço ou uma tecnologia concreta se tiveres uma razão específica para o fazer.

![Dominique Siacci](https://blog.goodbarber.com/_public/profile/ca/ca3512f4dfa95a03169c5a670a4c91a19b3077b4-default.jpg)

Sobre o autor[Dominique Siacci](https://pt.goodbarber.com/blog/author/dominique-siacci/)CTO

Co-fundador e CTO da GoodBarber. Conduzo a visão técnica do produto: arquitetura, infraestrutura e, mais recentemente, a integração da IA no coração da plataforma. Developer de alma, mantenho-me próximo do código e das decisões de engenharia que permitem a milhares de utilizadores da GoodBarber publicarem as suas apps sem escrever uma única linha de código.

[Saiba mais](https://pt.goodbarber.com/blog/author/dominique-siacci/)

[![LinkedIn](https://portal.ww-cdn.com/portal_static/svg/base2021/linkedin.3ed8162e2a2b.svg)](https://fr.linkedin.com/in/dsiacci/)[![X](https://portal.ww-cdn.com/portal_static/svg/base2021/x.820492c586dd.svg)](https://twitter.com/dsiacci)[![Facebook](https://portal.ww-cdn.com/portal_static/svg/base2021/fb.be37c82b8283.svg)](https://www.facebook.com/dsiacci)
