Prompt teardown: GPS, memória e Maps a partir de uma única frase
Escrito por Dumè Siacci na
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

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 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:
É 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

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 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:

É 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, um clone jogável de Flappy Bird com classificação, ou uma secção que usa os teus próprios ficheiros.
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.
Design