Continuiamo nel nostro viaggio alla scoperta delle ultime evoluzioni in ambito mobile web con una bella notizia: il W3C ha ufficialmente invitato i creatori di browser ad implementare due Candidate Recommendations molto utili e interessanti:  Battery Status API e Vibration API.

Che cosa vuol dire tutto ciò per la community di developer e programmatori? Molto semplicemente, questi due standard sono ora da considerare pressochè stabili e definitivi tanto da poter essere implementati – su invito, appunto, del W3C – dalle software house che sviluppano browser, siano essi Chrome o Safari, Opera, Firefox o quant'altro.

Ciò che ci possiamo aspettare, dunque, è che questi due standard vengano progressivamente resi disponibili nei prossimi mesi, rendendo ancora più completo e "nativo" l'utilizzo di mobile web apps. Vediamo dunque più nel dettaglio questi due API.

Vibration API

Come il nome stesso suggerisce, questa funzionalità consente ad una qualsiasi pagina web di far vibrare il telefono che si sta usando. L'idea è di usare un semplicissimo:

navigator.vibrate([1000, 500, 2000]);

per far vibrare il telefono per 1 secondo, poi fermo mezzo secondo e poi nuovamente una vibrazione di 2 secondi.

Chiaramente questo è solo un esempio – la sintassi definitiva sarà da vedere quando i browser implementeranno questo API – ma l'idea è quella. Per maggiori info: http://www.w3.org/TR/2012/CR-vibration-20120508/

Battery API

Questo set di API è altrettanto utile e innovativo rispetto al precedente. Attraverso una semplice chiamata, infatti, sarà possibile avere informazioni sullo stato della batteria del telefono, consentendo dunque al developer di adattare il funzionamento della sua web app anche in base alla carica del telefono: immaginando di avere un servizio, ad esempio, che scarica ogni minuto un feed RSS, se il livello della batteria scende sotto un certo limite si potrebbe aumentare l'intervallo di refresh riducendo così il consumo energetico.

In questo caso il documento propone un oggetto

var battery = navigator.battery;

a cui sarà possibile legare degli eventi tipo

battery.addEventListener('dischargingtimechange', function () {<br />          if (battery.dischargingTime < 60 * 30 || battery.level < 0.1) {<br />            console.log('30 minuti rimanenti o livello di carica inferiore al 10%');<br />          } else if (battery.dischargingTime < 60 * 10 || battery.level < 0.05) {<br />            console.log('10 minuti rimanenti o livello di carica inferiore al 5%');<br />          }<br />        }, false);  

Maggiori info: http://www.w3.org/TR/2012/CR-battery-status-20120508/

In conclusione…

Per concludere, vogliamo ricordare prima di tutto che questi due standard restano comunque ancora ad un livello di "proposta": non hanno dunque, per adesso, nessun valore vincolante anche se, visto l'invito del W3C a passare alla fase di "implementazione", rappresentano sicuramente qualcosa di piuttosto stabile.

Infine, questi due documenti sono stati proposti dal Device API Working Group, un gruppo del W3C che si occupa di progettare e descrivere gli standard che riguardano tutte le comunicazioni con il "device" – a cominciare, appunto, con la batteria o il sustema di vibrazione. Maggiori info: http://www.w3.org/2009/dap/

The following two tabs change content below.
Silvio Porcellana
Silvio Porcellana è il fondatore di mob.is.it, il tool che centinaia di agenzie e professionisti di tutto il mondo utilizzano per creare con semplicità siti mobili e applicazioni native per i loro clienti. Tiene anche un podcast dove racconta ogni venerdì le sue avventure imprenditoriali, senza veli o segreti: Opus Digitalis