Project Fugu ekibinin hedeflerinden biri geliştiricilerin web'de platforma özel uygulamalarda yapabileceklerini yapabilmelerini sağlamak olduğundan ekip, bu uygulama açığını kapatmak için web geliştiricilerine ihtiyaç duydukları eksik özellikleri eklemekle meşguldü. Bana inanmıyorsanız Fugu API takip aracının "Gönderildi" bölümüne bakın. Yayınlanan 55 API'yi, en az yayınlanandan en son yayınlanana göre sırayla aşağıda bulabilirsiniz:
Bu liste uzun ve yapılacak daha çok iş var. Şu anda geliştirici deneme sürümünde (yani uygulanmış ancak özellik işaretinin arkasında) olan birkaç API ve özellik, üzerinde çalışmaya başladığımız bazı özellikler ve değerlendirilmekte olan birçok özellik var. Gördüğünüz gibi, işimiz henüz bitmedi.
Kaynak özel dosya sistemi için eşzamanlı dosya yöntemleri
Tam tersine, çalışmamızı tamamlamış olduğumuzu beyan etmek yerine, aslında daha yeni başlıyoruz. Örneğin, kaynak özel dosya sistemine (OPFS) giriş noktası olarak kullanılan navigator.storage.getDirectory()
yönteminin göreceli kullanım oranının hızla arttığını gösteren aşağıdaki grafiği inceleyin. Bu yöntem, örneğin Photoshop'un yüksek performanslı depolama ihtiyaçları için kullanılır ve Web SQL'in desteğinin sonlandırılmasından bu yana, hatta daha öncesinden beri depolama alanı topluluğu tarafından çok ilgi görüyor.
OPFS'yi daha fazla kullanıcı kullandığından ek şartlar ortaya çıktı. Örneğin, bir işleyici bağlamında tamamen senkronize 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 asenkron olsa da senkron yöntemlere sahip olmak, Wasm bağlamında OPFS ile çalışmayı çok daha kolaylaştırır. 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
Bir diğer örnek de HID, seri, USB, Bluetooth ve NFC cihazlarına bağlanmanıza olanak tanıyan donanım API'leridir. Bu API'lerden bazıları bir süredir kullanılsa da yakın zamana kadar daha önce bağlandığınız bir cihazı unutmanın bir yolu yoktu. Bazı API'ler için forget()
yöntemleri sayesinde artık bu sorun ortadan kalktı. Örneğin, daha önce bağlanmış bir seri cihazı nasıl unutacağınızı aşağıda bulabilirsiniz. Bu işlem, 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();
Çok Ekranlı Pencere Yerleşimi API'si için hassaslaştırmalar
Son örnek olarak, geliştirici geri bildirimlerine göre "Internal Display 1"
gibi daha önce genel olan ekran etiketlerinin "Built-in Retina Display"
gibi daha anlamlı etiketlerle değiştirildiği Çoklu Ekran Pencere Yerleşimi API'si verilebilir. Bu sayede kullanıcılar bu etiketleri çoklu ekran kurulumlarının ekranlarıyla daha kolay ilişkilendirebilir.
Sonuçlar
Yalnızca bu üç örnekten de görebileceğiniz gibi, Fugu projesinin henüz tamamlanmadığını söyleyebiliriz. API'lerimizi kullanmaya devam edin veya kullanmaya başlayın ve geri bildirim gönderin. Tüm Fugu özellikleri GitHub'da açık olarak geliştirildiğinden, ilgili GitHub deposunda özellik sorunu bildirebilir veya mevcut bir soruna düşüncelerinizi ekleyebilirsiniz. Chrome'un uygulamasında bir hata bulursanız veya uygulamanın spesifikasyondan farklı olduğunu fark ederseniz new.crbug.com adresinden hata bildirin. Mümkün olduğunca fazla ayrıntı eklediğinizden ve hatayı yeniden oluşturma ile ilgili basit talimatlar sağladığınızdan emin olun.
Tarayıcı desteğiyle ilgili endişeleriniz varsa birçok Fugu API'si, aşamalı olarak harika iyileştirmeler sunar. İlham almak için SVGcode: raster resimleri SVG vektör grafiklerine dönüştüren bir PWA makaleme göz atın. Ayrıca, bu API'ler birlikte çalışabilir hale gelene kadar işimizin tamamlandığını düşünmüyoruz. Diğer tarayıcılar tarafından daha fazla standartlaştırılması, test edilmesi ve benimsenmesi için çalışmaya devam edeceğiz.