Per gli estimatori e smanettoni di Android, Google aveva realizzato esattamente un anno fa App Inventor, uno strumento web sviluppato su piattaforma Java, realizzato dalla divisione Google Labs (quella che ha lavorato alle applicazioni sperimentali come Gmail, Maps, Picasa, IGoogle, Google Desktop etc, poi diventati per molti di noi strumenti quotidiani di lavoro o di diletto)
Questo tool grafico permette di realizzare apps, anche di livello discreto per i dispositivi mobili android (cellulari, tablet etc) in maniera semplice tramite una pratica e molto intuitiva interfaccia visuale usando la tecnica del drag&drop, senza la necessita’ di scrivere codice o conoscere java.
L’azienda di Mountain View ha annunciato che per scelte strategiche (sembra che voglia focalizzarsi su pochi grandi nuovi progetti) chiuderà la divisione Google Labs entro fine 2011.
Per fortuna il progetto App Inventor non sara’ chiuso definitivamente, ma verra’ spostato verso la comunità Open Source. A tal proposito sembra che Google abbia stanziato dei fondi per migrare il progetto verso i laboratori Media Lab del Massachusetts Institute of Technology (MIT) di Boston.
Per onore di cronaca sui motivi della chiusura del progetto, c’è da evidenziare che la societa’ Oracle dopo aver acquisito SUN aveva da un po’ di tempo puntato il dito su Google per presunti diritti violati relativamente all’uso della piattaforma Java.
Nel caso specifico APP Inventor e’ basato su Java….ergo.
La distribuzione del codice in ottica Open Source, come accaduto per altri importanti progetti (ad esempio nel settore animazione e grafica 3D con Blender), dovrebbe portare ad un notevole salto di qualita’, cosi’ da consentire ai piu’ esperti di creare nuovi ed interessanti componenti, ed agli utenti finali di realizzare apps sempre piu’ innovative e , si spera, utili alla comunita’ Android, ormai sempre piu’ diffusa.
Ad esempio potrebbero essere sviluppati i componenti per interconnettere nativamente devices esterni come Arduino o altre board, senza dover utilizzare Eclipse e codice Java.
Il bello di questo tool e’ che permette fin da subito a novelli sviluppatori di realizzare una app Android pronta all’uso, anche con poca o nessuna conoscenza di programmazione, concentrandosi solo sull’idea che si vuole realizzare.
Il fiorire di Forum dedicati ad App Inventor consente di reperire in rete tutorial e sorgenti completi, che aiutano nella comprensione di tutte le funzionalità messe a disposizione.
Caratteristiche principali:
L’ambiente di sviluppo App Inventor supporta tutti i sistemi operativi piu’ diffusi quali Mac OS X, GNU/Linux, e Windows fino alla versione Win 7.
Il tool e’ diviso in tre blocchi
• App Inventor Designer - la GUI Web attraverso la quale selezionare i componenti necessari alla realizzazione dell’App
• App Inventor Blocks Editor - una applicazione Java lanciata dal Designer con al quale vengono assemblati I blocchi di programma specificandone il comportamento, la cosa simpatica e’ che i blocchi logici vengono interconnessi tra loro come se si stesse componendo un puzzle.
• Android emulator - applicazione java che emula uno smartphone Android sul Pc per verificare passo passo come l’app si comporta.
Una volta soddisfatti dell’app costruita si attiva la funzione che impacchetta il tutto e rende il contenuto installabile su un vero terminale Android.
Oltre ad un’ampia dotazione di strumenti per la grafica , registrazione e riproduzione di suoni e la navigazione Web, tra i componenti per me di rilievo si evidenziano:
• Gestione della comunicazione bluetooth in modalità client e server,
• Lettura dei sensori presenti all’interno di cellulari e tablet, quali accelerometri, bussole, GPS etc
• Barcode scanner, utilizzando le webcam in dotazione ai cellulari o ai tablet
• Speech recognition
• Text to Speech
• Set comandi per Lego Mindstorm
• Connessione ad API di Social Network come Twitter
Con la varietà di componenti messi a disposizione e’ possibile utilizzare App Inventor per sviluppare gran parte delle applicazioni Android, ed il tutto senza scrivere il codice, di fatto progetti visivamente l'aspetto dell'applicazione ed utilizzi i blocchi logici per specificarne il comportamento.
A titolo di esempio ho realizzato un RSS Reader per il nostro Blog preferito personalizzando un template disponibile su uno dei tanti forum: http://appinventorapi.com/rss-feeds/
Questi i 3 step necessari prima di produrre il package distribuibile su tutti i terminali mobili Android:
Passo 1: Design visuale della mia app EMCWebRSS
Passo 2: Definizione del comportamento dei blocchi di programma in base agli eventi.
Passo 3: Testing dell’app con l’emulatore
Il pulsante Aggiorna Info recupera l’xml dal sito che visualizza il sommario degli articoli pubblicati.
Non rimane che creare il package con estensione .apk da distribuire.
Potete verificare il risultato finale sul mio tablet Archos.
Per chi volesse provare l’app, puo’ scaricarla liberamente a questo link:
http://dl.dropbox.com/u/7011239/EMCWebRSS.apk
I piu’ pigri, possono effettuare il download attivando il barcode scanner da un terminale android per leggere la URL dal QRcode
Ciao..bell’articolo 😉 molto originale complimenti..
A quanto pare ci avevo visto giusto..in merito al porting di android anche su microC come arduino e tematica per la quale avevo iniziato una discussione non proprio sul porting specifico ma poi c’è stato uno spunto relativo ad esso..
http://it.emcelettronica.com/forum/android-app-quand%C3%A8-che-convienebisogna-utilizzare-codice-nativo
quindi spero che il lavoro vada avanti e magari..estendere questo tool di elaborazione delle APP anche ad essere platform independent..e magari si riuscirà a realizzare qualcosa anche per il nostro arduino.. ma la vedo ancora lunga..e soprattutto tortuosa come strada da percorrere… ma sono prondo ad essere sconvolto 🙂
ciao
Articolo interessante e ben fatto, complimenti telegiangi61.
Sono un po’ perplesso quando si parla di programmazione “a blocchi” senza scrivere una riga di codice. Questo App Inventor è veramente una cosa utile e al tempo stesso interessante ma più che altro per fare prototipazione. Fare un software finito con questa metodologia non la vedo molto come una programmazione sicura.
Che ne pensate?
Grazie per l’apprezzamento,
E’ chiaro che questo e’ oggi un tool con dei limiti, ma ha grosse potenzialita’, se ci sara’ il giusto interesse come penso, da parte della comunita’ Open Source.
Questo sistema di sviluppo basa tutto sui template (o componenti) che mette a disposizione dell’utente, semplificando di molto la realizzazione di interfacce anche accattivanti e offrendo comunque a chi si avvicina al mondo di Android, la possibilita’ di realizzare “qualcosa” che vedra’ immediatamente sul proprio device e con una certa soddisfazione.
E’ gia’ un notevole passo avanti rispetto a molti siti affiliati al SO Android che ti fanno creare un’app mettendo solo una url del sito che ti interessa pubblicizzare (che e’ anche il 50% almeno delle app che si vedono in giro).
Gia’ oggi Microchip e Arduino hanno toolkit per interfacciarsi con device Android al fine di espanderne il ventaglio di sensori o attuatori con i quali interagire.
Per fare questo devi pero’ chiamare delle API specifiche e scrivere codice Java con Eclipse per creare l’app da compilare (anche li comunque devi linkare una serie di librerie specifiche perche’ il SO riconosca il progetto come una app)
Pensa se invece di preoccuparti di costruire questa cosa standard ogni volta, puoi avere il template grafico dove il colloquio tra i 2 sistemi e’ gia’ costruito, e tu ti concentri su come deve comportarsi l’app in funzione degli eventi esterni.
Anche a me piace ovviamente fare da zero molte cose, ma indubbiamente questo puo’ essere un approccio alternativo e valido quando il grado di complessita’ del sistema esterno non e’ molto alto, e si vuole ottenere rapidamente un risultato.
Questo metodo di formazione l’avevo già sentito e l’avevo trovato formidabile,
soprattutto per tutte le persone che non conoscono né concetti di programmazione eco di Mino linguaggi di programmazione,
Quindi permette di mettere a qualsiasi persone che allo spirito di creare la possibilità di anche di programmare applicazioni per Antondi,
Questo sicuramente apre la via a tutti quegli amatori che si sono sempre scoraggiati prima di questo di scrivere un’applicazione perché era perfino complicato installare l’ambiente di sviluppo android,
visto che richiedeva già delle nozioni di base come l’approvazione di Java e di avere una buona destrezza con l’informatica.
sicuramente quest’ambiente protetto di sviluppo permette di scrivere applicazioni anche piuttosto complessa senza necessitare o avere problemi di stabilità del programma visto che tutto controllato da un livello più basso del software l’utente la sola decisione interfaccia grafica dove non può fare errori di sintassi o di logica che possono creare grossi stabilità sul sistema.
questo sistema di programmazione secondo me dovrebbe essere sviluppato a tutti i linguaggi e a tutte le piattaforme così da dare la possibilità di programmare a tutti.