Che cos'è NDEF, e perché lo usa ogni tag leggibile?
NDEF, il NFC Data Exchange Format, è un piccolo contenitore che dice cosa conserva un tag e al tempo stesso lo conserva. Un tag scritto in NDEF lo capisce qualsiasi lettore conforme, compreso quello del sistema operativo. Un tag scritto senza NDEF conserva byte che solo il suo programma sa interpretare.
Il problema che NDEF risolve
Un tag è un piccolo blocco di memoria. Senza un accordo preliminare, i byte che contiene non significano nulla per chi non li ha scritti: è un indirizzo web, una misura di temperatura, un identificatore o rumore?
NDEF porta quell'accordo. Avvolge il contenuto in una struttura che spiega che cosa quel contenuto è, così che un lettore che non ha mai visto quel tag prima possa comunque decidere cosa farne.
La forma di un messaggio
Un messaggio NDEF è una successione di record. Ogni record porta una piccola intestazione che descrive di che genere di cosa si tratta e come va interpretato quel tipo, seguita dal contenuto vero e proprio.
Quell'intestazione è tutto il senso dell'invenzione. È ciò che permette a un telefono di vedere un record e concludere «questo è un indirizzo web» invece di «questi sono quaranta byte». Dei record di tipo noto si occupa il sistema operativo senza che intervenga alcuna applicazione, ed è per questo che un avvicinamento può aprire un browser su un apparecchio dove non è stato installato nulla a tale scopo.
Come appare un tag senza NDEF
Appare come se fosse rotto, ed è questo il problema pratico.
Il telefono rileva il tag, ne identifica la tecnica e annuncia che non c'è nulla su cui agire. Per chi avvicina il telefono, questo è indistinguibile da una lettura fallita, anche se la lettura è riuscita perfettamente e la memoria può essere piena di dati.
Da qui viene buona parte delle segnalazioni «il mio telefono vede il tag ma non succede nulla». Il lato radio ha funzionato. Semplicemente non c'era nulla in un formato che qualcosa potesse interpretare.
Quanto costa il contenitore
Byte. La struttura porta con sé un sovraccarico, e su un tag piccolo quel sovraccarico è una parte apprezzabile di ciò che hai pagato. Un tag annunciato con una certa capacità offre meno di quella capacità per il tuo contenuto reale, e il deficit cresce con il numero di record.
Da qui esce una regola che vale la pena applicare: un record è meglio di diversi. Un solo indirizzo web in un record lascia più spazio e si legge più in fretta della stessa informazione distribuita su un collegamento, un titolo e una nota, perché ogni record aggiuntivo porta byte di intestazione che il lettore deve leggere.
L'eccezione è la ridondanza deliberata, per esempio un record di testo aggiuntivo perché sulle piattaforme che ignorano il tipo di record principale compaia almeno qualcosa di leggibile. Quei byte valgono la pena.
Domande frequenti
Devo usare NDEF?
Tecnicamente no, ma per tutto ciò che verrà letto dal telefono di qualcun altro la risposta pratica è sì. Senza NDEF dovresti distribuire un'applicazione che conosca la tua ripartizione della memoria, il che annulla il senso di incollare un tag su un manifesto.
Tutti i telefoni leggono NDEF allo stesso modo?
L'analisi è la stessa, la reazione no. Le due piattaforme leggono il contenitore in modo identico e poi applicano le proprie regole su quali tipi di record innescano un'azione, ed è proprio lì che il comportamento si separa.
Un tag può contenere NDEF e altri dati insieme?
Su molti chip sì, perché NDEF occupa una zona determinata e il resto della memoria può contenere quello che vuoi. Solo la parte NDEF la capisce un lettore qualsiasi, tutto ciò che resta fuori ha bisogno del tuo programma.
Perché il mio tag mostra meno spazio libero di quello annunciato?
Una parte della memoria sostiene la struttura che descrive il tag stesso, e il contenitore NDEF porta il proprio sovraccarico. Entrambi vengono scalati prima del tuo contenuto, e la differenza è normale, non un difetto.