Sky Project: per sviluppare in Dart le future app Android

Sky Project è il nuovo progetto che prevede la possiblità di impiegare il linguaggio Dart – creazione di Mountain View per sviluppare applicazioni web – anche nello sviluppo delle app Android. Per ora lo Sky Project è solo una sperimentazione in open source, per quanto piuttosto promettente, con l’intento di soppiantare – o quantomeno affiancare –  l’uso di Java per le app non-game di Android. Dart, chiamato in origine Dash, fu creato nel 2011 da alcuni membri del team del motore V8 Javascript di Chrome, nel tentativo di risolvere i problemi ormai quotidiani causati dall’uso di un linguaggio (il Java appunto), vecchio ormai di vent’anni. Nel recentissimo Dart Developer Summit di San Francisco è stato presentato il progetto Dart su Android, ossia Google Sky.

L'architettura dello Sky Project di Google
L’architettura dello Sky Project di Google

Velocità e responsività sono fra i principali obiettivi dello Sky Project, infatti – attualmente – le app Android supportano al massimo 60 fps (fotogrammi al secondo), mentre lo scopo del team Dart è di portarle a 120, cosa che peraltro ora non sarebbe possibile per gli schermi a 60 Hz degli smartphone attuali. Il team ha dimostrato, mediante una demo scaricabile dal Google Play Store, di essere in grado di renderizzare fotogrammi interi a 1,2 millisecondi, riuscendo a raggiungere comodamente la soglia dei 120 fps anche per app molto comuni. Tutto ciò renderebbe lo Sky Project un progetto jank-free (ossia privo di sfarfallii o di blocchi nell’aggiornamento delle immagini), anche grazie ad API che non interrompono il thread che fa muovere l’interfaccia utente: se per caso l’applicazione dovesse rallentare, l’interfaccia si manterrebbe comunque veloce e responsiva.

Per Google Sky la derivazione dal web si ripercuote, in positivo e in negativo, sull’ecosistema mobile. È platform agnostic, ossia indipendente dalla piattaforma, potendo girare su Android, iOS, od ovunque sia presente una Dart Virtual Machine. Le app funzionano un po’ come se fossero dei siti web: gran parte del loro contenuto non sta sul dispositivo, ma in un server esterno; di conseguenza i file .apk si alleggeriscono e le app si possono aggiornare con continuità e uniformità, scaricando ad ogni avvio i contenuti dal web, e potendo così sfrutture al meglio le risorse online. Proprio per questo motivo, purtroppo, l’applicazione dimostrativa scaricabile si dimostra un po’ lenta, dal momento che ha un leggero ritardo nell’avviarsi e non è operativa offline, dovendo scaricare sempre contenuti. Ad ogni buon conto entrambi questi inconvenienti devono e possono essere risolti, grazie all’introduzione di un sistema di caching, prima del lancio pubblico.

[youtube]https://www.youtube.com/watch?v=PnIWl33YMwA[/youtube]

Appoggiarsi su protocolli HTTP facilita di gran lunga il processo di sviluppo: in luogo di editare codice, compilare e installare la nuova app, le modifiche avvengono sul server HTTP e l’app deve solo essere chiusa e riaperta per permettere il refresh con il nuovo codice, proprio come un browser.

Allo sviluppo di Android è preposto il Google Sky Framework, in grado di fornire una serie completa di widget di progettazione, permettendo agli sviluppatori di aggiungere barre di navigazione, effetti tattili e tutto ciò che ci si aspetta di trovare in un’app Android. Le app Google Sky hanno pieno accesso ai privilegi e agli API Android, proprio come le normali app, ma il fatto di essere automaticamente aggiornate attraverso un server web comporta un rilevante problema di sicurezza. Comunque il progetto è ancora in fase sperimentale e la questione deve necessariamente essere risolta. Sulla propria pagina di GitHub il team sostiene che “il framework e il relativo motore sono ancora passibili di ricevere numerose modifiche nel corso del loro sviluppo, ma noi ci stiamo impegnando sul progetto con ogni possibile sforzo.”