Ir para o conteúdo
Idioma: PT

O que é o NDEF, e por que toda tag legível o usa?

O NDEF, o formato de troca de dados do NFC, é um pequeno contêiner que diz o que a tag guarda além de guardá-lo. Uma tag gravada em NDEF é entendida por qualquer leitor conforme, inclusive o que vem embutido no sistema operacional. Uma tag gravada sem ele guarda bytes que só o software dela consegue interpretar.

O problema que o NDEF resolve

Uma tag é um pequeno bloco de memória. Sem uma convenção, os bytes nela não querem dizer nada para quem não os gravou: isto é um endereço da web, uma leitura de temperatura, um identificador, ou ruído?

O NDEF fornece essa convenção. Ele embrulha o conteúdo numa estrutura que declara o que o conteúdo é, de modo que um leitor que nunca viu aquela tag antes ainda consegue decidir o que fazer com ela.

A forma de uma mensagem

Uma mensagem NDEF é uma sequência de registros. Cada registro carrega um pequeno cabeçalho que descreve que tipo de coisa ele é e como o tipo deve ser interpretado, seguido do conteúdo em si.

Esse cabeçalho é a razão de ser de tudo. É ele que permite a um celular ver um registro e concluir “isto é um endereço da web” em vez de “estes são quarenta bytes”. Registros de tipos bem conhecidos são tratados pelo sistema operacional sem a participação de nenhum aplicativo, e é por isso que tocar numa tag pode abrir um navegador num aparelho onde nada foi instalado para esse fim.

Como é uma tag sem NDEF

Ela parece quebrada, e esse é o problema prático.

O celular detecta a tag, identifica a tecnologia dela e informa que não há nada sobre o que agir. Para quem toca, isso é indistinguível de uma leitura que falhou, ainda que a leitura tenha dado perfeitamente certo e a memória possa estar cheia de dados.

Isso explica boa parte dos relatos de “o celular vê a tag mas nada acontece”. O lado do rádio funcionou. Simplesmente não havia nada num formato que alguma coisa pudesse interpretar.

O que o contêiner custa a você

Bytes. A estrutura tem um custo fixo, e numa tag pequena esse custo é uma fração apreciável do que você pagou. Uma tag anunciada com uma certa capacidade oferece menos que isso para o seu conteúdo de verdade, e a diferença cresce com o número de registros.

O que leva a uma regra que vale aplicar: prefira um registro a vários. Um único endereço da web num registro deixa mais espaço e é lido mais rápido que a mesma informação dividida entre um link, um título e uma nota, porque cada registro a mais acrescenta bytes de cabeçalho que o leitor tem de ler.

A exceção é a redundância deliberada, como acrescentar um registro de texto simples para que algo legível apareça nas plataformas que ignoram o tipo de registro principal. Essa vale os bytes.

Perguntas frequentes

Eu sou obrigado a usar o NDEF?

Tecnicamente não, mas para qualquer coisa lida pelo celular de outra pessoa a resposta é sim na prática. Sem ele você precisaria distribuir um aplicativo que conhecesse o layout da sua memória, o que anula o sentido de pôr uma tag num cartaz.

Todo celular lê o NDEF do mesmo jeito?

A interpretação é a mesma, a reação não. As duas plataformas leem o contêiner de modo idêntico e depois aplicam as regras próprias sobre quais tipos de registro disparam uma ação, e é aí que o comportamento diverge.

Uma tag pode guardar NDEF e outros dados ao mesmo tempo?

Em muitos chips sim, já que o NDEF ocupa uma área definida e o resto da memória pode guardar o que você quiser. Só a parte NDEF vai ser entendida por um leitor genérico, então qualquer coisa fora dela precisa do seu próprio software.

Por que minha tag mostra menos espaço livre que o anunciado?

Parte da memória guarda a estrutura que descreve a própria tag, e o contêiner NDEF acrescenta o custo fixo dele. Os dois são descontados antes do seu conteúdo, e a diferença é normal em vez de um defeito.