Uno degli obiettivi del team di Project Fugu è consentire agli sviluppatori di fare sul web tutto ciò che possono fare le app specifiche della piattaforma, pertanto il team è stato impegnato ad aggiungere le funzionalità mancanti di cui gli sviluppatori web avevano bisogno per colmare questa lacuna. Se non mi credi, dai un'occhiata alla sezione "Spedito" del tracker dell'API Fugu. Ecco le 55 API caricate, in ordine dal più recente al meno recente:
È un elenco lungo e abbiamo ancora molto da fare. Esistono ancora alcune API e funzionalità attualmente in prova dagli sviluppatori (ovvero implementate, ma dietro un flag di funzionalità), alcune su cui abbiamo iniziato a lavorare e molte in fase di valutazione. Come vedi, non è il momento di rilassarsi e dire che abbiamo finito.
Metodi di file sincroni per il file system privato dell'origine
Al contrario, anziché dichiarare il nostro impegno come completato, stiamo solo iniziando. Ad esempio, considera il grafico seguente che mostra la crescita esponenziale dell'utilizzo relativo del metodo navigator.storage.getDirectory()
, utilizzato come punto di contatto per il file system privato di origine (OPFS). Questo metodo viene utilizzato, ad esempio, per le esigenze di archiviazione ad alte prestazioni di Photoshop e suscita un grande interesse nella community di archiviazione dall'inizio del ritiro di Web SQL e anche prima.
Ora che un numero maggiore di utenti utilizza l'OPFS, sono emersi requisiti aggiuntivi. Ad esempio, la necessità di un insieme di metodi di file completamente sincroni in un contesto di worker (consulta whatwg/fs#7 per informazioni di sfondo). Sebbene le nuove API web siano generalmente asincrone, disporre di metodi sincroni semplifica notevolmente il lavoro con l'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 ti consentono di connetterti a dispositivi HID, seriali, USB,
Bluetooth e NFC. Anche se alcune di queste API sono disponibili da un po' di tempo, fino a poco tempo fa non era possibile dimenticare un dispositivo a cui avevi collegato in precedenza. Ora è possibile grazie ai metodi forget()
per alcune API. Ad esempio, ecco come eliminare un dispositivo seriale connesso in precedenza, il che migliora 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, in cui, in base al feedback degli sviluppatori, le etichette delle schermate precedentemente generiche come "Internal Display 1"
sono state sostituite con etichette più significative come "Built-in Retina Display"
, in modo che gli utenti possano associarle più facilmente alle schermate della configurazione multischermo.
Conclusioni
Come puoi vedere solo da questi tre esempi, il progetto Fugu è ben lungi dall'essere completato. Continua o inizia a utilizzare le nostre API e invia un feedback. Poiché tutte le specifiche di Fugu vengono sviluppate in modo aperto su GitHub, puoi segnalare un problema relativo alle specifiche nel repository GitHub corrispondente o aggiungere il tuo parere a un problema esistente. Se trovi un bug nell'implementazione di Chrome o scopri che l'implementazione è diversa dalla specifica, segnala un bug all'indirizzo new.crbug.com. Assicurati di includere il maggior numero possibile di dettagli e fornisci istruzioni semplici per la riproduzione.
Inoltre, se hai dubbi sul supporto del browser, molte API Fugu consentono miglioramenti progressivi. Per trovare ispirazione, consulta il mio articolo SVGcode: una PWA per convertire le immagini raster in grafica vettoriale SVG. Inoltre, non consideriamo il nostro lavoro concluso finché queste API non saranno interoperabili e continueremo a spingere per un'ulteriore standardizzazione, test e adozione da parte di altri browser.