Pular para o conteúdo
SEXTA-FEIRA, OUTUBRO 30, 2026NOTÍCIAS DE TECNOLOGIA INDEPENDENTES, ANÁLISES & GUIAS PRÁTICOS
SOBRE
ÚLTIMAS /

O MacBook Pro OLED chegou: burn-in, toque, a ausência do Apple Pencil e se o PROLED XDR vale a pena (2026)

LEIA O GUIA
DESENVOLVIMENTO DE SOFTWARE & APLICATIVOSGM / 803

Como criar um app do zero com IA em 2026: Figma, OpenCode v2, MiniMax M3.1 e a história do Stash

Como criar um app do zero com IA: Figma, OpenCode v2, MiniMax M3.1 e a App Store, com duas telas do Stash no iPhone
Como criar um app do zero com IA: um fluxo de trabalho do briefing ao Figma, o servidor MCP do Figma, OpenCode v2 com MiniMax M3.1 e depois Git, build, TestFlight e a App Store
Tudo neste artigo aconteceu em quatro meses e meio, e sete destas nove datas caem nas últimas cinco semanas

Toda casa tem uma gaveta que engole coisas. Chaves, o carregador reserva, o passaporte que você precisa duas vezes por ano. Você guarda algo ali “para segurança”, e três meses depois está de joelhos, esvaziando um armário inteiro no chão. Este é um guia completo para criar um app do zero com IA em 2026, contado pelo app que fiz para resolver essa gaveta.

O Stash é minha resposta para essa gaveta. É um app pequeno e tranquilo para iPhone e iPad: você fotografa o lugar onde guardou algo, dá um nome e um cômodo, e quando precisa de novo, busca. A ideia é exatamente essa. Ele entrou no ar na App Store em 23 de setembro de 2026. É grátis e não tem anúncios.

Não venho de uma formação em programação. Tudo o que construo, construo com agentes de IA, e ao longo do último ano as ferramentas para isso passaram de “demo bonita” para “dá para colocar isso no ar de verdade”. Então este guia é prático antes de tudo: cada passo de uma pasta vazia até uma listagem ativa na App Store, com o Stash como exemplo trabalhado do começo ao fim.

A stack é a que eu entregaria para qualquer pessoa que comece hoje. Figma para o design. OpenCode v2 como o agente de código. MiniMax M3.1 como o modelo que faz o raciocínio (a rigor M3.1-Flash-Preview, lançado em 27 de setembro, e vou explicar por que essa distinção importa). Depois, tudo o que nunca entra nos tutoriais do YouTube: o backend, a política de privacidade, o App Store Connect, as capturas de tela, a revisão, a landing page, as páginas legais e quanto tudo isso custa.

Tudo aqui foi conferido na documentação oficial, nas notas de versão e na própria App Store em 5 de outubro de 2026. Parte disso estará desatualizada em poucas semanas. O novo modelo da MiniMax é uma prévia, o OpenCode lança quase todo dia e a Figma ainda está decidindo quais agentes de código podem se conectar ao servidor MCP dela. Sinalizei as partes voláteis ao longo do texto.

Divulgação: O Stash é meu app, publicado pela minha empresa, Graham Miranda UG. É grátis, sem anúncios e sem compras dentro do app. Este artigo não contém links de afiliados. A MiniMax, a equipe do OpenCode na Anomaly, a Figma, a Apple, o Google e a Expo não patrocinaram, revisaram nem aprovaram este texto.


TL;DR — A versão em 60 segundos

  • Você pode criar um app de verdade do zero com IA em 2026, mas “do zero” agora significa decisões, não digitação. O agente escreve o código. Você é dono do briefing, do design, do modelo de dados, da história de privacidade, dos testes e da papelada da App Store.
  • A stack: Figma (telas e variáveis de design) → OpenCode v2 (agente de código aberto, licença MIT) → MiniMax M3.1-Flash-Preview (janela de contexto de 1M de tokens, lê texto, imagens e vídeo, cinco níveis de esforço) → um build com Expo ou Xcode → TestFlight → a App Store. Firebase se você precisar de contas e sincronização.
  • “MiniMax M3.1” hoje significa M3.1-Flash-Preview. Foi lançado em 27 de setembro de 2026 e está disponível apenas pela assinatura M Plan da MiniMax (US$ 22, US$ 55 ou US$ 132 por mês, com 50% de desconto no primeiro mês na cobrança mensal até 14 de outubro) e pelo app MiniMax Code. Não há preço por token, nem pesos abertos, nem benchmark publicado ainda. O Thinking não pode ser desligado, e o esforço fica no máximo por padrão.
  • Funciona no OpenCode v2 sem arquivo de configuração: /connect → “MiniMax Token Plan (minimax.io)” → cole sua chave de assinatura → /models → MiniMax-M3.1-Flash-Preview.
  • A pegadinha da Figma que ninguém menciona: O servidor MCP remoto da Figma ainda não aceita o OpenCode. Durante o beta, funciona apenas com lista de permitidos (allowlist). Use o servidor MCP desktop da Figma em 127.0.0.1:3845 em vez disso (ele precisa do app desktop do Figma e de uma licença Dev ou Full paga, a partir de US$ 12 por mês), ou entregue ao agente os frames exportados, que o M3.1 consegue ler.
  • Publicar é um projeto à parte: US$ 99 por ano pelo Apple Developer Program (€ 99 na Alemanha), builds feitas com Xcode 26 ou mais recente, uma política de privacidade, rótulos de privacidade que correspondam à realidade, exclusão de conta dentro do app se você oferece contas, e dados de comerciante da UE. A Apple diz que 90% das submissões são analisadas em até 24 horas.
  • O Stash em números: no ar desde 23 de setembro de 2026, versão 1.0.1 com um novo design em 2 de outubro, grátis, iOS e iPadOS 16.4 ou posterior, cerca de 64 MB, sem rastreamento, e um modo visitante que mantém tudo no aparelho.
  • Quanto custa: sobre US$ 363 no primeiro ano na configuração enxuta (assinatura da Apple mais M Plan Go), cerca de US$ 500 com uma licença Dev do Figma. Os custos de backend começam em zero nas cotas gratuitas do Firebase.
  • A regra que mais importa: “pronto” é uma afirmação, não um fato. Rode o app num celular de verdade, em modo avião, em modo escuro, com o VoiceOver ligado. Depois, acredite.

A stack em resumo

CamadaFerramentaPapel neste fluxo de trabalhoCusto (outubro de 2026)
DesignFigmaTelas, componentes, variáveis de cor e tipografia, protótipo clicávelPlano Starter gratuito; uma licença Dev a partir de US$ 12/mês libera o servidor MCP desktop
Ponte entre design e códigoServidor MCP da Figma (desktop)Entrega frames, variáveis e capturas de tela ao agenteIncluído no assento
Agente de códigoOpenCode v2Planeja, edita arquivos, executa comandos e testes; terminal, app de desktop ou dentro do Xcode 27Grátis, licença MIT
ModeloMiniMax M3.1-Flash-PreviewO cérebro que planeja e escreve código; lê capturas de tela e gravações de telaM Plan a partir de US$ 22/mês
Framework do appExpo SDK 56 (iPhone + Android) ou SwiftUI com Xcode 27 (só Apple)O app em siGrátis; o nível gratuito do Expo inclui 15 builds na nuvem para iOS e 15 para Android por mês
BackendFirebase (Auth, Firestore, Storage, Functions, Messaging)Contas, sincronização, armazenamento de fotos, notificaçõesCotas grátis; o Storage e as Functions exigem o plano Blaze, de pagamento por uso
DistribuiçãoApp Store Connect + TestFlightTestes beta, revisão, lançamentoUS$ 99/ano Apple Developer Program
LançamentoUma landing page estática e páginas legaisExplicar, demonstrar, cumprirO que custar sua hospedagem

Os preços são de tabela em 5 de outubro de 2026, sem IVA. Os termos das assinaturas mudam com frequência, então confira antes de comprar.


Índice


Parte 1 — Conheça o Stash: o app em torno do qual este guia é construído

Antes das ferramentas, o exemplo. Um guia para criar apps vale tanto quanto o app que ele constrói, então aqui está exatamente o que o Stash é, usando o próprio anúncio na App Store e a política de privacidade, e não meu entusiasmo.

O anúncio abre com uma linha que resume o trabalho: “Nunca mais desmonte a casa procurando alguma coisa.” Depois, explica o produto inteiro em três frases: “O Stash é a forma mais rápida de lembrar onde você colocou as coisas. Tire uma foto, escolha o cômodo, salve. É o app inteiro.”

Essa última frase é o briefing do design. Tudo no app ou torna o salvar mais rápido ou torna o encontrar mais rápido. O que não faz nenhum dos dois não tem lugar.

O que o Stash faz

RecursoO que ele fazPor que isso importa
Foto do lugarVocê fotografa a gaveta, a prateleira ou a caixa, não o objetoVocê lembra de lugares visualmente; uma foto do lugar é a memória
Nome, cômodo, local exato, observação“Chaves de casa · Corredor · gaveta de cima · na tigela de cerâmica à esquerda”Quatro campos curtos vencem um texto livre que você nunca vai conseguir buscar direito
Notas de voz, transcritasGrave uma nota rápida; o Stash transforma em texto pesquisávelMais rápido que digitar quando você está com as mãos ocupadas
BuscarPor nome do item, cômodo, observação ou pelas palavras que você gravou, com um filtro para itens que têm fotoO ponto central do app é o momento em que você precisa de algo
CômodosNavegue pela sua casa um cômodo por vezPara quando você não lembra o nome, só mais ou menos onde
“Achei”Um toque quando você recupera o itemFecha o ciclo
LembretesItens sazonais reaparecem quando você precisa delesPneus de inverno, as luzes de Natal, o equipamento de camping
WidgetsWidgets da Tela de Início e da Tela de BloqueioDois toques de “preciso lembrar disso” até salvo
Offline, depois sincronizaFunciona sem sinal; sincroniza entre iPhone e iPad quando você tem uma contaPorões e garagens têm sinal péssimo
AparênciaClaro, escuro ou seguir o sistemaContinua tranquilo às 23h também
Exportar e excluirExporte seus itens; exclua sua conta em ConfiguraçõesSeus dados continuam seus, e a Apple exige a segunda opção

Como é a aparência

A direção visual é deliberadamente silenciosa: um fundo branco-sujo quente, um verde-floresta profundo, um único toque de coral, títulos com serifa e uma fonte sem serifa simples para todo o resto. As capturas de tela da App Store contam a história em seis manchetes: Tudo tem um lugar. Encontre. Em segundos. Salve o lugar. Sua casa. Cômodo por cômodo. Lembre os pequenos detalhes. Nítido. Em qualquer luz.

Mostrar imagem O Stash no iPhone: salve o lugar, encontre em segundos, navegue cômodo por cômodo. Claro e escuro, a mesma calma.

Quatro capturas de tela do Stash no iPhone: Início com chaves de casa salvas recentemente, resultados de busca por chaves, a tela Adicionar e a grade de ambientes no modo escuro
O Stash no iPhone: salve o lugar, encontre em segundos, navegue cômodo por cômodo. Claro e escuro, a mesma calma.

Como ele trata seus dados

Isso importa mais do que qualquer recurso, então vou citar a política de privacidade em vez de parafraseá-la:

  • Modo visitante: “Se você não criar uma conta, seus cômodos, itens, fotos e notas de voz ficam no seu aparelho e não são enviados.”
  • Com uma conta: a sincronização e o backup rodam no Google Firebase (Authentication, Cloud Firestore, Cloud Storage, Cloud Functions e Cloud Messaging), com regras de segurança que mantêm os dados de cada usuário isolados.
  • Nenhum modelo de negócio construído sobre você: “Não exibimos anúncios, não fazemos rastreamento publicitário ou de analytics, não criamos perfis de usuário e não vendemos seus dados.”
  • Notas de voz: transformar uma gravação em texto pesquisável pode usar o serviço de fala embutido no celular (o da Apple, no iOS).
  • Exclusão: exclua sua conta em Configurações ou por um formulário na web; as cópias são removidas dos backups em até 30 dias.

Se você leu meu artigo sobre por que o software local-first está voltando, você vai reconhecer a filosofia. O aplicativo deve funcionar perfeitamente sem a nuvem. A nuvem é uma conveniência que você escolhe usar.

O quadro de fatos

Nome na App StoreStash — Find It Fast
SubtítuloEncontre qualquer coisa que você guardou
Primeiro lançamento23 de setembro de 2026 (versão 1.0)
Versão atual1.0.1, lançada em 2 de outubro de 2026: “Novo design e correções de bugs.”
PreçoGrátis, sem compras dentro do aplicativo
ExigeiOS ou iPadOS 16.4 ou posterior; também roda em Macs com Apple silicon e no Apple Vision Pro como app de iPad
TamanhoCerca de 64 MB
CategoriaProdutividade (também listado em Utilidades)
Classificação etária4+
DesenvolvedorGraham Miranda UG (haftungsbeschränkt), Blankenburg (Harz), Alemanha
Sitestash.grahammiranda.network, em dez idiomas, com uma demonstração no navegador
DownloadStash na App Store

O que não está no aplicativo (ainda)

O site tem uma seção chamada Explorações de design com três ideias: fixar o local exato em uma foto, Quick Move para quando o lugar de um item muda, e caixas e etiquetas para você ver o que tem dentro de uma caixa sem abri-la. O site deixa claro que “essas ideias estão no conceito interativo, não são recursos da versão lançada na App Store.”

Gosto dessa separação e recomendo a qualquer pessoa que esteja fazendo seu primeiro aplicativo. Explore à vontade em um protótipo. Lance só o que funciona. Sua página na App Store nunca deve prometer o que o binário não faz. Os revisores da Apple verificam, e quem dá uma estrela também.

Por que esse é um bom formato para um primeiro aplicativo

Se você está lendo isto porque quer fazer seu próprio aplicativo, copie o formato do Stash mesmo que não se importe com chaves perdidas:

  • Um ciclo central. Guardar, depois encontrar. Todo o resto sustenta esse ciclo.
  • Dados que começam no dispositivo. Nenhum servidor é necessário no primeiro dia, então você pode lançar antes de construir um backend.
  • Alguns recursos reais da plataforma. Câmera, microfone, notificações e widgets são a quantidade certa de “nativo” para aprender sem se afogar.
  • Uma nuvem opcional. Contas e sincronização podem chegar na versão dois sem reescrever a versão um.
  • Sem feed, sem chat, sem pagamentos. Cada um desses é um projeto próprio, com seus próprios modos de falha.

Um agente de IA consegue construir quase tudo o que você descreve. A parte difícil é descrever algo pequeno o suficiente para terminar.


Parte 2 — A stack de 2026 para criar um app do zero com IA

Três ferramentas, três funções separadas:

  1. O Figma decide como o aplicativo é.
  2. O OpenCode decide como o trabalho é feito: quais arquivos ler, quais comandos executar, o que perguntar a você antes de fazer algo arriscado.
  3. O MiniMax M3.1 faz o raciocínio dentro do OpenCode: planejar, escrever código, ler capturas de tela, corrigir o que quebrou.

Manter essas funções separadas é a decisão de arquitetura mais importante deste guia inteiro, e não tem nada a ver com código. Quando um modelo melhor aparecer no mês que vem (e vai aparecer), você troca uma linha em um arquivo de configuração. Quando uma ferramenta de design melhor aparecer, seu agente não se importa. Nada fica soldado.

Por que o OpenCode v2 é o agente

O OpenCode é um agente de codificação com IA de código aberto sob a licença MIT. Você aponta ele para uma pasta de projeto, descreve o que quer, e ele trabalha como um desenvolvedor: lê o código, faz um plano, edita arquivos, executa comandos, lê os erros, corrige e segue.

A versão 2.0.0, uma reconstrução do zero, foi marcada em 11 de setembro de 2026, e a equipe já tinha lançado a 2.0.22 em 2 de outubro. Cobri a reconstrução em detalhe na minha análise profunda do OpenCode v2, então aqui vai só o que importa para construir um aplicativo:

  • Ele é agnóstico de modelo. Mais de 75 provedores via Models.dev, além de modelos locais. O MiniMax vem integrado.
  • Um servidor de fundo compartilhado. A interface de terminal, o aplicativo de desktop, a interface no navegador e as extensões de IDE veem as mesmas sessões.
  • Permissões que funcionam como um firewall. Uma lista ordenada de regras permitir, perguntar e negar, em que a última correspondência vence, então “nunca executar git push” e “nunca enviar para a App Store” são uma linha cada.
  • Desfazer em cada etapa. Snapshots antes e depois de cada passo do modelo, com /undo e /redo.
  • Subagentes que você vê e pode parar, e skills que carregam das pastas .opencode, .claude e .agents .
  • Ele roda dentro do Xcode 27. O novo Xcode da Apple aceita qualquer agente que fale o Agent Client Protocol, e opencode acp faz exatamente isso (configuração na Parte 4).

A página inicial agora conta 208.000 estrelas no GitHub, 950 colaboradores e 16 milhões de desenvolvedores mensais. Duas ressalvas honestas da documentação da v2: o compartilhamento de sessões ainda não voltou na v2, e plugins da v1 não carregam.

Por que o MiniMax M3.1 é o modelo

A Parte 3 aprofunda, mas a versão curta são três propriedades que combinam especialmente bem com a construção de aplicativos:

  • Uma janela de contexto de 1.000.000 de tokens. Um aplicativo pequeno, suas notas de design, seu AGENTS.md e a documentação relevante cabem em uma sessão de trabalho com folga.
  • Ele lê imagens e vídeo, não só texto. Você pode dar a ele um frame do Figma, uma captura de tela do simulador ou uma gravação de tela de um bug.
  • Cinco níveis de esforço, de low a max, então o trabalho de planejamento recebe raciocínio profundo e o trabalho mecânico recebe velocidade.

O trade-off é que é uma prévia, sem benchmarks publicados nem preço por token, disponível apenas pela assinatura da própria MiniMax. Volto a isso, porque não é uma ressalva pequena.

Por que o Figma é a ferramenta de design

O Figma continua sendo onde o design de aplicativos acontece. O plano Starter gratuito basta para desenhar um primeiro aplicativo. Suas variáveis se tornam seus tokens de design, as cores, espaçamentos e tamanhos de tipo que mantêm todas as telas consistentes. E seu servidor MCP permite que um agente de codificação leia um frame selecionado diretamente, o que é a coisa mais próxima até agora de “deixe com esta cara” realmente funcionar.

Na Config 2026 (23 a 25 de junho em São Francisco), o Figma também abriu seu Figma Agent para todos os planos pagos como beta aberto, adicionou uma linha do tempo de movimento e mostrou “camadas de código” que tratam código como um objeto de primeira classe na tela. Você não precisa de nada disso para fazer seu primeiro aplicativo. É útil saber para onde as coisas estão indo.

E as “coisas”

As partes que ninguém põe na miniatura:

O quêOpçõesCoberto na
Framework do appExpo (React Native) para iPhone e Android; SwiftUI com Xcode 27 só para Apple; FlutterParte 7
BackendFirebase é o padrão fácil para contas, sincronização e armazenamento de arquivosParte 7
Controle de versãoGit, sempre. GitHub ou similar para backupPartes 4 e 7
Builds e assinaturaXcode em um Mac, ou os builds na nuvem do EAS da Expo sem umPartes 7 e 8
Testes e lançamentoTestFlight e App Store ConnectParte 8
LançamentoUma landing page, uma demonstração, páginas legais, otimização para a App StoreParte 9

Mostrar imagem Todo o pipeline em uma página. Você fica à esquerda (o briefing), no meio (revisando cada diff) e à direita (apertando “Enviar para revisão”).

O que “do zero” significa agora

Eis a verdade incômoda sobre construir um aplicativo com IA em 2026: o agente faz a parte que costumava ser difícil e deixa com você a parte que sempre foi difícil.

Você cuida deO agente cuida de
Para que serve o aplicativo, e do que ele se recusa a fazerTransformar isso em arquivos, componentes e funções
As telas e o sistema de designImplementá-las, tela por tela
O modelo de dados: o que é guardado, onde e por quanto tempoEscrever o código de armazenamento, sincronização e migração
A história de privacidade, as páginas legais e as respostas para a App StoreAuditar o código para que suas respostas sejam precisas
Testar em dispositivos reais, com pessoas reaisEscrever e rodar testes automatizados
Apertar “Enviar”Nunca apertar “Enviar”

Se essa tabela te deixa um pouco nervoso, ótimo. Esse nervosismo é o que separa um aplicativo que é lançado de uma pasta cheia de código meio funcionando.


Parte 3 — MiniMax M3.1, explicado com honestidade

Se você procurar por “MiniMax M3.1” agora, vai encontrar artigos confiantes sobre um modelo que, a rigor, ainda não foi lançado. Aqui está o que realmente existe, o que você pode usar hoje e o que ninguém sabe ainda.

O que existe, em ordem

  • 1 de junho de 2026: MiniMax M3. Um modelo de pesos abertos, nativamente multimodal, com janela de contexto de 1 milhão de tokens, arquitetura de mistura de especialistas com cerca de 428 bilhões de parâmetros totais e aproximadamente 23 bilhões ativos por token, além da atenção esparsa própria da MiniMax. Comparei com o GLM-5.3-Flash para o OpenCode em agosto, em GLM-5.3-Flash vs MiniMax M3.
  • Julho: “M3.1” vira um nome. Relatos da World Artificial Intelligence Conference em Xangai descreveram um M3.1 com contexto de um milhão de tokens e capacidades multimodais mais fortes. Nenhum modelo, ID de modelo ou preço veio depois.
  • 23 de setembro: um modelo misterioso. Um modelo anônimo chamado “Space Bunny Alpha” apareceu no OpenRouter e no OpenCode como uma prévia gratuita, com contexto de 1M e raciocínio ajustável. Fingerprinting independente de tokenizer apontou para a MiniMax. A MiniMax não confirmou nada, e um tokenizer igual é evidência sobre uma família de modelos, não prova.
  • 27 de setembro: MiniMax M3.1-Flash-Preview. O primeiro modelo com a marca M3.1 que qualquer pessoa pode usar, lançado no aplicativo de codificação da própria MiniMax, o MiniMax Code, e pela assinatura de codificação dela. A MiniMax o descreve como um modelo para “desenvolvimento do dia a dia, rápido, confiável e pronto para trabalho real, de correções rápidas de bugs a recursos completos.”
  • 30 de setembro: o M Plan. O MiniMax Code 3.1.0 chegou com uma nova assinatura chamada M Plan, que substitui o Token Plan para novos clientes pelos mesmos preços.

O M3.1 completo do verão ainda não foi lançado. Quando as pessoas dizem “M3.1” em outubro de 2026, elas querem dizer M3.1-Flash-Preview, e eu também, pelo resto deste artigo.

Mostrar imagem Tudo neste artigo aconteceu em quatro meses e meio, e sete destas nove datas caem nas últimas cinco semanas.

MiniMax M3 vs M3.1-Flash-Preview

MiniMax M3MiniMax M3.1-Flash-Preview
Lançamento1 de junho de 202627 de setembro de 2026
StatusDisponibilidade geralPrévia
ID do modeloMiniMax-M3MiniMax-M3.1-Flash-Preview
Janela de contexto1M de tokens1.000.000 de tokens
EntradaTexto, imagem, vídeoTexto, imagem, vídeo
RaciocínioPode ser ligado ou desligadoSempre ligado. Cinco níveis de esforço: low, médio, high, xhigh, max (padrão max)
Pesos abertosSim, sob a MiniMax Community LicenseSem pesos, sem model card
Preço por uso (pay-as-you-go)US$ 0,30 por milhão de tokens de entrada, US$ 1,20 de saída, US$ 0,06 em cache; dobra acima de 512K de entradaNão publicado. Apenas por assinatura
Onde você pode usarAPI da MiniMax, OpenRouter, OpenCode Go, Ollama Cloud e muitos outros hostsSomente assinatura M Plan e MiniMax Code
Benchmarks publicadosSim, da MiniMax e de rankings independentesNenhum
Arquitetura~428B no total, ~23B ativos, MoE esparsoNão divulgado
No OpenCode v2Integrado, via vários provedoresIntegrado, via “MiniMax Token Plan (minimax.io)”

Retrato da documentação da MiniMax e do Models.dev em 5 de outubro de 2026. Prévias mudam sem aviso; confira antes de confiar em qualquer linha.

Uma coisa que vale decifrar: a documentação diz que o raciocínio não pode ser desativado. Envie thinking.type: "disabled" ou um esforço de none, e a API retorna um erro 400 dizendo, em outras palavras, que o modelo “exige raciocínio adaptativo.” O que você pode controlar é o quanto ele pensa.

Como obter: o M Plan

A documentação da MiniMax é direta sobre o acesso: “O MiniMax-M3.1-Flash-Preview está disponível apenas pelo M Plan e pelo MiniMax Code por enquanto.”

Nível do M PlanPreçoO que está incluído
GoUS$ 22/mêsM3.1-Flash-Preview, mais os modelos de imagem e áudio da MiniMax
ExploreUS$ 55/mêsTudo do Go, mais o modelo de vídeo H3
BuildUS$ 132/mêsTudo do Explore, com a maior cota de uso

Alguns detalhes que importam mais do que os preços de destaque:

  • Oferta de lançamento: 50% de desconto no primeiro mês na cobrança mensal, até 14 de outubro de 2026. A cobrança anual fica de fora. Depois do primeiro mês, renova pelo preço cheio, a menos que você desligue a renovação automática.
  • Semana grátis: todos os assinantes tiveram M3.1-Flash-Preview ilimitado de 1 a 7 de outubro (horário da China). Se você está lendo isto depois do dia 7, essa já foi.
  • É uma chave de assinatura, não uma chave de API. A documentação da MiniMax deixa claro que chaves de assinatura e chaves de API pay-as-you-go não são intercambiáveis. Você vai colar a chave de assinatura no OpenCode.
  • Cotas, não medição. O uso é limitado em janelas móveis de cinco horas e semanais, e a cota não usada não acumula. Para os níveis equivalentes do Token Plan, a orientação da própria MiniMax era de cerca de três a quatro, quatro a cinco, e seis a sete agentes rodando ao mesmo tempo.
  • Assinantes atuais do Token Plan mantêm o plano. Novos clientes compram o M Plan.
  • Ferramentas compatíveis na página do M Plan da MiniMax incluem Claude Code, Codex, Cursor, OpenCode, Hermes Agent e OpenClaw.

MiniMax Code é em si um agente de desktop para macOS e Windows, com um modo de codificação e um modo “work” para pesquisa e documentos, além de uma versão de linha de comando. É uma ótima forma de testar o modelo. Eu uso o OpenCode porque ele não me prende a um único fabricante de modelos, que é justamente o ponto da Parte 2.

Por que ele serve para criar apps

  • A janela de contexto muda a forma como você trabalha. Um app móvel pequeno chega a alguns milhares de linhas de código, talvez algumas dezenas de milhares. Com um milhão de tokens, o agente consegue manter toda a base de código, seu AGENTS.md, o modelo de dados e um trecho da documentação da plataforma de uma vez. Menos momentos de “esqueci o que decidimos”. (O próprio guia do OpenCode da MiniMax limita a janela a 512K no exemplo de configuração, o que eu copiaria. Contextos mais curtos significam respostas mais rápidas.)
  • Mostre, não descreva. Como ele aceita imagens e vídeo, você pode jogar um frame exportado do Figma, uma captura de tela do iOS Simulator ou uma gravação de tela do bug em que o teclado cobre o botão Salvar. Só esse último caso economiza uma quantidade extraordinária de digitação.
  • O esforço é um regulador, não um interruptor. max para planejar um recurso ou destrinchar um bug de sincronização. low ou médio para renomear coisas, escrever testes e traduzir strings. A Parte 4 mostra como definir isso por agente.
  • O custo é fixo. Para quem desenvolve sozinho, uma fatura mensal previsível é melhor do que ficar olhando um medidor por token durante uma sessão longa de depuração.

Um teste independente inicial mediu cerca de 90 a 110 tokens por segundo no primeiro dia. É uma medição isolada, não um benchmark, mas combina com o nome “Flash”.

O que ninguém sabe ainda

Esta é a parte que a maioria das matérias sobre o M3.1 deixa de fora:

  • Não há benchmarks. Nem da MiniMax, nem dos rankings independentes, porque um modelo que só pode ser acessado pela assinatura de uma empresa é difícil de testar de forma independente. Você é o benchmark. Dê a ele uma tarefa real do seu próprio projeto, dê a mesma tarefa a um modelo em que você já confia e compare os diffs.
  • Não há preço por token. Isso é aceitável dentro de uma assinatura. É um problema se você quer rodar o modelo em CI ou em um produto, onde precisa saber quanto custa um milhão de tokens.
  • É um preview. Ele pode mudar de comportamento, ser renomeado ou substituído pelo M3.1 completo sem aviso. Mantenha o ID do modelo em um único arquivo de configuração para que a troca seja uma mudança de uma linha.
  • O raciocínio está sempre ativo. Até pedidos triviais carregam alguma sobrecarga de raciocínio. Reduza o esforço para tarefas pequenas.
  • Só está disponível pela MiniMax. No momento em que escrevo, ele não está no OpenRouter, no Ollama Cloud nem no OpenCode Go. Seus prompts e seu código vão para os servidores da MiniMax, então, para trabalho com clientes sob regras rígidas de dados, leia os termos da MiniMax primeiro ou mantenha esse projeto em modelos locais.

Não baixe o “MiniMax M3.1”

Em menos de um dia após o lançamento, surgiram repositórios no GitHub sem nenhuma relação com a MiniMax, prometendo um “download oficial gratuito” do M3.1-Flash em um zip para Windows para “extrair e executar”. Não existem pesos do M3.1 para baixar, e o MiniMax Code vem do site da própria MiniMax. Trate qualquer “download do M3.1” como malware até que se prove o contrário.

Quando usar o MiniMax M3 em vez disso

Uso M3 se você precisar de alguma das coisas que o preview não oferece: preços por uso, pesos abertos que você poderia auto-hospedar ou acesso pelo OpenCode Go, Ollama Cloud ou OpenRouter. Também é a escolha mais segura para qualquer coisa automatizada, porque seu preço e comportamento estão documentados. Se quiser uma visão mais ampla das alternativas, meu MiniMax M3 vs Kimi K2.7 Code vs Nemotron 3 Ultra comparativo cobre o assunto.


Parte 4 — Configurando o OpenCode v2 com MiniMax M3.1, passo a passo

Esta é a configuração que eu passaria a um amigo. Leva uns quinze minutos, a maior parte esperando os downloads.

Passo 0 — O que você precisa primeiro

  • Um Mac com Apple silicon, se você quiser compilar e rodar apps de iPhone localmente. O Xcode 27 (lançado em 14 de setembro de 2026) não suporta mais Macs Intel e exige o macOS Tahoe 26.4 ou posterior. Se você seguir o caminho do Expo na Parte 7, pode compilar apps iOS na nuvem a partir do Windows ou Linux, mas ainda vai querer um iPhone de verdade para testar.
  • Git. Snapshots, branches e a sua própria sanidade dependem disso.
  • Node.js (LTS) se você for usar o Expo.
  • Uma assinatura do M Plan da MiniMax (Parte 3).
  • Um terminal moderno. O Terminal do macOS serve; Ghostty, WezTerm e Kitty são mais agradáveis.

Passo 1 — Instalar o OpenCode v2

bash

curl -fsSL https://opencode.ai/v2/install | bash

opencode --version          # should print 2.0.x
opencode service status     # the shared background server should be running

Quer também o app de desktop? Baixe em opencode.ai/download, ou no Mac execute brew install --cask opencode-desktop. O terminal e o app de desktop compartilham um único servidor, então uma sessão iniciada em um aparece no outro.

Uma coisa a observar: o próprio guia do OpenCode da MiniMax ainda mostra a URL do instalador v1 (opencode.ai/install). Use o /v2/install do acima.

Passo 2 — Obter sua chave de assinatura do M Plan

Assine na plataforma da MiniMax e crie uma chave de assinatura no console. Não é uma chave de API de pagamento por uso: são produtos diferentes, e só a chave de assinatura dá acesso ao M3.1-Flash-Preview.

Trate a chave como uma senha. Nunca a cole em um chat, uma captura de tela ou um repositório Git.

Passo 3 — Conectar a MiniMax dentro do OpenCode

bash

cd ~/code/my-app
opencode

Então, dentro do OpenCode:

  1. Tipo /connect e procure por MiniMax Token Plan (minimax.io). O provedor manteve o nome antigo; ele aceita chaves do M Plan.
  2. Cole sua chave de assinatura.
  3. Tipo /models e escolha MiniMax-M3.1-Flash-Preview.

Pronto. O catálogo de modelos do OpenCode (Models.dev) já lista o modelo com sua janela de contexto de 1.000.000 de tokens, entrada de imagem e vídeo e os cinco níveis de esforço, então você não precisa de um arquivo de configuração para começar. Se ele não aparecer em /models, atualize o OpenCode primeiro; a configuração do Passo 4 também o adiciona manualmente.

Duas alternativas: opencode auth login faz o mesmo pelo terminal, e o assistente de configuração da MiniMax (npx -y mmx-cli@latest agent setup) instala e configura o OpenCode para você, com o M3 como padrão. Depois, mude para o M3.1 com /models. Contas na plataforma da MiniMax na China usam a versão “(minimax.cn)” do provedor.

Passo 4 — Adicionar uma configuração de projeto

Os padrões funcionam, mas um projeto de app merece um arquivo de configuração que faz três coisas: encaminha cada agente para o nível de esforço certo, define permissões que mantêm o agente longe de qualquer coisa irreversível e conecta seus servidores MCP. Salve isto como opencode.jsonc na raiz do seu projeto:

jsonc

{
  "$schema": "https://opencode.ai/config.json",

  // Default model for new sessions
  "model": "minimax-coding-plan/MiniMax-M3.1-Flash-Preview",

  "providers": {
    "minimax-coding-plan": {
      "models": {
        "MiniMax-M3.1-Flash-Preview": {
          // MiniMax's own OpenCode example caps the window at 512K
          "limit": { "context": 524288 },

          // Thinking is always on and defaults to "max".
          // These variants send MiniMax's documented output_config.effort field.
          "variants": [
            { "id": "quick", "body": { "output_config": { "effort": "low" } } },
            { "id": "steady", "body": { "output_config": { "effort": "medium" } } },
            { "id": "careful", "body": { "output_config": { "effort": "high" } } }
          ]
        }
      }
    }
  },

  "agents": {
    // Planning gets the full default effort: a bad plan costs the most later
    "plan":    { "model": "minimax-coding-plan/MiniMax-M3.1-Flash-Preview" },
    // Building: thorough, but faster than max
    "build":   { "model": "minimax-coding-plan/MiniMax-M3.1-Flash-Preview#careful" },
    // Read-only searching through the codebase: speed matters more than depth
    "explore": { "model": "minimax-coding-plan/MiniMax-M3.1-Flash-Preview#quick" }
  },

  "permissions": [
    { "action": "shell", "resource": "*",                  "effect": "ask"   },
    { "action": "shell", "resource": "git status *",       "effect": "allow" },
    { "action": "shell", "resource": "git diff *",         "effect": "allow" },
    { "action": "shell", "resource": "git log *",          "effect": "allow" },
    { "action": "shell", "resource": "npm test *",         "effect": "allow" },
    { "action": "shell", "resource": "npx tsc *",          "effect": "allow" },
    { "action": "shell", "resource": "npx expo lint *",    "effect": "allow" },
    { "action": "shell", "resource": "git push *",         "effect": "deny"  },
    { "action": "shell", "resource": "eas submit *",       "effect": "deny"  },
    { "action": "shell", "resource": "firebase deploy *",  "effect": "deny"  }
  ],

  "mcp": {
    "servers": {
      // Figma's desktop MCP server (Part 6). Local, so no OAuth.
      "figma-desktop": {
        "type": "remote",
        "url": "http://127.0.0.1:3845/mcp",
        "oauth": false
      },
      // Firebase's official MCP server. It asks before changing your project.
      "firebase": {
        "type": "local",
        "command": ["npx", "-y", "firebase-tools@latest", "mcp"]
      }
    }
  }
}

Algumas notas para você saber o que está colando:

  • As regras de permissão são lidas de cima para baixo, e a última correspondência prevalece. Todo comando de shell pergunta primeiro, os comandos inofensivos de Git e de teste são executados livremente, e três coisas são negadas de imediato: enviar código, enviar para a App Store e implantar seu backend. Você faz isso por conta própria, de propósito.
  • Troque os comandos permitidos pelos da sua toolchain. Se você estiver compilando nativamente com o Xcode em vez do Expo, substitua as npx linhas pelos seus comandos de teste e lint.
  • Se uma variante parecer não fazer nada, execute /models para confirmar os nomes das variantes, e confira a requisição nos logs do OpenCode. A MiniMax usa max quando nenhum esforço é enviado, então o pior caso é uma resposta mais lenta, não uma resposta quebrada.
  • Exemplos antigos no estilo v1 ainda funcionam. O guia da MiniMax usa a provider key; o OpenCode v2 lê as configurações v1 compatíveis sem reescrever o seu arquivo.

Passo 5 — Escreva um AGENTS.md antes de escrever uma linha de código

O OpenCode lê o AGENTS.md no início de cada sessão. É o hábito mais eficaz no desenvolvimento assistido por IA, e meu guia de vibe coding entra no sistema todo. Para um app, ele deve conter as regras do produto e também os comandos de compilação. Aqui está o formato de um para um app como o Stash:

markdown

# Notas para agentes de codificação (exemplo para um app no estilo Stash)

## O que este app é
O Stash lembra onde as coisas estão. Foto do local + nome + cômodo = encontrado em segundos.
Se uma mudança não torna salvar ou encontrar mais rápido, ela não pertence aqui.

## Inegociáveis
- Offline primeiro. Todo recurso funciona sem rede. A sincronização é um bônus.
- O modo convidado nunca envia nada.
- Sem analytics, anúncios ou SDKs de rastreamento. Pergunte antes de adicionar QUALQUER dependência.
- Sem segredos no pacote do app. Trabalho privilegiado acontece no Cloud Functions.
- Acessibilidade: Dynamic Type, rótulos de VoiceOver, alvos de toque de 44 x 44 pt.
- Modo claro e escuro em todas as telas.

## Design
- Os tokens ficam em src/theme/tokens.ts. Nunca codifique uma cor ou um tamanho de fonte diretamente.
- Ao implementar um frame do Figma: get_design_context, depois get_variable_defs,
  depois get_screenshot para comparar seu resultado.

## Comandos
- Instalar: npm install
- Executar: npx expo start
- Testar: npm test
- Tipos: npx tsc --noEmit
- Lint: npx expo lint

## Definição de pronto
- Testes, tipos e lint passam
- Funciona em modo avião
- Funciona em modo claro e escuro, no maior tamanho de texto
- Nenhum aviso novo no console

Passo 6 (opcional) — Rode o OpenCode dentro do Xcode e dê a ele as ferramentas do Xcode

O Xcode agora tem codificação com agentes embutida e aceita agentes externos de duas formas diferentes. Vale conhecer as duas se você compila nativamente.

OpenCode como agente dentro do Xcode (ACP). O Xcode pode hospedar qualquer agente que fale o Agent Client Protocol, e o OpenCode fala, por meio do opencode acp.

  1. Primeiro, faça login pelo terminal: opencode auth login.
  2. Executar which opencode e copie o caminho absoluto. O Xcode não expande ~ nem lê o PATH do seu shell.
  3. No Xcode, escolha Xcode → Settings → Intelligence, depois, em Agents, clique em Add an Agent.
  4. Cole o caminho como comando e adicione acp como argumento.
  5. Inicie uma nova conversa na barra lateral Intelligence do Xcode e escolha o OpenCode.

Você não pode trocar de modelo pela interface do Xcode, então defina seu modelo padrão no opencode.jsonc primeiro.

As ferramentas do Xcode dentro do OpenCode (MCP). O outro sentido costuma ser mais útil: o OpenCode fica no seu terminal, mas pode compilar seu projeto, rodar testes e renderizar previews de SwiftUI por meio do Xcode.

  1. Em Xcode → Settings → Intelligence, em Model Context Protocol, ative Permitir que agentes externos usem as ferramentas do Xcode.
  2. Adicione a ponte do Xcode ao OpenCode: opencode mcp add xcode -- xcrun mcpbridge
  3. Abra seu projeto no Xcode antes de enviar o prompt. A ponte conversa com o Xcode em execução, e o Xcode avisa quando um agente externo se conecta.

Qual nível de esforço para cada tarefa

TarefaAgenteEsforço
Planejar um recurso, o modelo de dados ou a lógica de sincronizaçãoplanmax (o padrão)
Implementar uma tela a partir de um frame do Figmabuildhigh
Corrigir um bug com uma forma clara de reproduzi-lobuildhigh; max se for um bug de sincronização ou de condição de corrida
Escrever testes, renomear, pequenas refatoraçõesbuildmédio
Pesquisar na base de código, ler documentaçãoexplorelow
Mudanças de texto e traduções de stringsbuildlow ou médio

Mais esforço significa mais tokens de raciocínio e mais espera, nas próprias palavras da MiniMax. A maior parte do tempo em um loop de agente é gasta esperando, então ajuste o esforço ao risco.


Parte 5 — Projetando seu app no Figma quando você não é designer

Você não precisa ser designer para projetar um bom primeiro app. Precisa de um pequeno número de decisões, tomadas uma vez e registradas onde o agente possa lê-las.

Comece com palavras, não com retângulos

Antes de abrir o Figma, escreva três coisas em um arquivo de texto simples:

  1. A promessa, em uma frase. Para o Stash: o jeito mais rápido de lembrar onde você guardou as coisas.
  2. Três histórias de usuário. “Guardei meu passaporte na gaveta da escrivaninha e quero encontrá-lo em março.” “Estou na garagem, sem sinal, e quero registrar onde foi parar a furadeira.” “Quero que as luzes de Natal me lembrem de que existem em novembro.”
  3. A lista de telas. O Stash vem com quatro abas (Início, Busca, Cômodos e Ajustes), além de uma tela de adicionar e uma visualização de detalhes do item. Seis telas. Isso é um app inteiro.

Depois, entregue esse arquivo ao agente plan e peça que ele discorde de você: “Leia este briefing. Liste os fluxos de usuário, os casos extremos em que não pensei e as telas que estão faltando. Depois me diga o que eu deveria cortar.” É exatamente para esse tipo de trabalho chato e minucioso que o esforço máximo existe: o tipo de pergunta “o que acontece quando o usuário nega acesso à câmera?”. Dez minutos disso podem poupar um redesign.

Configure as variáveis antes de desenhar qualquer coisa

Figma variáveis são valores nomeados: cores, espaçamento, raios de canto, tamanhos. Configure-os primeiro, com um modo claro e um escuro para as cores, e seu app será consistente por padrão.

Eles importam o dobro com um agente de IA. Quando o agente implementa uma tela, o servidor MCP do Figma pode entregar as variáveis exatas usadas naquele frame (a ferramenta get_variable_defs ), então ele escreve colors.green em vez de chutar um código hex a partir de uma captura de tela.

Aqui está a paleta do conceito de design público do Stash:

TokenValorUsado paraContraste sobre o Paper
Paper#F6F4EEFundo do app—
Surface#FFFCF7Cards e campos—
Ink#172E2ATexto principal13.1 : 1
Green#23594CBotões, estados selecionados, marca7.3 : 1
Green soft#E1EBE4Destaques discretos—
Coral#D46F4FPonto de destaque, uma palavra em um título3.1 : 1
Coral soft#F8E8DEDestaques quentes—
Muted#6E7D76Texto secundário3.9 : 1
Line#DEDFD7Divisórias e bordas—

Os títulos usam uma serifada; todo o resto usa a sans-serif do sistema. Esse é todo o sistema tipográfico.

A coluna de contraste é a parte a copiar. Ink e green passam com folga dos 4,5 : 1 que a WCAG exige para texto normal. O coral, com cerca de 3 : 1, só passa para texto grande, então pertence a palavras grandes de título e pequenos pontos de destaque, que é exatamente onde o Stash o usa. O cinza muted fica em 3,9 : 1, então pertence a legendas maiores, não a texto miúdo. Verifique isso no Figma antes que o agente copie um token para cinquenta lugares.

Mostrar imagem Nove cores, duas fontes, um punhado de componentes. Um design system não precisa ser grande para ser útil; precisa estar registrado.

Construa cinco componentes, não cinquenta

Para um primeiro app você precisa de mais ou menos cinco componentes reutilizáveis: um botão (primário e discreto), um campo de texto, um card, um linha de lista ou bloco (o bloco de ambiente do Stash) e a barra de abas. Crie-os como componentes do Figma com variantes para os estados: padrão, pressionado, desativado, erro.

A Apple publica recursos oficiais de design de iOS para o Figma. Use-os como referência para peças do sistema, como folhas, alertas e o teclado, em vez de redesenhá-las. De qualquer forma, seu agente vai usar os componentes reais do sistema.

Desenhe as telas que o agente vai esquecer

Agentes de IA são muito bons no caminho feliz e silenciosamente péssimos em tudo ao redor dele. Desenhe estes casos de propósito:

  • Estados vazios. A primeira abertura, um ambiente sem nada dentro (a grade de ambientes do Stash mostra “No items yet”), uma busca sem resultados.
  • Texto enorme. Coloque o celular no maior tamanho de Dynamic Type e olhe seus layouts. Nomes longos de itens quebram linha. Botões crescem.
  • Modo escuro, em todas as telas, não só nas bonitas.
  • Sem foto. Como fica um cartão de item sem foto?
  • Permissão negada. O usuário recusou a câmera. E agora?
  • Offline. Como fica o estado “salvo, sincroniza depois”?

Deixe a IA ajudar dentro do Figma, mas mantenha a fonte da verdade com você

A IA do próprio Figma amadureceu rápido este ano. O Figma Agent entrou em beta aberto para todos os planos pagos na Config 2026, e é gratuito durante o beta para assentos Full. Ele gera e remixa designs dentro do seu arquivo. Figma Make transforma prompts em protótipos clicáveis. As ferramentas do Weave agora executam tarefas de imagem, como troca de fundo, sem sair do arquivo de design.

Elas são excelentes para explorar. Gere dez variações de uma tela inicial, roube a única boa ideia e depois reconstrua com seus próprios componentes e variáveis. Se as camadas geradas virarem sua fonte da verdade, seu sistema de design sai do lugar, e o agente de codificação herda o desvio.

O Stash faz algo que eu recomendaria a qualquer pessoa: suas ideias experimentais ficam em um conceito interativo separado e claramente identificado no site, não no app. Você explora em público sem prometer recursos que não existem.

Faça o protótipo e depois observe três pessoas usarem

Conecte as telas em um protótipo clicável, entregue seu celular a três pessoas e peça que cada uma salve algo e encontre de novo. Não explique nada. Observe onde elas hesitam. Três pessoas encontram a maioria dos problemas que importam, e corrigir um frame no Figma leva minutos, enquanto corrigir depois que o agente construiu leva uma sessão.


Parte 6 — Conectando o Figma ao OpenCode: a pegadinha do MCP

Esta é a parte do fluxo de trabalho que parece o futuro quando funciona: selecione um frame no Figma, peça ao agente para construí-lo, e ele lê o layout real, as variáveis reais e os componentes reais em vez de espiar uma captura de tela.

É também a parte em que a maioria dos guias pula um detalhe que vai custar uma noite sua.

O que o servidor MCP do Figma entrega a um agente

MCP, o Model Context Protocol, é a forma padrão de um agente de IA usar ferramentas externas. O servidor MCP do Figma expõe um conjunto de ferramentas; estas são as que importam para construir um app:

FerramentaO que ele retorna
get_design_contextO contexto de design da camada ou do frame selecionado. O Figma o chama de ponto de partida padrão
get_variable_defsAs variáveis e os estilos usados na seleção: suas cores, espaçamento, tipografia
get_screenshotUma imagem da seleção, para o agente comparar o resultado
get_metadataUm esboço XML enxuto da estrutura de camadas
get_code_connect_mapMapeamentos entre componentes do Figma e seus componentes reais de código
create_design_system_rulesUm prompt que escreve um arquivo de regras descrevendo seu sistema de design para o agente

Há também escrever ferramentas de escrita (use_figma para criar e editar conteúdo nativo do Figma, generate_figma_design para transformar uma interface web em execução em camadas do Figma, e mais), mas quase todas estão disponíveis apenas no servidor remoto. Guarde essa ideia.

Servidor remoto vs. servidor desktop

O Figma mantém duas versões do servidor:

  • O servidor remoto em https://mcp.figma.com/mcp. O Figma o recomenda, ele não precisa do app desktop, funciona em todos os assentos e planos e tem o conjunto completo de ferramentas, incluindo escrita no canvas.
  • O servidor desktop em http://127.0.0.1:3845/mcp, que roda dentro do app desktop do Figma. Ele exige um assento Dev ou Full em um plano pago, e é em grande parte somente leitura.

O detalhe: o OpenCode ainda não é permitido no servidor remoto

Durante o beta, o servidor remoto só aceita clientes aprovados. A lista do Figma inclui Claude Code, Codex, Cursor, VS Code, Gemini CLI, Kiro, Warp e Xcode, entre outros. O OpenCode não está nela. Tente conectar e a etapa de registro falha com um HTTP 403.

Isso não é um bug do lado do OpenCode. Em maio, um funcionário do Figma explicou no fórum do Figma que o escopo da conexão é “intencionalmente restrito a clientes suportados enquanto estamos em beta”, e indicou às pessoas o servidor desktop, que “contorna totalmente o problema de OAuth e a lista de permitidos.” A equipe do OpenCode tem um pull request aberto para adicionar um cliente Figma registrado, ainda aguardando aprovação do Figma no momento em que escrevo.

Você vai encontrar posts sugerindo pegar emprestado o client ID OAuth de outro app para driblar a lista de permitidos. Não faça isso. Use o servidor desktop e espere o suporte oficial.

Mostrar imagem Três caminhos do Figma até o OpenCode. Só um deles é beco sem saída, e é justamente o que o Figma recomenda para todo mundo.

Configurando o servidor desktop com o OpenCode

  1. Instale o app desktop do Figma e entre com uma conta que tenha uma licença Dev ou Full em um plano pago. No plano Professional, uma licença Dev custa US$ 12 por mês e uma Full, US$ 16.
  2. Abra seu arquivo de design e mude para Dev Mode com Shift + D.
  3. No painel de inspeção, encontre a servidor MCP seção e clique em Ativar o servidor MCP para desktop.
  4. Adicione-o ao OpenCode. Use o figma-desktop bloco da configuração da Parte 4, ou execute:

bash

   opencode mcp add figma-desktop --url http://127.0.0.1:3845/mcp

Se o OpenCode tentar iniciar um login OAuth para ele, defina "oauth": false no servidor em opencode.jsonc. O servidor desktop é local e não precisa disso. 5. Verifique se está conectado com opencode mcp list.

Mantenha o app desktop do Figma aberto enquanto trabalha. Se o Figma estiver fechado, as ferramentas Figma do agente simplesmente desaparecem.

Atenção aos limites de requisições

No plano Professional, assentos Dev e Full têm até 200 chamadas de ferramentas MCP por dia e 10 por minuto. Assentos Organization têm 15 por minuto; Enterprise tem 600 por dia e 20 por minuto. Assentos View e Collab ficam limitados a poucas chamadas por mês. Duzentas parece muito até um agente empolgado chamar get_screenshot depois de cada pequena edição, então diga a ele, no AGENTS.md, para comparar com a captura de tela uma vez por tela em vez de uma vez por alteração.

O padrão de prompt que funciona

Selecione um frame no Figma e, no OpenCode:

Implemente o frame selecionado do Figma como a tela Add Item. Primeiro chame get_design_context e get_variable_defs. Use apenas tokens de src/theme/tokens.ts; se faltar um valor, adicione um token em vez de deixá-lo fixo no código. Reaproveite nossos componentes Button, TextField e Card existentes. Quando terminar, chame get_screenshot e liste todas as diferenças visíveis entre o frame e o que você construiu. Depois corrija.

Dois hábitos tornam isso muito mais confiável:

  • Executar create_design_system_rules uma vez no início do projeto e salve o resultado como uma seção do seu AGENTS.md ou como uma skill em .opencode/skills/. A partir daí, toda sessão conhece suas regras de design sem que você diga.
  • Um frame por pedido. “Construa o app inteiro a partir deste arquivo” gera um app inteiro um pouco errado em todo lugar. Uma tela por vez gera telas certas.

Sem assento pago? O caminho gratuito

Você pode fazer tudo isso sem MCP. O M3.1 lê imagens, então exporte cada frame como PNG em 2x, anexe ao prompt e cole seus valores de cor e espaçamento em um arquivo tokens no repositório. Você perde os dados exatos das camadas e as consultas de variáveis, então espere mais idas e vindas no espaçamento. Para um primeiro app com seis telas, é totalmente viável e não custa nada.


Parte 7 — Como criar um app do zero, fase por fase

Esta é a parte “do zero”. Sete fases, na ordem em que eu faria, com os prompts e as armadilhas.

Fase 0 — Escolha seu framework

Em 2026 você tem três escolhas sensatas, e a certa depende de onde seu app precisa rodar.

SwiftUI + Xcode 27Expo SDK 56 (React Native)Flutter
Roda emiPhone, iPad, Mac, Apple Watch, Vision ProiPhone, iPad, Android, webiPhone, iPad, Android, web, desktop
LinguagemSwift 6.4TypeScriptDart
Precisa de um Mac?SimNão para compilar nem enviar: o serviço EAS do Expo compila apps iOS na nuvemSim, para compilações iOS, a menos que você use CI na nuvem
WidgetsWidgetKit nativoEstável no iOS desde o SDK 56Via plugins mais código nativo de WidgetKit
Facilidade com agentesMuito boa, especialmente com as ferramentas MCP do próprio Xcode; o compilador Swift pega muita coisaMuito boa: tipos TypeScript, recarregamento rápido e uma quantidade enorme de código de exemplo públicoBom
Melhor paraApps só para Apple que querem todos os recursos nativosUma base de código para iPhone e Android, feita por uma pessoaInterface idêntica em todas as plataformas

Minha regra prática:

  • Só Apple, e você quer os brinquedos mais novos da plataforma (os frameworks de IA no dispositivo da Apple, Live Activities, integração profunda com o sistema): SwiftUI, com o OpenCode rodando dentro do Xcode ou usando as ferramentas do Xcode (Parte 4).
  • iPhone e Android a partir de uma base de código, e você é uma pessoa só: Expo. O SDK 56 saiu em 21 de maio de 2026 com React Native 0.85, subiu o mínimo para iOS 16.4, deixou sua camada de UI SwiftUI e Jetpack Compose pronta para produção e promoveu os widgets iOS a estáveis. Seu serviço EAS compila e envia apps iOS a partir de Windows ou Linux, e o plano gratuito inclui 15 compilações iOS e 15 Android por mês.
  • Flutter se você ou sua equipe já conhecem.

A listagem do Stash na App Store exige iOS 16.4, e sua política de privacidade já cobre uma versão Android, então está claro que ele foi feito para ir além do iPhone.

Fase 1 — Estrutura, commit, briefing

Crie o projeto vazio e confirme que ele roda antes de o agente encostar nele.

Expo:

bash

npx create-expo-app@latest my-app
cd my-app
npx expo start        # open it on your phone with Expo Go, or in the iOS Simulator

SwiftUI: no Xcode, escolha File → New → Project → iOS → App, selecione SwiftUI e rode uma vez no Simulador.

Depois adicione os arquivos da Parte 4 (AGENTS.md e opencode.jsonc), mais dois:

  • ROADMAP.md: a lista de fatias verticais abaixo, com caixas de seleção. O agente lê, vai marcando, e você sempre sabe onde está.
  • src/theme/tokens.ts (ou um equivalente em Swift): suas variáveis do Figma como código. Copie à mão ou deixe o agente puxá-las com get_variable_defs.

Faça commit. Se o Git ainda não estiver configurado, git init primeiro. De agora em diante, cada etapa que funciona termina com um commit.

Fase 2 — Planeje o modelo de dados antes de qualquer tela

O modelo de dados é a decisão mais cara de mudar depois, porque, quando usuários reais têm dados reais, toda mudança exige uma migração. Use o plan agente com esforço máximo:

Você está planejando um app de “onde eu coloquei isso?”. Leia o AGENTS.md, o ROADMAP.md e o briefing. Proponha o modelo de dados, a abordagem de armazenamento local e a estrutura de pastas. O app precisa funcionar totalmente offline, sem conta; contas e sincronização vêm depois e não podem exigir reescrever a camada local. Liste os trade-offs, as migrações necessárias se adicionarmos sincronização depois, e tudo que estiver ambíguo no briefing. Ainda não escreva código.

Para um app no formato do Stash, você acaba com algo assim (uma ilustração, não o esquema real do Stash):

ts

type Room = {
  id: string;
  name: string;            // "Corredor"
  createdAt: number;
  updatedAt: number;
};

type Item = {
  id: string;
  name: string;            // "Chaves de casa"
  roomId: string;
  spot?: string;           // "Gaveta de cima"
  note?: string;           // "Na tigela de cerâmica à esquerda"
  photoPath?: string;      // arquivo local primeiro; cópia na nuvem só com conta
  voiceNotePath?: string;
  transcript?: string;     // o que torna as notas de voz pesquisáveis
  remindAt?: number;       // lembrete sazonal
  createdAt: number;
  updatedAt: number;       // usado para resolver conflitos de sincronização
  deletedAt?: number;      // exclusão lógica, para que exclusões também sincronizem
};

Leia o plano direito. Discorde dele. Este é o momento mais barato do projeto inteiro para mudar de ideia.

Fase 3 — Construa em fatias verticais

Uma fatia vertical é um recurso que funciona de ponta a ponta, da tela ao armazenamento e de volta, antes de você começar o próximo. Esta é a ordem em que eu construiria um app parecido com o Stash:

  1. Adicionar um item: nome, ambiente, local e observação, salvos localmente.
  2. Fotos: câmera e biblioteca de fotos, guardadas como arquivos locais.
  3. Início: itens salvos recentemente e a fileira de ambientes.
  4. Buscar: por nome, ambiente e observação, mais um filtro “com fotos”.
  5. Detalhe do item e “Achei”.
  6. Cômodos: a grade, mais adicionar, renomear e excluir ambientes.
  7. Notas de voz: gravar, transcrever, tornar a transcrição pesquisável.
  8. Lembretes: notificações locais para itens sazonais.
  9. Widgets para a Tela de Início e a Tela Bloqueada.
  10. Configurações: aparência, exportação e, quando existirem contas, exclusão de conta.
  11. Contas e sincronização: material para a versão dois, se você for sensato.

Cada fatia segue o mesmo ciclo:

  1. Plano: o plan escreve um plano curto para a fatia. Você corrige.
  2. Design: selecione o frame no Figma e use o padrão de prompt da Parte 6.
  3. Construção: o build implementa, roda os testes e corrige o que falha.
  4. Rode você mesmo, em um aparelho, e tente quebrar.
  5. Leia o diff. Cada linha que vai para produção.
  6. Commit, marque a caixa no ROADMAP.md e comece uma sessão nova para a próxima fatia.

Essa sessão nova importa mais do que parece. Mesmo com um milhão de tokens de contexto, uma sessão longa acumula suposições velhas. Um começo limpo, que relê o AGENTS.md e o ROADMAP.md, costuma ser mais inteligente que uma sessão longa.

Fase 4 — Offline primeiro, depois sincronização

A política de privacidade do Stash descreve um padrão que eu copiaria para quase qualquer app pessoal: sem conta, tudo fica no aparelho; com conta, os dados sincronizam por um backend. Isso deixa a primeira versão mais simples, a App Review mais fácil e a confiança dos seus usuários mais forte.

A ordem das operações:

  1. Deixe a camada local completa primeiro. SQLite pela biblioteca do Expo, ou SwiftData em um app nativo. Fotos e gravações ficam como arquivos no aparelho.
  2. Adicione contas com o Firebase Authentication. Login por e-mail já basta para começar. Se você adicionar o Google ou outro login de terceiros como forma principal de entrar, a diretriz 4.8 da Apple exige uma opção equivalente focada em privacidade, como o Sign in with Apple.
  3. Sincronize os registros de itens para o Cloud Firestore, e fotos e notas de voz para o Cloud Storage, cada um sob o próprio caminho do usuário.
  4. Faça o trabalho privilegiado no servidor. Qualquer coisa que exija direitos de administrador, como apagar todos os arquivos quando uma conta é excluída, fica nas Cloud Functions, nunca no pacote do aplicativo.
  5. Proteja tudo com regras de segurança para que cada usuário só possa ler e gravar os próprios dados:
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{uid}/{document=**} {
      allow read, write: if request.auth != null && request.auth.uid == uid;
    }
  }
}

Escreva a regra equivalente para o Cloud Storage e peça ao agente que escreva testes que tentam ler os dados de outro usuário e falham. O servidor MCP oficial do Firebase (está na configuração da Parte 4) permite que o agente entenda e valide suas regras, e pede sua aprovação antes de mudar qualquer coisa no projeto. A implantação continua sendo sua tarefa, e é por isso que firebase deploy é negado nas permissões.

Duas observações sobre custos. O plano gratuito Spark do Firebase cobre a Authentication (50.000 usuários mensais) e as cotas gratuitas do Firestore (1 GiB armazenado, 50.000 leituras e 20.000 gravações por dia), mas o Cloud Storage e o Cloud Functions exigem o plano Blaze, de pagamento por uso. O Blaze mantém cotas gratuitas generosas, incluindo 5 GB de armazenamento e 2 milhões de invocações de funções por mês, então um aplicativo pequeno ainda pode custar nada. Mesmo assim, configure um alerta de orçamento no primeiro dia.

Se você quiser entender o “porquê” mais profundo do design local-first, eu escrevi sobre isso em por que o software local-first está voltando.

Fase 5 — Os detalhes específicos do iPhone

Estes são os detalhes que separam “funciona no meu celular” de “passa na revisão”:

  • Os pedidos de permissão precisam de motivos honestos. Câmera, biblioteca de fotos, microfone e, se você usar o framework de fala da Apple, reconhecimento de fala: cada um precisa de uma string de finalidade que diga exatamente o porquê. “Para fotografar onde você guardou algo” é bom. “Este aplicativo precisa de acesso” é um motivo clássico de rejeição.
  • Peça no momento certo. Peça permissão para notificações quando a pessoa criar o primeiro lembrete, não na primeira abertura. As pessoas aceitam quando o motivo é óbvio.
  • Prefira o reconhecimento de fala no dispositivo onde o celular oferecer suporte, e diga na sua política de privacidade que o serviço de fala da plataforma pode processar áudio. A política do Stash faz exatamente isso.
  • Widgets são um pequeno aplicativo à parte. Eles têm o próprio ciclo de vida, os próprios limites de memória e a própria forma de ler seus dados. Reserve uma fatia inteira para eles.
  • Manifestos de privacidade. Desde maio de 2024, os aplicativos (incluindo os SDKs dentro deles) precisam declarar motivos aprovados para certas APIs do sistema. Os SDKs do Firebase trazem os próprios manifestos; verifique se o seu também existe.
  • Modo escuro, Dynamic Type, VoiceOver. Verifique os três em cada tela. Os agentes são muito mais confiáveis com rótulos de acessibilidade quando o AGENTS.md exige isso, então faça o AGENTS.md exigir.

Fase 6 — Teste como um cético

O agente vai dizer que terminou. Muitas vezes ele estará errado em coisas pequenas e, às vezes, em coisas grandes. Os agentes do Xcode 27 agora podem rodar testes e verificar pré-visualizações do SwiftUI sozinhos, o que ajuda, mas nada substitui uma pessoa com um celular na mão.

Automatizado: testes unitários para a busca, o modelo de dados e, principalmente, a lógica de mesclagem da sincronização. Esses são os bugs que fazem as pessoas perderem dados.

Na mão, antes de cada versão:

  • Um dispositivo real, não só o Simulator
  • Modo avião: salve, busque, edite, depois reconecte e confira se sincroniza
  • Modo escuro e o maior tamanho de texto em cada tela
  • VoiceOver: você consegue salvar e encontrar um item de olhos fechados?
  • Cada permissão negada, uma de cada vez
  • Uma instalação limpa e uma atualização sobre a versão anterior (os dados precisam sobreviver)
  • Excluir conta: tudo sumiu de verdade?

Quando algo quebrar, grave. Use a gravação de tela do iPhone, anexe o vídeo e pergunte ao M3.1 o que está errado. Ele aceita entrada de vídeo, e “assista a isto” vale mais do que três parágrafos de descrição.

Modelos de prompt para este tipo de aplicativo

Adapte estes modelos em vez de copiá-los às cegas.

Uma fatia:

Implemente a fatia 4 do ROADMAP.md (busca). Leia o AGENTS.md primeiro. A busca deve corresponder a nomes de itens, nomes de cômodos, notas e transcrições de notas de voz, sem diferenciar maiúsculas de minúsculas, conforme o usuário digita. Adicione um filtro “Com fotos”. Escreva os testes unitários primeiro, depois a implementação. Rode os testes e o verificador de tipos. Mostre o diff e uma lista de todas as suposições que você fez.

Um bug:

Em anexo está uma gravação de tela. Em um iPhone com o maior tamanho de texto, o teclado cobre o botão Salvar na tela de adicionar. Encontre a causa, explique em duas frases, corrija e verifique os outros formulários do aplicativo para o mesmo problema.

Uma revisão:

Revise todas as mudanças desde o último commit como um revisor sênior de iOS cético. Procure travamentos, perda de dados, vazamentos de privacidade, rótulos de acessibilidade ausentes, cores codificadas diretamente e qualquer coisa que quebre o uso offline. Não corrija nada ainda; me dê uma lista numerada, da mais séria para a menos séria.

Vale a pena rodar esse último prompt antes de cada commit. Custa um minuto e pega os problemas que custam um fim de semana.


Parte 8 — Como publicar um app na App Store em 2026

Construir o aplicativo é a parte divertida. Publicá-lo é papelada, e é na papelada que desenvolvedores de primeira viagem perdem uma semana. Aqui está tudo em um só lugar.

O que a Apple exige em outubro de 2026

RequisitoDetalhesEm vigor desde
Apple Developer ProgramUS$ 99 por ano (€ 99 na Alemanha). Empresas se inscrevem como organização, o que exige um número D-U-N-S—
Ferramentas de buildOs envios precisam ser compilados com Xcode 26 ou mais recente usando o SDK do iOS 2628 de abril de 2026
Alvo mínimoOs aplicativos precisam ter como alvo iOS 13 ou mais recente9 de setembro de 2026
Classificação etáriaResponda às perguntas atualizadas de classificação etária da Apple31 de janeiro de 2026
Manifesto de privacidadeMotivos aprovados para APIs de “motivo obrigatório”, inclusive em SDKs de terceiros1 de maio de 2024
Política de privacidadeVinculada no App Store Connect e acessível dentro do aplicativo (diretriz 5.1.1(i))—
Exclusão de conta“Se o seu aplicativo permite criar contas, você também precisa oferecer a exclusão de conta dentro do aplicativo” (5.1.1(v))—
Status de comerciante na UETodo desenvolvedor declara isso. O endereço, o telefone e o e-mail do comerciante aparecem na página do produto nos 27 países da UE—

As versões atuais da Apple são o Xcode 27 e o iOS 27, ambos lançados em 14 de setembro de 2026. Você ainda não precisa compilar com o Xcode 27, mas já não consegue enviar nada compilado com o Xcode 16 ou anterior (a Apple pulou direto do Xcode 16 para o 26 quando mudou para números de versão baseados no ano).

Uma observação para desenvolvedores alemães e da UE: se você publica como empresa, é um comerciante segundo a Lei de Serviços Digitais da UE, e a Apple verifica seus dados de contato antes de exibi-los na página do produto. Em fevereiro de 2025, a Apple removeu milhares de aplicativos das lojas da UE por falta dessas informações. Não seja um deles.

App Store Connect, campo por campo

Crie o registro do aplicativo no App Store Connect e depois preencha:

  • Bundle ID. Um identificador de domínio reverso que nunca muda, como o do Stash, network.grahammiranda.stash. Escolha com cuidado.
  • Nome (30 caracteres) e subtítulo (30). O Stash usa Stash — Find It Fast e Encontre qualquer coisa que você guardou: a marca mais o benefício e depois o benefício em palavras simples.
  • Palavras-chave (100 caracteres), separadas por vírgulas sem espaços. Não repita palavras que já estão no nome ou no subtítulo; elas contam do mesmo jeito.
  • Texto promocional (170 caracteres), que você pode alterar sem uma nova revisão, e a descrição (4,000).
  • Capturas de tela. De uma a dez por tamanho de dispositivo, PNG ou JPEG, sem transparência. Para iPhone, o tamanho de 6,9 polegadas (1320 × 2868) ou o de 6,5 polegadas (1284 × 2778); para iPad, o de 13 polegadas (2064 × 2752). O conjunto do Stash usa os tamanhos de 6,5 e 13 polegadas.
  • Categoria. Uma principal e uma secundária opcional. O Stash é Produtividade, com Utilidades em segundo.
  • URLs. Suporte, marketing e política de privacidade. Todos precisam funcionar.
  • Privacidade do app, o “rótulo nutricional”. Mais sobre isso abaixo, porque é aí que pessoas honestas ainda erram.
  • Classificação etária (questionário).
  • Informações para a revisão do app: dados de contato, notas para o revisor e, se seu aplicativo exigir login, uma conta de demonstração. Um modo convidado como o do Stash facilita a vida do revisor.
  • Conformidade de exportação. Se o seu aplicativo usa apenas a criptografia embutida no sistema operacional, como HTTPS, ele geralmente se qualifica para uma isenção. Consulte as orientações da Apple e depois defina ITSAppUsesNonExemptEncryption no seu Info.plist para não ser questionado a cada envio.

Os campos de texto também são um bom trabalho para o agente: “Escreva o subtítulo, as palavras-chave, o texto promocional e a descrição da App Store. Use apenas recursos que existem no código; liste o arquivo onde cada recurso está.” Essa última instrução impede que ele invente recursos.

TestFlight antes de qualquer outra coisa

Envie uma compilação (pelo Organizer do Xcode ou com eas build --platform ios --auto-submit no Expo) e teste pelo TestFlight primeiro:

  • Testadores internos: até 100 pessoas da sua equipe, sem necessidade de revisão.
  • Testadores externos: até 10.000, convidados por e-mail ou por link público. A primeira compilação externa passa por uma breve Beta App Review.
  • As compilações ficam testáveis por 90 dias.

Dê para cinco amigos com celulares diferentes por uma semana. Eles vão encontrar o travamento que você não encontrou.

O que realmente faz aplicativos serem rejeitados

A Apple diz que “em média, 90% dos envios são analisados em menos de 24 horas”, e que “mais de 40% dos problemas não resolvidos estão relacionados à diretriz 2.1: Completude do aplicativo”: travamentos, conteúdo de exemplo, informações incompletas e links quebrados. Os suspeitos de sempre em um primeiro aplicativo:

DiretrizO que isso significa na prática
2.1 Completude do aplicativoSem travamentos, sem “Lorem ipsum”, sem links mortos, dados da conta de demonstração se o login for obrigatório
4.2 Funcionalidade mínima“Seu aplicativo deve incluir recursos, conteúdo e interface que o elevem além de um site reembalado”
4.8 Serviços de loginLogin de terceiros como forma principal de acesso significa que você também precisa oferecer uma opção focada em privacidade, como o Login com a Apple
5.1.1(i) Política de privacidadeVinculada no App Store Connect e dentro do aplicativo; diz o que você coleta, quem processa e como funciona a exclusão
5.1.1(v) Exclusão de contaSe as pessoas podem criar uma conta, elas podem excluí-la no aplicativo
Metadados precisosAs capturas de tela e as descrições mostram o que o binário realmente faz, não o roteiro

O Stash mantém suas explorações de design no site, claramente rotuladas, e fora da página da App Store, o que está do lado certo dessa última linha.

Rótulos de privacidade: acerte, não apenas pareça plausível

A definição da Apple é precisa: “‘Coletar’ refere-se a transmitir dados para fora do dispositivo de uma forma que permita a você e/ou aos seus parceiros terceiros acessá-los por um período maior do que o necessário para atender à solicitação transmitida em tempo real.” Dados processados apenas no dispositivo não são coletados.

Na prática, para um aplicativo no formato do Stash:

  • Somente modo convidado (nada sai do celular): os dados não são coletados.
  • Contas com sincronização: o endereço de e-mail, as fotos, as gravações de voz e as notas armazenadas no seu backend são coletados, porque saem do dispositivo e ficam em um servidor, mesmo que só o usuário possa vê-los. Eles entram no rótulo como dados vinculados ao usuário, usados para a funcionalidade do app e não usados para rastreamento.

O agente é um excelente auditor aqui, porque consegue ler todas as chamadas de rede do código:

Audite este código em busca de cada dado que sai do dispositivo: o que é, para onde vai (qual SDK ou endpoint), se é armazenado, por quanto tempo e se está vinculado ao usuário. Inclua os dados enviados por SDKs de terceiros. Gere uma tabela que eu possa usar para preencher as perguntas de Privacidade do app da Apple e o formulário Data safety do Google Play.

Depois garanta que três documentos contem a mesma história: sua política de privacidade, seu rótulo de privacidade na App Store e, se você publicar no Android, seu formulário Data safety do Google Play. A política de privacidade do Stash diz que sua tabela de dados foi escrita para corresponder às duas declarações das lojas, o que é o padrão certo a seguir.

Mostrar imagem Imprima, cole ao lado da tela e confira antes de cada primeiro envio.

Como o Stash foi publicado

O Stash 1.0 entrou no ar em 23 de setembro de 2026. A versão 1.0.1, com “Novo design e correções de bugs”, seguiu em 2 de outubro, nove dias depois. Publique a versão que funciona e depois melhore em público: esse é o ritmo mais saudável que conheço para um primeiro aplicativo.


Parte 9 — “E o resto”: o kit de lançamento em volta do app

Um aplicativo na App Store sem nada em volta é uma loja sem placa. Aqui está o resto do kit, novamente com o Stash como exemplo.

Uma landing page com uma demonstração que as pessoas podem tocar

O site do Stash faz algumas coisas que eu copiaria para qualquer primeiro aplicativo:

  • Uma promessa na primeira dobra. “Guarde. Saiba onde.” Depois, uma frase e dois botões: baixar o aplicativo ou experimentar no navegador.
  • Uma prévia ao vivo no topo da página. O celular à direita não é uma imagem. Você pode tocar nele.
  • Uma demonstração real no navegador. A casa de exemplo onde você pode procurar as chaves, navegar pelos cômodos e adicionar um item de teste. A demonstração “roda na sua aba do navegador”, não toca nos dados do aplicativo e esquece tudo quando você recarrega. Ela deixa as pessoas experimentarem a ideia antes de se comprometerem com uma instalação.
  • Três passos, quatro recursos, sem jargão. Fotografe o lugar. Dê um nome e um cômodo. Encontre quando precisar.
  • As explorações de design, claramente rotuladas como conceitos, não como recursos.
  • Dez idiomas (inglês, alemão, francês, espanhol, italiano, holandês, português do Brasil, polonês, sueco e dinamarquês), cada um com hreflang tags para que os mecanismos de busca mostrem a versão certa, além de um seletor de aparência clara e escura.
  • Dados estruturados descrevendo o aplicativo como um MobileApplication, com seu preço, plataformas e link da App Store, para que os mecanismos de busca entendam que a página é sobre um aplicativo.
  • Nada assustador. O código do site não tem analytics, pixels de publicidade, incorporações de redes sociais, fontes externas, login nem formulário de contato. Ele guarda apenas o idioma e a aparência que você escolheu no navegador.

Mostrar imagem A landing page do Stash. O celular à direita é uma demonstração funcional, não uma captura de tela.

Uma página estática como esta também é um primeiro projeto perfeito para a mesma configuração de OpenCode e M3.1: HTML, CSS e um pouco de JavaScript puros, sem framework, e você vê cada mudança no navegador na hora.

Esta é informação geral de alguém que já passou por isso, não aconselhamento jurídico. Em caso de dúvida, consulte um advogado.

Publicar da Alemanha significa algumas páginas a mais do que um tutorial americano vai mencionar:

  • Um Impressum (aviso legal) nos termos do § 5 da Digitale-Dienste-Gesetz (DDG), a lei alemã que substituiu o antigo Telemediengesetz em 2024: nome da empresa, endereço, diretor administrativo, registro comercial, dados de contato e, se houver, o VAT ID.
  • Dois textos de privacidade separados. Um para o site e outro para o aplicativo, porque eles processam dados diferentes. O Stash tem os dois, e cada um diz claramente qual você está lendo.
  • Uma política de privacidade do aplicativo com conteúdo de verdade. A do Stash cobre o controlador, uma tabela com exatamente o que é coletado e por quê, a base legal de cada finalidade conforme o Artigo 6 do GDPR, os processadores envolvidos (Firebase, do Google), como as transferências internacionais são cobertas (o EU-U.S. Data Privacy Framework e as cláusulas contratuais padrão), retenção e exclusão, os direitos dos usuários, a autoridade supervisora responsável, crianças, segurança e como as mudanças são anunciadas.
  • Uma forma de excluir uma conta fora do aplicativo. O Stash oferece um formulário web além da opção no aplicativo. O Google Play exige um link web para exclusão de conta se o seu aplicativo permite que as pessoas criem contas, então você vai precisar de um de qualquer forma no dia em que publicar no Android.
  • Os termos de processamento de dados com o seu provedor de backend, aceitos no console dele antes de chegarem dados reais de usuários.

Cookies são a outra dor de cabeça clássica. O site do Stash contorna a maior parte disso por não ter nada para pedir consentimento: sem analytics, sem pixels de anúncios, sem rastreamento, apenas um idioma e um tema lembrados. O banner de consentimento mais barato é aquele de que você nunca precisa.

Custo do primeiro ano para criar um app com IA em 2026: orçamento enxuto de US$ 363, confortável de US$ 532 e completo de US$ 1.204, dividido entre Apple, MiniMax, Figma, Expo e Google Play
A assinatura do modelo é a maior linha em todos os orçamentos. A taxa da Apple é a única que você não pode evitar.

Otimização para a App Store sem promessas milagrosas

A busca da App Store funciona com seu nome, subtítulo e palavras-chave, e as pessoas decidem em segundos pelo ícone e pelas primeiras capturas de tela. Algumas regras que se sustentam:

  • Nome: marca mais benefício. “Stash — Find It Fast” diz a um estranho para que serve o aplicativo.
  • As capturas de tela contam uma história, em ordem. As seis do Stash parecem um anúncio curto: Tudo tem um lugar. Encontre. Em segundos. Salve o lugar. Sua casa. Cômodo por cômodo. Lembre os pequenos detalhes. Nítido. Em qualquer luz. Muita gente nunca rola além das duas ou três primeiras, então coloque o loop principal ali.
  • Localize a listagem em todos os idiomas que o seu aplicativo realmente oferece.
  • Peça avaliações em um momento feliz. O prompt de avaliação da Apple pode aparecer no máximo três vezes por ano por usuário, então não o desperdice na primeira inicialização. Em um aplicativo como o Stash, o momento óbvio é logo depois que alguém toca em “Achei”.
  • Use texto promocional para as estações. Limpeza de primavera, mudança de casa, guardar as coisas de inverno. Isso muda sem uma nova revisão.

Android, quando você estiver pronto

Se você construiu com Expo ou Flutter, o Android está basicamente a um build de distância. A papelada é menor, mas diferente:

  • O Google Play cobra US$ 25 uma única vez para abrir uma conta de desenvolvedor.
  • Novas contas pessoais (criadas depois de 13 de novembro de 2023) precisam rodar um teste fechado com pelo menos 12 testadores, inscritos por 14 dias seguidos, antes de poder publicar. Contas de organização estão isentas, o que é mais um motivo para publicar por meio de uma empresa se você tiver uma.
  • O formulário de segurança de dados é a versão do Google do rótulo de privacidade. Mantenha-o consistente com a sua política de privacidade e com as suas respostas na App Store.

Parte 10 — Quanto custa criar um app com IA em 2026

O software desta stack é em grande parte gratuito. O que você paga é o modelo, a assinatura da Apple e, opcionalmente, um assento melhor no Figma.

ItemPreço de tabelaQuando você precisa
Apple Developer ProgramUS$ 99 por ano (€ 99 na Alemanha)Para publicar na App Store
OpenCode v2Grátis, licença MITSempre
MiniMax M PlanGo US$ 22, Explore US$ 55, Build US$ 132 por mês (50% de desconto no primeiro mês na cobrança mensal até 14 de outubro)Para usar o M3.1-Flash-Preview
FigmaStarter grátis; licença Dev Professional US$ 12 por mês, licença Full US$ 16Um assento pago só para o servidor MCP desktop
XcodeGrátisBuilds nativos, em um Mac com Apple silicon
Expo EASPlano gratuito com 15 builds iOS e 15 Android por mês; Starter US$ 19 por mêsSe você constrói com Expo
FirebasePlano Spark gratuito; o Blaze é pagamento conforme o uso com cotas sem custoContas e sincronização; Storage e Functions exigem o Blaze
Google PlayUS$ 25, uma única vezSó se você publicar no Android
Landing pageO que custar sua hospedagem e domínioAltamente recomendado

Três orçamentos realistas para o primeiro ano

OrçamentoO que está incluídoPrimeiro ano
EnxutoAssinatura da Apple + M Plan Go; Figma Starter com frames exportados; Expo, Firebase e OpenCode nos planos gratuitosUS$ 363
ConfortávelEnxuto + um assento Figma Dev para o servidor MCP desktop + Google PlayUS$ 532
PowerApple + M Plan Explore + um assento Figma Full + Expo Starter + Google PlayUS$ 1.204

Mostrar imagem A assinatura do modelo é a maior linha em todos os orçamentos. A taxa da Apple é a única que você não pode evitar.

Preços de tabela em dólares americanos em 5 de outubro de 2026, sem impostos, com valores mensais cheios (sem descontos de lançamento). A sua conta de backend depende dos seus usuários; em pequena escala, as cotas sem custo do Firebase normalmente cobrem. Defina um alerta de orçamento de qualquer forma.

O orçamento enxuto dá cerca de US$ 30 por mês. O custo real do projeto não está na lista, porém: são as suas noites. A IA encurta a digitação, não o pensamento, e o pensamento é a maior parte.


Parte 11 — Dez erros a evitar ao criar seu primeiro app com IA

  1. Começar pelo código em vez do briefing. O agente vai construir alegremente o aplicativo errado muito rápido.
  2. Construir tudo de uma vez. “Faça o aplicativo inteiro” te dá um aplicativo inteiro que está um pouco quebrado em todo lugar. Construa fatias verticais.
  3. Pular o AGENTS.md. Sem ele, cada sessão começa do zero, e o agente decide de novo coisas que você já decidiu.
  4. Deixar o agente adicionar dependências livremente. Cada pacote é código que você não leu, tamanho extra no aplicativo e uma atualização futura para gerenciar. Faça ele perguntar.
  5. Fixar cores e tamanhos no código. Aí mudar o design significa editar 140 arquivos. Tokens, sempre.
  6. Acreditar no “pronto”. Os agentes relatam sucesso com otimismo. Rode no celular de verdade, em modo avião, no modo escuro, com o maior tamanho de texto.
  7. Colocar segredos no aplicativo. Qualquer coisa dentro de um pacote de aplicativo pode ser extraída. Chaves de API que custam dinheiro, ou dão acesso de administrador, ficam em um servidor.
  8. Um rótulo de privacidade plausível em vez de exato. Se os dados saem do dispositivo e ficam em um servidor, eles são coletados, mesmo quando só o usuário pode vê-los.
  9. Esquecer a exclusão de conta. A Apple exige isso no aplicativo se você permitir cadastro; o Google Play exige também um link web.
  10. Prometer o seu roadmap. Capturas de tela e descrições mostram o que o aplicativo faz hoje. Conceitos pertencem ao seu site, rotulados como conceitos.

E mais um de brinde: não ler o diff. Vibe coding significa não escrever cada linha. Não significa não ler as linhas que vão para produção. Os números de segurança do meu levantamento Estado da IA em 2026 são o motivo.


Parte 12 — Você deve usar exatamente esta stack? Seis cenários

1. “Nunca escrevi uma linha de código.”

Expo, o aplicativo desktop do OpenCode, o M3.1 no plano Go do M Plan e o plano gratuito do Figma com frames exportados. Mantenha seu primeiro aplicativo em um único loop principal, como o salvar-e-encontrar do Stash. Deixe os comandos de shell em perguntar, faça commit depois de cada passo que funcionar, e use /undo sem culpa.

2. “Só me importo com o iPhone, e quero tudo totalmente nativo.”

SwiftUI no Xcode 27, com o OpenCode dentro do Xcode via ACP ou no seu terminal com as ferramentas MCP do Xcode. M3.1 para planejar e construir. Você terá acesso primeiro aos frameworks mais novos da Apple e a integração mais estreita com o sistema.

3. “Eu já pago por Claude ou ChatGPT.”

Use o que você já tem e seja justo sobre onde ele ganha. Claude Code, Codex e Cursor estão na lista aprovada do Figma para o servidor MCP remoto hoje, incluindo as ferramentas de escrita no canvas que o OpenCode ainda não alcança. O OpenCode consegue entrar diretamente com ChatGPT Plus ou Pro. Adicione o M3.1 pelo OpenCode para os trabalhos em que sua janela de contexto de um milhão de tokens e a entrada de vídeo brilham.

4. “Quero o começo mais barato possível.”

MiniMax M3 em vez do M3.1 (pelo OpenCode Go a US$ 10 por mês, ou pagamento por uso), Figma Starter, as builds gratuitas do Expo e o plano gratuito do Firebase. A assinatura de US$ 99 da Apple é o único custo que você não consegue evitar para um app de iPhone. Se você não está pronto para isso, faça primeiro a versão web.

5. “Meu aplicativo lida com dados sensíveis.”

Projete primeiro para o modo convidado, mantenha os SDKs de terceiros no mínimo e pense também em para onde o seu código vai. Seus prompts e o código-fonte vão para o provedor do modelo. Para projetos muito sensíveis, modelos locais via Ollama mantêm tudo na sua própria máquina (meu artigo sobre o OpenCode v2 cobre essa configuração), e procure um profissional de privacidade para revisar o aplicativo antes do lançamento.

6. “Eu construo aplicativos para clientes.”

Um plano Figma Organization com Code Connect, as políticas do OpenCode para controlar quais provedores cada projeto de cliente pode usar, um nível do M Plan com espaço para vários agentes em paralelo e builds pagos do EAS. Coloque as regras de design de cada cliente em uma skill ou AGENTS.md versionado, para que cada sessão e cada colega de equipe comece das mesmas regras.


Parte 13 — O que observar nos próximos meses

  • O M3.1 completo da MiniMax. Se ele será lançado, se terá preço por token, benchmarks publicados e pesos abertos como o M3, e se a prévia Flash chegará ao OpenRouter, ao OpenCode Go ou ao Ollama Cloud.
  • O OpenCode na lista de permitidos do Figma. O pull request do OpenCode para um cliente Figma registrado está esperando o Figma. Quando entrar, as ferramentas de escrita do servidor remoto ficam disponíveis para usuários do OpenCode.
  • Os preços da escrita no canvas do Figma. O Figma diz que esses recursos são gratuitos durante o beta e passarão a ser cobrados por uso depois.
  • Figma Code Layers, apresentado na Config, que promete design e código no mesmo canvas.
  • O amadurecimento do OpenCode v2: o compartilhamento de sessão voltando, os plugins se atualizando e as versões 2.0.x se estabilizando.
  • O próximo prazo de SDK da Apple. Se a Apple seguir o padrão habitual, builds feitos com Xcode 27 se tornarão obrigatórios para envios por volta da próxima primavera.
  • O próprio Stash. As três explorações de design no site dele (fixar o ponto exato, Quick Move, caixas e etiquetas) mostram para onde as ideias estão indo.

Perguntas frequentes

Posso criar um aplicativo do zero sem experiência em programação?

Sim. Em 2026, um agente de codificação com IA como o OpenCode, combinado com um modelo forte como o MiniMax M3.1, escreve o código enquanto você toma as decisões: o que o aplicativo faz, como ele parece, quais dados ele armazena e como você o testa. Você ainda precisa aprender a ler um plano, revisar um diff, testar em um dispositivo real e lidar com o App Store Connect. Comece com um aplicativo que tenha um único loop principal e nenhum pagamento.

Quanto tempo leva para criar um aplicativo com IA?

Depende muito mais do escopo do que das ferramentas. Um aplicativo pequeno com um único loop principal, como um app de salvar e encontrar, é questão de algumas semanas de noites em vez de meses, se você construir em fatias verticais e testar à medida que avança. Publicar acrescenta alguns dias para o TestFlight e a papelada da App Store; a Apple diz que 90% dos envios são revisados em menos de 24 horas.

O que é o MiniMax M3.1?

O MiniMax M3.1 é a próxima geração da família de modelos M3 da MiniMax. Em outubro de 2026, a única versão que você pode usar é o MiniMax-M3.1-Flash-Preview, lançado em 27 de setembro de 2026: um modelo de codificação multimodal com janela de contexto de 1.000.000 de tokens, entrada de texto, imagem e vídeo, raciocínio sempre ativo e cinco níveis de esforço, de baixo a máximo. Ele está disponível apenas pela assinatura M Plan da MiniMax e pelo aplicativo MiniMax Code.

O MiniMax M3.1 está disponível pela API?

Só com uma chave de assinatura. O M3.1-Flash-Preview funciona nos endpoints compatíveis com OpenAI e com Anthropic da MiniMax, mas apenas com uma chave de assinatura M Plan. Não há preço de pagamento por uso, nem pesos abertos, nem listagem no OpenRouter, Ollama Cloud ou OpenCode Go ainda. O MiniMax M3 continua disponível no pagamento por uso a US$ 0,30 por milhão de tokens de entrada e US$ 1,20 por milhão de tokens de saída.

Como uso o MiniMax M3.1 no OpenCode?

Instale o OpenCode v2, inicie-o na pasta do seu projeto, execute /connect, escolha “MiniMax Token Plan (minimax.io)” e cole sua chave de assinatura do M Plan. Depois execute /models e selecione MiniMax-M3.1-Flash-Preview. Nenhum arquivo de configuração é necessário, embora um arquivo opencode.jsonc do projeto permita definir níveis de esforço por agente e adicionar permissões.

O servidor MCP do Figma funciona com o OpenCode?

Em parte. O servidor MCP remoto do Figma só aceita clientes aprovados durante o beta, e o OpenCode ainda não está na lista, então a conexão falha com um HTTP 403. O servidor MCP desktop do Figma funciona: ative-o no Modo Dev no aplicativo desktop do Figma e aponte o OpenCode para http://127.0.0.1:3845/mcp. Ele exige um assento Dev ou Full em um plano pago e oferece principalmente ferramentas somente leitura.

Preciso de um Mac para criar um aplicativo de iPhone?

Não necessariamente. O desenvolvimento nativo com Xcode precisa de um Mac, e o Xcode 27 exige Apple silicon. Com o Expo, o EAS compila seu aplicativo iOS na nuvem e o EAS Submit o envia ao App Store Connect a partir de macOS, Windows ou Linux. Você ainda vai querer um iPhone para testar, e precisa de uma assinatura do Apple Developer Program para publicar.

Quanto custa publicar um aplicativo na App Store?

O Apple Developer Program custa US$ 99 por ano, ou o equivalente local (€ 99 na Alemanha). A Apple não cobra por app nem por submissão. Os custos de desenvolvimento dependem das suas ferramentas; a configuração enxuta deste guia chega a cerca de US$ 363 no primeiro ano, incluindo uma assinatura MiniMax M Plan, com planos gratuitos para OpenCode, Figma, Expo e Firebase.

Quanto tempo leva a revisão da App Store?

A Apple diz que, em média, 90% dos envios são revisados em menos de 24 horas. O motivo mais comum de aplicativos travarem é a diretriz 2.1, Completude do aplicativo: travamentos, conteúdo de exemplo, informações de revisão incompletas e links quebrados, incluindo as URLs de suporte e da política de privacidade.

Devo usar SwiftUI, React Native (Expo) ou Flutter?

Use SwiftUI com Xcode 27 se o seu aplicativo for só para Apple e você quiser os recursos mais novos da plataforma. Use Expo (React Native) se você quiser uma única base de código para iPhone e Android e estiver trabalhando sozinho: o SDK 56 oferece suporte a iOS 16.4 e posteriores, tem widgets iOS estáveis e consegue compilar na nuvem. Use Flutter se você ou sua equipe já conhecem Dart.

Qual é a diferença entre o MiniMax M3 e o M3.1?

O MiniMax M3, lançado em 1º de junho de 2026, está disponível em geral com pesos abertos, benchmarks publicados e preço por token, e roda em muitos provedores. O M3.1-Flash-Preview, lançado em 27 de setembro de 2026, é uma prévia somente por assinatura, sem pesos, preço ou benchmarks ainda, com raciocínio sempre ativo e cinco níveis de esforço. Ambos têm uma janela de contexto de 1M tokens e aceitam texto, imagens e vídeo.

O que é o Stash?

Stash — Find It Fast é um aplicativo gratuito para iPhone e iPad da Graham Miranda UG que lembra onde você colocou as coisas. Você fotografa o lugar, dá um nome e um cômodo ao item e depois busca por nome, cômodo, nota ou nota de voz transcrita. Ele também oferece lembretes para itens sazonais, widgets, uso offline e sincronização entre iPhone e iPad. Foi lançado na App Store em 23 de setembro de 2026.

O Stash coleta meus dados?

O Stash não tem anúncios, não faz rastreamento por analytics e não vende dados. No modo convidado, sem conta, seus cômodos, itens, fotos e notas de voz ficam no seu dispositivo. Se você criar uma conta, eles sincronizam pelo Google Firebase para ficarem disponíveis no seu iPhone e iPad, isolados de outros usuários, e você pode excluir sua conta e seus dados nos Ajustes ou por um formulário web.


A conclusão

Criar um aplicativo do zero em 2026 já não é uma questão de saber escrever o código. Um agente como o OpenCode v2, rodando um modelo como o MiniMax M3.1, escreve mais código em uma tarde do que você leria em uma semana. O trabalho de verdade mudou para as bordas: decidir o que o aplicativo é, projetá-lo com cuidado suficiente para que um agente não o interprete mal, testá-lo como um cético e fazer a papelada sem glamour que transforma uma pasta de projeto em algo que um estranho pode baixar.

A stack deste guia é a que eu recomendaria hoje. Figma para decisões que você pode ver. OpenCode v2 porque é aberto, scriptável, cuidadoso com permissões e não é fiel a nenhum modelo único. MiniMax M3.1 porque um milhão de tokens de contexto e entrada de vídeo combinam excepcionalmente bem com a construção de aplicativos, desde que você trate uma prévia como prévia. E as “coisas” (Firebase, TestFlight, rótulos de privacidade, uma landing page, páginas legais) porque é isso que os usuários realmente encontram.

O Stash é como isso se parece quando vai ao ar: uma pequena promessa, bem cumprida. Baixe o Stash na App Store, ou experimente a demonstração no navegador primeiro. Depois vá construir o seu.


Construindo seu primeiro aplicativo com IA? Gostaria de saber qual framework você escolheu, se conseguiu fazer o servidor MCP do Figma conversar com o seu agente e como o MiniMax M3.1 está se saindo para você. Correções e contraevidências são bem-vindas; este artigo é atualizado quando o cenário muda.

Divulgação: O Stash é meu próprio aplicativo, publicado pela minha empresa, Graham Miranda UG. É gratuito, sem anúncios e sem compras dentro do aplicativo. Não há links de afiliados neste artigo, e nenhuma das empresas mencionadas patrocinou ou revisou o texto antes da publicação.

Última atualização: 5 de outubro de 2026.

Adicione seu sinal.

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

pt_BRPortuguês do Brasil