Il Progetto Fugu è "fatto"?

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:

Nome API Spedito in
API Web BluetoothChrome 56
API WebUSBChrome 61
Target condivisione webChrome 71
API Web Share Livello 2Chrome 75
Appunti asincroni: lettura e scrittura di immaginiChrome 76
Obiettivo condivisione web - livello 2Chrome 76
Inserisci suggerimento chiaveChrome 77
Aumenta la quota di spazio di archiviazioneChrome 78
Installare l'API Connected AppsChrome 80
Sincronizzazione periodica in backgroundChrome 80
desktop-pwas: Supporto della modalità di visualizzazione "minimal-ui"Chrome 80
Codec di compressioneChrome 80
API ContactChrome 80
API BadgingChrome 81
Consenti l'utilizzo dell'API Badging da parte di un service worker tramite PushChrome 81
API Barcode DetectionChrome 83
API Content IndexChrome 84
WebOTPChrome 84
API Screen Wake LockChrome 84
API Streams: flussi trasferibiliChrome 85
Scorciatoie appChrome 85
Accesso al file systemChrome 86
supporto text/html per l'API asincrona degli appuntiChrome 86
Supporto panoramica/inclinazione per la fotocameraChrome 87
FUGU Implementazione dell'acquisizione dell'output audio del sistema e delle applicazioni su cuffie e altoparlanti Chrome 88
Movimento non regolato di PointerLockChrome 88
Creare un selettore di foto/video simile al selettore di foto su AndroidChrome 88
Integrazione della condivisione web (navigator.share) con Windows 10Chrome 88
NFC webChrome 89
WebHID (dispositivo di interfaccia umana)Chrome 89
API Web SerialChrome 89
Condivisione web su computerChrome 89
API di riconoscimento scrittura a mano liberaChrome 90
Configurazione gestita per applicazioni webChrome 91
Eseguire PWA su OS LoginChrome 91
WebCodecsChrome 93
Rilevamento inattivitàChrome 94
API EyeDropperChrome 95
Menu delle scorciatoie app per le PWA su macOS e LinuxChrome 96
Registrazione del gestore di protocollo URL per le PWA Chrome 96
WebTransportChrome 97
Appunti: se incolli le immagini della retina, i metadati di pHY si perdono.Chrome 98
L'app PWA dovrebbe poter essere disinstallata allo stesso modo di un'"app reale"Chrome 99
NFC web: NDEFReader makeReadOnly()Chrome 100
Posizionamento delle finestre multischermoChrome 100
HIDDevice delete()Chrome 100
USBDeviceforgot()Guida introduttiva di Chrome
Comportamento sameObject web USBGuida introduttiva di Chrome
Overlay dei controlli delle finestre per le app web desktop installateChrome 102
Gestione fileChrome 102
L'API chrome.management non può più interagire con le app PWAChrome 102
SerialPort hide()Chrome 103
Accesso ai caratteri localiChrome 103
Richiesta Fugo: scorciatoie app dinamiche (Scorciatoie v2)Chrome 104
Formati personalizzati web per l'API Async ClipboardChrome 104
Finora tutte le API Fugu sono state spedite.

È 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.

Grafico che mostra l'utilizzo relativo del metodo navigator.storage.getDirectory.

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.