Apple potenzia WebKit, nel motore di Safari tante chicche per sviluppatori

Nelle ultime release di Safari di iOS 10.3 e macOS Sierra 10.12.4, Apple ha integrato numerse migliorie sotto il cofano che saranno apprezzate dagli sviluppatori

[banner]…[/banner]

Con iOS 10.3 e macOS Sierra 10.12.4, Apple ha incluso una versione di Safari, release – come spiegato sul blog dedicato al WebKit (il “motore” di Safari) – che integra molte importanti nuove funzionalità e migliorie. Funzioni “sotto il cofano” che gli sviluppatori apprezzeranno sono ad esempio il supporto a Fetch (interfaccia di programmazione concepita per rimpiazzare XMLHttpRequest per il trasferimento bidirezionale con l’uso di Promises di ECMAScript 2015 (ES6) con supporto alla programmazione asincrona, in altre parole la possibilità di eseguire attività in background che non interferiscono con il flusso di elaborazione principale.

Il modulo Grid Layout di CSS è un sistema di Layout basato su griglie e colonne che permette la gestione avanzata del layout pagina nei CSS. Permette di gestire layout bidimensionali e di tenere conto di entrambe le dimensioni negli allineamenti, permettendo di ottenere elementi di design tipici della stampa che prima richiedevano “trucchi” nella gestione del Flexible Box Layout (o FlexBox) orientato su un singolo asse.

Il supporto alle specifiche ECMAScript 2016 & ECMAScript 2017 cui si fa riferimento è alle specifiche del linguaggio comunemente indicato come Javascript; lo standard 2017 in particolare permette di ottenere sostanziali miglioramenti in termini di performance.

Il supporto a IndexedDB con la compatibilità alla versione 2.0 dell’API per l’archiviazione client-side, offre compatibilità per i dati binari e chiavi indicizzate. I Custom Elements consentono di creare componenti riutilizzabili da associare agli elementi HTML comportamenti personalizzati da attivare in risposta alla modifica di valori.

Le API Gamepad semplificano la creazione di codice a supporto di layout, pulsanti e joystick con la mappatura di diversi tipi di input in un unico standard.

Su Safari per macOS, Pointer Lock permette agli sviluppatori di nascondere il puntatore del mouse e accedere a dati grezzi relativi al movimento del mouse, estendendo in pratica l’interfaccia Mouse Events con le proprietà movementX e movementY che consentono di ottenere accesso ai dati relativi a movimenti del mouse.

Altre novità sono il supporto all’input da tastiera in full screen su MacOS (utile per le applicazioni web) e il supporto all’Interactive Form Validation che permette di creare all’interno dei moduli campi con determinati vincoli controllati automaticamente senza bisogno di ricorrere a JavaScript.

Gli Input Events semplificano le procedure per l’editing di rich text con nuovi attributi ed eventi. L’attributo “Download” dell’HTML5 permette di indicare un link target come download; HTML Media Capture su iOS permette di estendere il controllo nei file di input consentendo di usare la fotocamera o il microfono del dispositivo per catturare dati. Sono state integrate migliorie nel posizionamento di elementi che tengono conto del pinch-to-zoom e nelle funzionalità di debugging del Web Inspector.

Gli sviluppatori possono sfruttare i colori CSS con gamut estesi tenendo conto ad esempio dello spazio colore DCI-P3. La nuova media query “prefers-reduced-motion” permette agli sviluppatori di sfruttare animazioni per particolari problematiche causate dal movimento di elementi in gradi aree.