Project Fugu ekibinin hedeflerinden biri de geliştiricilerin, platforma özel uygulamaların web'de her şeyi yapmalarını sağlamak olduğundan, ekip web geliştiricilerin bu uygulama açığını kapatmak için ihtiyaç duyduğu eksik özellikleri eklemekle meşguldü. Bana inanmıyorsanız Fugu API izleyicisinin "Shipped" (Gönderildi) bölümüne bakın. Gönderilen 55 API, en az gönderilenden en son gönderilene doğru sıralanmış şekilde aşağıda verilmiştir:
Uzun bir liste ve daha fazlası da var. Şu anda geliştirici deneme sürümünde halen bazı API ve özellikler (uygulanmış, ancak bir özellik işaretinin arkasında), bazıları üzerinde çalışmaya başladığımız ve birçoğu da değerlendirme aşamasındadır. Gördüğünüz gibi, arkanıza yaslanıp işiniz bitti, dilemenin zamanı gelmedi.
Kaynak özel dosya sistemi için eşzamanlı dosya yöntemleri
Tam aksine, çabalarımızın tamamlandığını söylemek yerine
daha yolun başındayız. Örneğin, kaynak özel dosya sistemine (OPFS) giriş noktası olarak kullanılan navigator.storage.getDirectory()
yönteminin hiç giderek artan göreli kullanım artışını gösteren aşağıdaki grafiği ele alalım. Bu yöntem, örneğin Photoshop'un yüksek performanslı depolama ihtiyaçları için kullanılır ve Web SQL'in kullanımdan kaldırılmasından bu yana hatta daha da önce depolama topluluğunun en çok ilgilendiği konulardır.
OPFS'yi artık daha fazla kişi kullandığından ek koşullar ortaya çıktı. Örneğin, çalışan bağlamında tamamen eşzamanlı bir dosya yöntemleri grubuna ihtiyaç duyulur (arka plan için whatwg/fs#7 bölümüne bakın). Yeni web API'leri genellikle eşzamansız olsa da, eşzamanlı yöntemlere sahip olmak Wasm bağlamında OPFS ile çalışmayı çok daha kolay hale getirir ve bu işlem bir çalışanda gerçekleştiği için ana iş parçacığı engellenemez.
Donanım API'leri için gizlilik iyileştirmeleri
Diğer bir örnek de HID, serial, USB, Bluetooth ve NFC cihazlara bağlanmanıza olanak tanıyan donanım API'leridir. Bu API'lerin bazıları bir süredir kullanımdaydı, ancak yakın zamana kadar daha önce bağlandığınız bir cihazı unutmanın yolu yoktu. Şimdi bazı API'lerin forget()
yöntemleri sayesinde bunu yapabilirsiniz. Örneğin, önceden bağlanmış bir seri cihazın nasıl unutulacağı aşağıda açıklanmıştır. Bu yöntem, API'nin gizliliğini iyileştirir.
// Request a serial port.
const port = await navigator.serial.requestPort();
// Then later revoke permission to the serial port.
await port.forget();
Multi-Screen Window Placement API için yapılan iyileştirmeler
Son bir örnek ise Multi-Screen Window Placement API'dir. Bu API'de, geliştiricilerin geri bildirimleri doğrultusunda, "Internal Display 1"
gibi önceden genel olan ekran etiketleri yerine "Built-in Retina Display"
gibi daha anlamlı etiketler eklenmiştir. Böylece, kullanıcılar bu etiketleri çok ekranlı kurulum ekranlarıyla daha kolay bir şekilde ilişkilendirebilir.
Sonuçlar
Yalnızca bu üç örnekten de görebileceğiniz gibi Fugu Projesi’nin henüz tamamlanmamış olması. API'lerimizi kullanmaya devam edin veya kullanmaya başlayın ve geri bildirim gönderin. Tüm Fugu spesifikasyonları GitHub'da açık bir şekilde geliştirildiğinden ilgili GitHub deposunda spesifikasyon sorunu bildirebilir veya mevcut bir soruna düşüncelerinizi ekleyebilirsiniz. Chrome uygulamasında bir hata bulursanız veya uygulamanın spesifikasyondan farklı olduğunu keşfederseniz new.crbug.com adresinden bir hata bildiriminde bulunun. Mümkün olduğunca fazla ayrıntı eklediğinizden ve yeniden oluşturma için basit talimatlar sağladığınızdan emin olun.
Tarayıcı desteği konusunda endişeliyseniz birçok Fugu API'si muhteşem progresif geliştirmeler yapmanızı sağlar. İlham almak için SVGcode: Kafes resimleri SVG vektör grafiklerine dönüştürmek için a PWA başlıklı makalemi inceleyebilirsiniz. Ayrıca, bu API'ler birlikte çalışabilir hale gelene kadar işimizi yapmayız. Ayrıca, daha fazla standartlaştırma, test ve diğer tarayıcılar tarafından benimsenmesi için çaba göstermeye devam edeceğiz.