Poiché uno degli obiettivi del team di Project Fugu è consentire agli sviluppatori di fare tutto sul web ciò che è possibile fare con le app specifiche della piattaforma, il team si è impegnato ad aggiungere le funzionalità mancanti necessarie agli sviluppatori web per colmare questa lacuna. Se non ci credi, controlla la sezione "Spedito" del tracker dell'API Fugu. Ecco le 55 API spedite, a partire da quella più recente:
È un lungo elenco e ce ne sono di più. Al momento ci sono ancora un paio di API e funzionalità in prova per gli sviluppatori (ovvero implementate, ma dietro un flag di funzionalità), alcune su cui abbiamo iniziato a lavorare e molte in considerazione. Come puoi vedere, non c'è tempo di rilassarsi e dire che abbiamo finito.
Metodi di file sincroni per il file system privato di origine
Al contrario, piuttosto che dichiarare completato il nostro impegno, in realtà siamo solo all'inizio. Ad esempio, il grafico riportato di seguito mostra una crescita dell'utilizzo relativo del metodo navigator.storage.getDirectory()
, utilizzato come punto di ingresso al file system privato di origine (OPFS). Questo metodo viene utilizzato, ad esempio, per le esigenze di archiviazione ad alte prestazioni di Photoshop, a cui la community di archiviazione è molto interessata dall'inizio del ritiro di SQL web e anche prima.
Ora che più persone utilizzano il programma OPFS, sono emersi ulteriori requisiti. Ad esempio, la necessità di un insieme completamente sincrono di metodi file in un contesto worker (vedi whatwg/fs#7 per lo sfondo). Sebbene le nuove API web siano generalmente asincrone, l'uso di metodi sincroni renderebbe molto più semplice il lavoro con OPFS in un contesto Wasm e, poiché ciò avviene in un worker, il thread principale non può essere bloccato.
Miglioramenti alla privacy per le API hardware
Un altro esempio sono le API hardware che consentono di connettersi a dispositivi
HID, serial, USB,
Bluetooth e NFC. Alcune di queste API sono in circolazione da un po' di tempo, ma fino a poco tempo fa non c'era modo di dimenticare un dispositivo a cui avevi effettuato la connessione in precedenza. Ora esiste grazie ai metodi forget()
per alcune API. Ad esempio, ecco come eliminare un dispositivo seriale connesso in precedenza, per migliorare la privacy dell'API.
// Request a serial port.
const port = await navigator.serial.requestPort();
// Then later revoke permission to the serial port.
await port.forget();
Perfezionamenti per l'API Multi-Screen Window Placement
Un ultimo esempio è l'API Multi-Screen Window Placement che, in base al feedback degli sviluppatori, ha sostituito le etichette delle schermate precedentemente generiche come "Internal Display 1"
, che sono state sostituite da etichette più significative come "Built-in Retina Display"
, in modo che gli utenti possano associare più facilmente queste etichette alle schermate della configurazione multischermo.
Conclusioni
Come si può vedere solo da questi tre esempi, il Progetto Fugu è tutt'altro che vero. Continua o inizia a usare le nostre API e invia il tuo feedback. Poiché tutte le specifiche di Fugu sono sviluppate all'aperto su GitHub, puoi segnalare un problema relativo alle specifiche nel repository GitHub corrispondente o aggiungere le tue opinioni a un problema esistente. Se riscontri un bug nell'implementazione di Chrome o scopri che l'implementazione è diversa dalle specifiche, segnala un bug all'indirizzo new.crbug.com. Assicurati di includere il maggior numero di dettagli possibile e di fornire semplici istruzioni per la riproduzione.
Inoltre, se ti preoccupa il supporto del browser, molte API Fugu consentono di effettuare ottimi miglioramenti progressivi. Per trovare l'ispirazione, consulta il mio articolo SVGcode: una PWA per convertire le immagini raster in grafica vettoriale SVG. Inoltre, non consideriamo completato il nostro lavoro finché le API non saranno interoperabili e continueremo a eseguire il push per ulteriori standardizzazione, test e adozione da parte di altri browser.