Perché abbiamo eliminato tutte le emoji bandiera da MapGuesser
Fine 2024, la Siria cambia bandiera. Apple aggiorna a marzo, Google a giugno, Twitter a gennaio 2026. Per un gioco di bandiere non si poteva più contare sulle emoji. Ecco come abbiamo rifatto tutto da zero.
TL;DR — Le emoji bandiera appaiono diverse a seconda del dispositivo e impiegano mesi ad aggiornarsi quando un paese cambia bandiera. Per MapGuesser era un problema serio. Le abbiamo sostituite tutte con 254 immagini HD (768×576 px) in stile Apple, ingrandite 4x con IA usando il modello HAT-L a partire da catture di Borderly. Risultato: una resa identica su tutti i dispositivi e uno script che aggiorna tutto con un comando.
Il bug che non potevamo più ignorare
Dicembre 2024, la Siria cambia bandiera. Il regime di Assad cade, il paese torna alla bandiera dell'indipendenza — verde-bianco-nero, tre stelle rosse. La vecchia, rosso-bianco-nero con due stelle verdi, è archiviata.
Nei mesi successivi è il caos. Apple aggiorna la sua emoji a marzo 2025 (iOS 18.4). Samsung segue ad aprile. Google Android? Solo a giugno 2025. E Twitter/X? Gennaio 2026. Per mesi i giocatori di Flag Quiz non hanno visto la stessa bandiera a seconda del dispositivo. Un giocatore su un iPhone recente vedeva la bandiera nuova, il suo avversario su Android quella vecchia.
Per un gioco in cui bisogna riconoscere le bandiere, è un problema piuttosto insormontabile.
Sapevamo che le emoji bandiera erano un terreno fragile. Pensavamo che il polyfill che usavamo (basato su Twemoji) bastasse a uniformare. Solo che Twemoji non è più davvero mantenuto dall'acquisizione di Twitter, e la nuova bandiera siriana non c'era nemmeno lì.
Non era più un tema rinviabile.
Il vero problema delle emoji bandiera
Un'emoji bandiera non è un'immagine. È un codice Unicode che ogni sistema interpreta a modo suo:
- Apple aggiorna più in fretta, con una resa distintiva (un leggero effetto ondulato, come una bandiera al vento). La Siria è stata aggiornata a marzo 2025
- Google/Android mostra rettangoli piatti. La Siria è stata aggiornata solo a giugno 2025 — 3 mesi dopo Apple
- Windows ha addirittura mostrato per anni i codici a due lettere ("FR", "SY") al posto delle bandiere vere
- Samsung ha un altro design ancora e un altro calendario (aprile 2025 per la Siria)
- Twitter/X (Twemoji) ha aggiornato solo a gennaio 2026 — più di un anno dopo il cambiamento
Per un gioco di geografia questo crea situazioni assurde:
- Un giocatore perde perché la sua bandiera è obsoleta e non la riconosce
- Due giocatori nella stessa partita vedono due bandiere diverse
- Appena si ingrandisce un'emoji diventa sfocata — le emoji sono renderizzate a risoluzione minuscola
Abbiamo deciso di smettere di dipendere da persone che non controllano le stesse cose che controlliamo noi. Dovevamo ospitare le nostre bandiere.
Trovare la fonte giusta
Non volevamo semplici rettangoli piatti. Volevamo la resa in stile Apple — quella con l'effetto ondulato che tutti conoscono su iPhone. È più espressiva di un rettangolo ed è lo stile a cui i nostri giocatori sono abituati.
Il problema: Apple non distribuisce le sue emoji, e riprodurre quell'effetto ondulato via codice non è riuscito a nessuno in modo pulito.
È lì che abbiamo trovato Borderly. È un'API che fornisce asset geografici: mappe SVG, confini, bandiere. Anche loro ci si sono scontrati, e ne hanno tratto un articolo appassionante ("The Quest for Wavy Flags") in cui documentano tutto ciò che hanno provato:
- Filtri SVG → risultato artificiale
- Deformazioni geometriche → distorsioni strane
- Manipolazione dei pixel in JavaScript → qualità insufficiente
- Screenshot delle emoji di macOS → perfetto
Nessuna tecnica via codice riproduceva la resa Apple in modo convincente. Così hanno scelto la via più semplice: screenshot dell'emoji macOS, messi a disposizione tramite il loro CDN. 251 bandiere a 192x144 pixel, identiche a quelle dell'iPhone. Abbiamo completato con 3 territori aggiuntivi per arrivare alle nostre 254.
Avevamo la nostra fonte.
Il problema delle dimensioni
192x144 pixel vanno bene per una bandierina in un elenco. Ma nel Flag Quiz i giocatori possono ingrandire per distinguere meglio i dettagli di uno stemma o di un simbolo. E lì 192 pixel di larghezza pixelano.
Un ingrandimento classico rende soltanto la sfocatura più grande. Ci serviva uno strumento capace di inventare dettagli coerenti dove non ce ne sono — l'upscaling con IA.
Ingrandire 254 bandiere con l'IA
Abbiamo iniziato provando Real-ESRGAN, il modello più noto per questo tipo di compito. Risultati accettabili, ma i bordi delle stelle e delle mezzelune mancavano di nitidezza.
Siamo quindi passati a HAT-L (Hybrid Attention Transformer), un modello più recente (CVPR 2023). Senza entrare nel dettaglio dell'architettura, la differenza chiave è che HAT è molto più bravo a ricostruire bordi netti e forme geometriche — esattamente ciò di cui è fatta una bandiera.
Il modello pesa 316 MB e gira sui chip Apple Silicon (M1/M2/M3). Circa 30 secondi per bandiera, 2 ore per elaborarne 254.
192x144 in ingresso → 768x576 in uscita. Quattro volte la risoluzione, con dettagli ricreati. Passa il mouse sul comparatore per vedere la differenza — e cambia bandiera per esplorare:


Non ha funzionato al primo colpo
Se fosse stato così semplice, questo articolo sarebbe lungo tre paragrafi.
La trasparenza. Le bandiere in stile Apple hanno un contorno ondulato su fondo trasparente. Il primo tentativo convertiva l'immagine in modalità piena: fondo nero ovunque. È stato necessario trattare la trasparenza separatamente — ingrandire i colori da una parte, la maschera di trasparenza dall'altra, e ricomporre.
I bordi che sbavavano. Il modello vedeva la transizione brusca tra la bandiera e la zona trasparente e cercava di ammorbidirla, creando un alone bianco. Lo abbiamo risolto "estendendo" i colori del bordo nella zona trasparente prima dell'upscaling: il modello non vede più una transizione brusca, e gli artefatti spariscono.
Il testo reso illeggibile. 19 bandiere hanno del testo sopra — motti nazionali, iscrizioni, calligrafie. Il modello di IA le trasformava in una poltiglia sfocata (l'"ORDEM E PROGRESSO" del Brasile diventava illeggibile). Per queste bandiere passiamo automaticamente a un SVG vettoriale quando la visualizzazione supera i 200 pixel. Il testo resta nitido a qualsiasi dimensione.
Il risultato oggi
Ogni bandiera esiste in tre versioni:
- Sorgente (192x144) — le catture di Borderly, conservate per poter ricalcolare tutto
- HD (768x576) — ingrandite dall'IA, usate ovunque nel gioco
- SVG vettoriale — per le 19 bandiere con testo, in grande formato

Esplora queste bandiere nel dettaglio: Francia, Brasile, Giappone, Australia, Bhutan, Siria, Regno Unito, Canada.
Tutto è governato da un unico script. Quando un paese cambia bandiera rilanciamo il comando: lo script rileva ciò che è cambiato tramite checksum e rielabora solo le bandiere interessate.
Abbiamo aggiornato 16 componenti nell'app, eliminato il polyfill delle emoji e due dipendenze ormai inutili. E soprattutto: tutti i giocatori vedono adesso la stessa bandiera, su qualsiasi dispositivo.
I numeri
| Bandiere coperte | 254 paesi e territori |
| Risoluzione sorgente → finale | 192x144 → 768x576 (x4) |
| Modello IA | HAT-L (316 MB) |
| Tempo di elaborazione | ~30 sec/bandiera, ~2 h in totale |
| Bandiere con fallback SVG | 19 (quelle con testo) |
E poi?
Al prossimo paese che cambierà bandiera saremo pronti. Un comando e via. Senza più aspettare che Apple, Google e Microsoft si mettano d'accordo.
Se sei uno sviluppatore e usi emoji bandiera nella tua app, prendilo come un ritorno d'esperienza: funziona fino al giorno in cui smette di funzionare. E quel giorno è meglio avere un piano B.
Vuoi vedere il risultato? Avvia una partita di Flag Quiz, metti alla prova le tue conoscenze con Countryle o esplora le bandiere dei 254 paesi del mondo.
Scritto da
Creatore di MapGuesser, appassionato di geografia e sviluppo web.
Fonti
Domande frequenti
Il caso più eclatante è la Siria: alla fine del 2024, dopo la caduta del regime di Assad, il paese è tornato alla bandiera dell'indipendenza (verde-bianco-nero, tre stelle rosse). Tra gli altri cambiamenti recenti ci sono la Martinica (nuova bandiera adottata nel 2023, aggiornata progressivamente dalle piattaforme) e la Nuova Zelanda, che riapre periodicamente il dibattito sul cambio di bandiera. MapGuesser aggiorna le sue bandiere lanciando un semplice script.
Le emoji non sono immagini fisse: sono codici che ogni dispositivo ridisegna con il proprio font. Apple, Google, Samsung e Microsoft hanno ciascuno il proprio set di emoji bandiera, con stili molto diversi (ondulato in Apple, rettangolo piatto in Google) e soprattutto calendari di aggiornamento indipendenti. Quando la Siria ha cambiato bandiera a fine 2024, Apple ha aggiornato a marzo 2025, Google solo a giugno e Twitter/X a gennaio 2026. Per mesi la stessa emoji ha mostrato due bandiere diverse a seconda del dispositivo.
19 bandiere contengono testo visibile: il Brasile ('ORDEM E PROGRESSO'), l'Arabia Saudita (la shahada in arabo), l'Iran (la calligrafia 'Allahu Akbar'), l'Iraq, l'Afghanistan e altre come Belize, Bolivia o Paraguay con i loro stemmi dettagliati. Su MapGuesser queste bandiere passano automaticamente a una versione vettoriale SVG quando si ingrandisce, per mantenere il testo leggibile.
L'upscaling con IA (o super-risoluzione) consiste nell'ingrandire un'immagine ricreando dettagli che l'originale non ha. A differenza di uno zoom classico, che dilata i pixel e rende l'immagine sfocata, un modello di IA addestrato su milioni di immagini è in grado di 'indovinare' i dettagli mancanti in modo coerente. Usiamo il modello HAT-L per portare le nostre bandiere da 192x144 a 768x576 pixel.
Abbiamo uno script automatizzato che scarica le bandiere da Borderly.dev, le ingrandisce in HD con IA e rileva i cambiamenti tramite checksum. Quando una bandiera cambia basta rilanciare lo script: solo le bandiere modificate vengono rielaborate. Non serve più aspettare che Apple o Google aggiornino le loro emoji.
Sono coperti 254 paesi e territori, inclusi tutti gli Stati membri dell’ONU e numerosi territori (Guadalupa, Groenlandia, Hong Kong, ecc.). Ogni bandiera è disponibile a 768x576 pixel. Le 19 bandiere con testo dispongono anche di una versione vettoriale SVG per restare leggibili in grande formato.