Apoiar
Idioma
Tema
Técnico

Por que removemos todos os emojis de bandeira do MapGuesser

No fim de 2024, a Síria trocou de bandeira. A Apple atualizou em março, o Google em junho, o Twitter em janeiro de 2026. Para um jogo de bandeiras, não dava mais para depender dos emojis. Contamos como refizemos tudo do zero.

Publicado em 2 de abril de 20267 min de leitura

TL;DR — Os emojis de bandeira aparecem de forma diferente conforme o aparelho e levam meses para serem atualizados quando um país troca de bandeira. Para o MapGuesser, isso era um problema real. Substituímos todos por 254 imagens HD (768×576 px) no estilo Apple, ampliadas 4x por IA com o modelo HAT-L a partir de capturas do Borderly. Resultado: renderização idêntica em todos os aparelhos e um script que atualiza tudo com um comando.

O bug que não dava mais para ignorar

Dezembro de 2024, a Síria troca de bandeira. O regime Assad cai, o país volta à bandeira da independência — verde-branco-preto, três estrelas vermelhas. A antiga, vermelho-branco-preto com duas estrelas verdes, ficou no passado.

Nos meses seguintes, vira uma bagunça. A Apple atualiza seu emoji em março de 2025 (iOS 18.4). A Samsung vem em abril. E o Google Android? Só em junho de 2025. E o Twitter/X? Janeiro de 2026. Durante meses, os jogadores do Flag Quiz não viam a mesma bandeira dependendo do aparelho. Um jogador em um iPhone recente via a bandeira nova, o adversário no Android via a antiga.

Para um jogo em que é preciso reconhecer bandeiras, isso é bem eliminatório.

Sabíamos que os emojis de bandeira eram um assunto frágil. Achávamos que o polyfill que usávamos (baseado no Twemoji) bastaria para uniformizar. Só que o Twemoji não é mais realmente mantido desde a compra do Twitter, e a nova bandeira síria também não estava lá.

Não dava mais para adiar.

O verdadeiro problema com os emojis de bandeira

Um emoji de bandeira não é uma imagem. É um código Unicode que cada sistema interpreta do seu jeito:

  • Apple atualiza mais rápido, com uma renderização característica (um leve efeito ondulado, como uma bandeira ao vento). A Síria foi atualizada em março de 2025
  • Google/Android exibe retângulos chapados. A Síria só foi atualizada em junho de 2025 — 3 meses depois da Apple
  • Windows chegou a exibir os códigos de letras ("FR", "SY") durante anos, em vez de bandeiras de verdade
  • Samsung tem ainda outro design e outro calendário (abril de 2025 para a Síria)
  • Twitter/X (Twemoji) só atualizou em janeiro de 2026 — mais de um ano após a mudança

Para um jogo de geografia, isso cria situações absurdas:

  • Um jogador perde porque a bandeira dele está desatualizada e ele não a reconhece
  • Dois jogadores na mesma partida veem bandeiras diferentes
  • Assim que você amplia um emoji, fica borrado — emojis são renderizados em resolução minúscula

Decidimos parar de depender de gente que não controla as mesmas coisas que nós. Precisávamos hospedar nossas próprias bandeiras.

Encontrar a fonte certa

Não queríamos simples retângulos chapados. Queríamos a renderização estilo Apple — aquela com o efeito ondulado que todo mundo conhece do iPhone. É mais expressivo que um retângulo, e é o estilo ao qual nossos jogadores estão acostumados.

O problema: a Apple não distribui seus emojis, e ninguém conseguiu reproduzir esse efeito ondulado em código de forma convincente.

Foi aí que encontramos o Borderly. É uma API que fornece recursos geográficos: mapas SVG, fronteiras, bandeiras. Eles também quebraram a cabeça com o problema e escreveram um artigo excelente ("The Quest for Wavy Flags") documentando tudo o que tentaram:

  • Filtros SVG → resultado artificial
  • Deformações geométricas → distorções estranhas
  • Manipulação de pixels em JavaScript → qualidade insuficiente
  • Capturas de tela dos emojis do macOS → perfeito

Nenhuma técnica de código reproduzia a renderização da Apple de forma convincente. Então eles foram pelo caminho mais simples: screenshots do emoji do macOS, disponibilizados via CDN. 251 bandeiras em 192x144 pixels, idênticas às do iPhone. Completamos com 3 territórios adicionais para chegar às nossas 254.

Tínhamos nossa fonte.

O problema do tamanho

192x144 pixels serve para uma bandeirinha em uma lista. Mas no Flag Quiz os jogadores podem ampliar para distinguir melhor os detalhes de um brasão ou de um símbolo. E aí, 192 pixels de largura pixelam.

Uma ampliação comum só deixa o borrão maior. Precisávamos de uma ferramenta capaz de inventar detalhes coerentes onde não há nenhum — upscaling por IA.

Ampliar 254 bandeiras com IA

Começamos testando o Real-ESRGAN, o modelo mais conhecido para esse tipo de tarefa. Resultados aceitáveis, mas as bordas das estrelas e dos crescentes ficavam sem nitidez.

Passamos então para o HAT-L (Hybrid Attention Transformer), um modelo mais recente (CVPR 2023). Sem entrar no detalhe da arquitetura, a diferença essencial é que o HAT é muito melhor em reconstruir bordas nítidas e formas geométricas — exatamente do que uma bandeira é feita.

O modelo pesa 316 MB e roda nos chips Apple Silicon (M1/M2/M3). Cerca de 30 segundos por bandeira, 2 horas para processar as 254.

192x144 na entrada → 768x576 na saída. Quatro vezes a resolução, com detalhes recriados. Passe o mouse sobre o comparador para ver a diferença — e troque de bandeira para explorar:

Bhoutan — undefinedBhoutan — undefined
Antes — 192px ampliadoDepois — 768px ampliado por IA
Comparar:

Não funcionou de primeira

Se tivesse sido tão simples, este artigo teria três parágrafos.

A transparência. As bandeiras estilo Apple têm um contorno ondulado sobre fundo transparente. A primeira tentativa convertia a imagem em modo opaco: fundo preto por toda parte. Foi preciso tratar a transparência separadamente — ampliar as cores de um lado, a máscara de transparência do outro, e recompor.

As bordas que vazavam. O modelo via a transição brusca entre a bandeira e a área transparente e tentava suavizá-la, criando um halo branco. Resolvemos isso "estendendo" as cores da borda para dentro da área transparente antes do upscaling — o modelo deixa de ver uma transição brusca, e os artefatos somem.

O texto ilegível. 19 bandeiras têm texto: lemas nacionais, inscrições, caligrafias. O modelo de IA transformava tudo em um borrão (o "ORDEM E PROGRESSO" do Brasil ficava ilegível). Para essas bandeiras, passamos automaticamente para um SVG vetorial quando a exibição ultrapassa 200 pixels. O texto permanece nítido em qualquer tamanho.

Como ficou hoje

Cada bandeira existe em três versões:

  • Fonte (192x144) — as capturas do Borderly, guardadas para poder recalcular tudo
  • HD (768x576) — ampliadas por IA, usadas em todo o jogo
  • SVG vetorial — para as 19 bandeiras com texto, em tamanho grande

Amostra de 8 bandeiras HD estilo Apple: França, Brasil, Japão, Austrália, Butão, Síria, Reino Unido, Canadá
Amostra de 8 bandeiras HD estilo Apple: França, Brasil, Japão, Austrália, Butão, Síria, Reino Unido, Canadá

Explore essas bandeiras em detalhe: França, Brasil, Japão, Austrália, Butão, Síria, Reino Unido, Canadá.

Tudo é comandado por um único script. Quando um país troca de bandeira, rodamos o comando: o script detecta o que mudou por checksums e reprocessa apenas as bandeiras afetadas.

Atualizamos 16 componentes no app, removemos o polyfill de emoji e duas dependências que não serviam mais. E, sobretudo: todos os jogadores agora veem a mesma bandeira, em todos os aparelhos.

Os números

Bandeiras cobertas 254 países e territórios
Resolução fonte → final 192x144 → 768x576 (x4)
Modelo de IA HAT-L (316 MB)
Tempo de processamento ~30 s/bandeira, ~2 h no total
Bandeiras com fallback SVG 19 (as que têm texto)

E depois?

No próximo país que trocar de bandeira, estamos prontos. Um comando e está resolvido. Sem precisar esperar que Apple, Google e Microsoft entrem em acordo.

Se você é desenvolvedor e usa emojis de bandeira no seu app, veja isto como um relato de experiência: funciona até o dia em que para de funcionar. E nesse dia é melhor ter um plano B.


Quer ver o resultado? Comece uma partida de Flag Quiz, teste seus conhecimentos com o Countryle ou explore as bandeiras dos 254 países do mundo.

Escrito por

Alexandre Bonefons

Criador do MapGuesser, apaixonado por geografia e desenvolvimento web.

Compartilhar este artigoXLinkedIn

Fontes

Perguntas frequentes

O caso mais marcante é o da Síria: no fim de 2024, após a queda do regime Assad, o país voltou à sua bandeira da independência (verde-branco-preto, três estrelas vermelhas). Outras mudanças recentes incluem a Martinica (nova bandeira adotada em 2023, atualizada aos poucos pelas plataformas) e a Nova Zelândia, que reabre periodicamente o debate sobre trocar de bandeira. O MapGuesser atualiza suas bandeiras rodando um simples script.

Emojis não são imagens fixas — são códigos que cada aparelho redesenha com a própria fonte. Apple, Google, Samsung e Microsoft têm cada um seu conjunto de emojis de bandeira, com estilos bem diferentes (ondulado na Apple, retângulo chapado no Google) e, sobretudo, calendários de atualização independentes. Quando a Síria trocou de bandeira no fim de 2024, a Apple atualizou em março de 2025, o Google só em junho, e o Twitter/X em janeiro de 2026. Durante meses, o mesmo emoji exibia duas bandeiras diferentes conforme o aparelho.

19 bandeiras contêm texto visível: o Brasil ('ORDEM E PROGRESSO'), a Arábia Saudita (a chahada em árabe), o Irã (a caligrafia 'Allahu Akbar'), o Iraque, o Afeganistão, e outras como Belize, Bolívia ou Paraguai com seus brasões detalhados. No MapGuesser, essas bandeiras passam automaticamente para uma versão vetorial SVG quando você amplia, para manter o texto legível.

O upscaling por IA (ou superresolução) consiste em ampliar uma imagem recriando detalhes que o original não tem. Diferente de um zoom comum, que estica os pixels e deixa a imagem borrada, um modelo de IA treinado com milhões de imagens consegue 'adivinhar' os detalhes que faltam de forma coerente. Usamos o modelo HAT-L para levar nossas bandeiras de 192x144 para 768x576 pixels.

Temos um script automatizado que baixa as bandeiras do Borderly.dev, amplia para HD com IA e detecta mudanças por checksums. Quando uma bandeira muda, basta rodar o script de novo: só as bandeiras alteradas são reprocessadas. Não precisamos mais esperar que a Apple ou o Google atualizem seus emojis.

254 países e territórios estão cobertos, incluindo todos os Estados membros da ONU e diversos territórios (Guadalupe, Groenlândia, Hong Kong etc.). Cada bandeira está disponível em 768x576 pixels. As 19 bandeiras com texto também têm uma versão vetorial SVG para permanecerem legíveis em tamanho grande.