Vai al contenuto
Lingua: IT

Un'applicazione NFC deve installarsi sui telefoni senza NFC?

Dipende se l'NFC sia l'applicazione oppure una delle sue funzioni. Dichiarato come obbligatorio, tutti e due i negozi tengono l'applicazione lontana dagli apparecchi senza radio. Dichiarato come facoltativo, si installa ovunque, e il codice deve rilevare l'assenza e dire qualcosa di utile.

Su cosa filtra Android

La dichiarazione è uses-feature nel manifest, con android.hardware.nfc per la radio e android.hardware.nfc.hce per l'emulazione di scheda ospitata sull'apparecchio. Il riferimento è esplicito su cosa serve: Google Play usa questi elementi per filtrare un'applicazione lontano dagli apparecchi che non soddisfano le sue esigenze.

L'attributo required è tutta la decisione. Vero vuol dire che l'applicazione non può funzionare senza la funzione, e il negozio la nasconde ai telefoni che ne sono privi; falso vuol dire che l'applicazione la preferisce e funziona senza, e il negozio la lascia visibile ovunque.

Su cosa filtra l'App Store

La stessa idea vive nell'Info.plist. UIRequiredDeviceCapabilities elenca le funzionalità dell'apparecchio che un'applicazione richiede, e Apple ne dichiara la conseguenza senza giri: l'App Store impedisce ai clienti di installare un'applicazione su un apparecchio che non le sostiene. Il valore per questa è nfc, documentato come tag NFC, disponibile da iOS 11 e non disponibile in visionOS.

La chiave prende un elenco, dove un valore presente vuol dire obbligatorio, oppure un dizionario, dove un valore si può mettere a falso per dire che la funzione non deve esserci. Ometterla dice che l'applicazione non la richiede né la rifiuta, che è l'equivalente della dichiarazione facoltativa su Android.

Quale dichiarare

Obbligatoria, quando l'applicazione non ha senso senza un tag: uno scrittore di tag, un lettore per la tua installazione, uno strumento in cui ogni schermata presuppone la radio. Lì filtrare fa un favore a chi usa, e l'alternativa è una recensione a una stella da un telefono che non avrebbe mai potuto funzionare.

Facoltativa, quando l'NFC accorcia qualcosa che l'applicazione fa già in un altro modo: una carta fedeltà che legge anche un codice, un biglietto che mostra anche un codice a barre, uno strumento di configurazione con un percorso a mano. Filtrare quelle fuori da un negozio costa persone che sarebbero state servite benissimo.

A cosa ti obbliga il facoltativo

Una dichiarazione facoltativa è una promessa che l'applicazione funziona senza la radio, e il codice deve mantenerla. Rileva l'assenza, nascondi quello che non può funzionare, e tieni il percorso che non ha bisogno di un tag, cosa che la pagina dell'NFC spento o assente espone stato per stato.

Vuol dire anche provare su un telefono senza NFC, che è l'unica prova che l'insieme di tag non può coprire con dei tag. Basta un emulatore o un vecchio apparecchio: quello che conta è che l'applicazione si apra, non spieghi niente di cui non ha bisogno, e faccia il suo altro mestiere.

Domande frequenti

Obbligatoria nasconde la mia applicazione a certi telefoni?

Sì. Google Play filtra su uses-feature, e l'App Store impedisce l'installazione sugli apparecchi che non hanno una funzionalità obbligatoria.

Quale valore dichiaro?

android.hardware.nfc su Android, più android.hardware.nfc.hce per l'emulazione di scheda, e il valore nfc di UIRequiredDeviceCapabilities su iOS.

Posso dichiararla facoltativa e usare comunque l'NFC?

Sì, ed è proprio questo il punto: l'applicazione si installa ovunque e verifica mentre gira, prima di proporre la funzione.

Cosa si rompe se dimentico la dichiarazione?

Niente di visibile all'inizio. L'applicazione si installa sui telefoni che non possono usarla, e il guasto cade su chi usa invece che sulla scheda del negozio.