Visualizzazione post con etichetta Android. Mostra tutti i post
Visualizzazione post con etichetta Android. Mostra tutti i post

lunedì 8 giugno 2015

Linux Microsoft Code NodeJs e Google Starterkit - Introduzione


Prefazione


Sentire parlare di starterkit mi ricorda gli inizi della mia carriera lavorativa. quando giocavo con gli asp.net starterkit per creare i miei primi siti web interattivi.
Da qualche giorno c'è stato un restiling della sezione Google developers. Sotto la voce web, troviamo in beta un nuovo starter kit. Ma di cosa si tratta?

In poche parole, questo starterkit, è un punto di partenza per far vedere come sia possibile visualizzare web application compatibili su tutti i device, dagli smartphone alle tv, garantendo alte performance in termini di leggerezza, responsività e velocità di caricamento. Inoltre è possibile sincronizzare in realtime layout e dati su diversi device e tenere traccia delle metrice di performance, mobile e desktop.

Iniziamo


Lo starterkit è basato sui seguenti componenti:

NodeJs: Possiamo definirlo un framework che permette l'utilizzo server-side di Javascript.
Npm: E' per Node cio che NuGet è per .Net, e cioè un package manager, che permette di produrre e consumare pacchetti di software (addin, frameworks, ecc..)
Sass: Syntactically Awesome Style Sheets, un preprocessore CSS serve a definire fogli di stile con una forma più semplice, completa e potente rispetto ai CSS e a generare file CSS ottimizzati, aggregando le strutture definite anche in modo complesso.

Controlliamo che node sia installato correttamente, da terminal digitate:
node -v
Se non siete all’ultima versione potete aggiornare il tutto tramite Npm con i seguenti comandi:
sudo npm cache clean -f
sudo npm install -g n
sudo n stable

Setup del Google starterkit


Per prima cosa scaricare lo starterkit da qui: download
Decomprimete i file in una nuova cartella ed aggiungervi il componente Glup tramite Npm:
cd my-project
npm install #(mi raccomando è un processo lungo, abbiate pazienza...)
npm install gulp -g
Ora per fare una prova lanciamo il server locale tramite il comando
gulp serve #(si apre il browser Chrome, premte Ctrl-R per attivare reload automatico)

Installare Code


A questo punto abbiamo bisogno di un editor. Google ci consiglia Sublime, ma io ho optato per Microsoft Code perchè mi piace l'idea di vedere girare sotto Linux cose Microsoft e per imparare ad usarlo.

Scaricate Code al seguente indirizzo web: download

Seguite le istruzioni di installazione qui: istruzioni setup

Se volete fare l’update, su windows è abilitato di defaut, su MAC lo includeranno ma non sarà automatico, su Linux non è previsto (anche se nel menu lo ho trovato ma non fa niente), quindi dobbiamo verificare ogni tanto e farlo da soli.

Su Linux mi raccomando di estrarre i file dallo zip, con il comando: unzip VSCode-linux-x64.zip -d /home/rudy/Develop/VSCode
se usate un gestore d’archivi grafico vi può dare errori strani.

Funzionalità


Per compilare il nostro progetto Code supporta Glup (che possiamo definire un compressore di html, javascript, css ed immagini. Unisce più file assieme e rimuove le parti superflue che non incidono sul normale funzionamento).

Connessione di device fisici


Per connettere i nostri device (nel mio caso Nexus 5 e Nexus 9) per prima cosa abilitiamo il debug USB (link ad abilitazione) e colleghiamoli al PC tramite USB.
Apriamo il browser al seguente URL: chrome://inspect
Ed abilitiamo il port forwarding.

Debug dei device in realtime
Ogni device ha il suo modo per eseguire il debug.

Con Android


utilizziamo i Chrome DevTools che possiamo impostare al seguente indirizzo: chrome://inspect per impostare il tuo device leggi qui: debug setup

Con Safari for iOS


Apri Safari su tuo device iOS.
Connettilo via USB.
Apri Safari sul tuo PC.
Nel menu di Safari’s menu vai su Develop e seleziona il nome del tuo dispositivo.
Seleziona quale tab vuoi debuggare.

Con IE Windows Phone


Al momento non esiste un supporto al debug nativo, ma si può emulare il browser mobile sul desktop con IE 11, vedi qui: win emulator

Debug Nexus 5 e Nexus 9 in realtime


Per prima cosa collego i 2 device alle porte USB del PC e vado all’indirizzo: chrome://inspect su Google Chrome

Otteniamo l’indirizzo ip del PC, nel caso Linux tramite riga di comando “ifconfig”, con windows “ipconfig”.

Sui device apriamo il browser Chrome all’indirizzo ip del PC ottenuto precedentemente e ci colleghiamo alla porta del server Gulp: x.y.z.n:3000 (Es.: 192.168.1.2:3000)

Dal PC all’indirizzo chrome://inspect, vediamo comparire i device collegati e a quale URL.


Editing con Code in realtime


A questo punto da linea di comando raggiungiamo la cartella dello starter kit ed apriamo Code con il comando: “code .”
Clicchiamo sul menu “File” ed abilitiamo il flag “Enable autosave”.

A questo punto possiamo modificare il codice sorgente del programma e vedere in realtime il cambiamento. Inoltre scrollando e navigando sui vari link, da uno device collegati al PC (o dal PC stesso), tutti gli altri lo seguiranno (questo è possibile tramite la funzionalità “browsersync”).


lunedì 7 luglio 2014

Lista comandi Google Now

Oggi mi è arrivato l'orologio di LG con Android Wear. Per l'occasione e perché ne avrò bisogno ecco la lista dei comandi Google Now che ho trovato qua e la su internet:

Inizia nuova telefonata
  • chiama [nome persona] [cognome] [tipo: cellulare, lavoro, casa, ecc..]
Invia messaggio di testo
  • invia messaggio a [nome persona] [cognome] [tipo: cellulare, lavoro, casa, ecc..] [messaggio] 
  • email a [nome persona] [cognome] [messaggio] 
Foto online di qualcosa
  • foto [soggetto: luogo, persona, oggetto, ecc..] [quando? Momento temporale o condizione ]
    Es.: foto di Roma al tramonto
Navigazione web
  • apri [indirizzo web]
  • accedi a [sito web] 
Cose nei paraggi
  • ristorante, pizzeria, pub, ecc.. vicino a me
Informazioni turistiche
  • chiesa, monumento, teatro, ecc.. [nome dell'oggetto della ricerca]
Informazioni generiche
  • quando, quanto, quanti, dove, ecc..  [richiesta]
    Es.: quando sorge il sole
  • che cos'è [oggetto] 
  • chi ha inventato [oggetto]
  • quale è il significato di [parola] 
  • chi è [nome di personaggio famoso] 
  • l'autore di [nome libro]
  • orario a [nome luogo]
  • che ore sono a [nome luogo]
  • fuso orario [nazione] 
Musica
  • ascolta [titolo canzone] 
  • come si intitola questo brano? 
  • ... (lui ascolta e ti dice che brano stai sentendo)
Informazioni meteo specifiche
  • che tempo fa [oggi, domani] [a: nome luogo]
  • [domanda] [periodo temporale]
    Es.: pioverà domani? 
Informazioni meteo generiche
  • meteo [luogo] 
Calcoli matematici somma
  • numero più numero
Calcoli matematici sottrazione
  • numero meno numero
Calcoli matematici divisione
  • numero diviso numero
Calcoli matematici moltiplicazione
  • numero moltiplicato per numero
  • numero X numero
Calcoli matematici percentuale
  • numero percento di numero
Calcoli matematici modulo
  • numero modulo numero
Calcoli matematici radice
  • radice quadrata di [numero] 
Conversioni di unità
  • numero [unità] in [unità]
    Es.: 3 litri in ettolitri
Sport classifiche
  • classifica [serie: A, B, ecc..]
Sport eventi
  • quando giocherà [nome squadra]
Sport risultati
  • chi ha vinto tra [squadra] e [squadra]
Sport domanda risultato
  • [squadra]  ha [vinto, perso] 
Programmazione di un film
  • cinema, film [nome del film] 
Film con un certo attore
  • film [nome cognome attore] 
Serie tv
  • serie tv [nome serie, attore] 
Appunti
  • ricordami di [cosa da ricordare] alle [ora e minuto] di [giorno] (oppure si può specificare: mattina, pomeriggio, sera, notte) 
  • scrivi nota [nota da scrivere]
Sveglia programmata
  • sveglia [giorno] alle [ora e minuto]
  • svegliami tra [numero] minuti
Appuntamento su calendario
  • appuntamento [giorno] alle [ora e minuto] [descrizione] 
Avvio applicazioni
  • avvia, lancia [nome applicazione] 
Voli aerei
  • volo [partenza] [destinazione] 
Pubblicazione social
  • pubblica su [google plus, twitter, facebook] [descrizione]
Navigatore
  • naviga fino a [nome città] 
  • mappa di [nome città] 
  • foto di [nome città]
  • vai a [nome città] 
  • quanto è lontano [luogo] 
  • portami a [luogo] 
  • traffico [località, nome autostrada]

Man mano che scopro nuovi comandi vocali li aggiungerò a questa lista.

giovedì 22 dicembre 2011

Sviluppo Python su Android con SL4A

In questo articolo vi parlerò di come collegare un dispositivo Android al vostro PC windows per utilizzare da remoto SL4A, un programma che invia istruzioni in diversi linguaggi scripting (fra cui Python) ad Android tramite chiamate RPC e permette di scrivere programmi o pezzi di script direttamente sul dispositivo.

Per prima cosa scaricare e installare SL4A sul dispositivo Android. Lo potete trovare qui:
http://code.google.com/p/android-scripting/downloads/list
file: sl4a_r4.apk (o ultima versione)

Scarichiamo anche l'ultimo interprete del linguaggio Python:
http://code.google.com/p/python-for-android/downloads/list
file: PythonForAndroid_r6.apk (o ultima versione)

Sul PC installate Android SDK:
http://developer.android.com/sdk/index.html

Sul PC avviate Android SDK Manager e installate il driver USB:


Sul device andare in: "Impostazioni" -> "Applicazioni" -> "Sviluppo" -> e spuntare l'opzione "Debug USB"


Sul PC aggiungete "C:\Program Files (x86)\Android\android-sdk\tools\" alla variabile ambiente di windows PATH


Dal prompt di windows digitare "gestione dispositivi" e su "Altri dispositivi" tasto destro e "Aggiornamento software driver"
fare cerca nel computer nella cartella: "C:\Program Files (x86)\Android\android-sdk\extras\google\usb_driver" (o dove avete installato l'sdk)


Se il dispositivo non viene riconosciuto fate proprietà -> dettagli e annotardi le 2 righe con gli hardware id:


Aprite il file "android_winusb.inf" per inserire gli hardware id annotati in precedenza:.

Per il tablet iconia A500 come il mio aggiungete le seguenti righe:

(sia alla fine sella sezione [Google.NTx86] che di [Google.NTamd64])
;
;Iconia A500
%SingleAdbInterface% = USB_Install, USB\VID_0502&PID_3325
%CompositeAdbInterface% = USB_Install, USB\VID_0502&PID_3325&MI_01

ripetete il riconoscimento del driver, tramite aggiornamento ed ora verrà trovato:


fate una prova lanciando il comando dal prompt di windows (con privilegi di amministratore): adb devices
dovrebbe restituirvi una stringa che rappresenta l'id del dispositivo connesso

Avviamo SL4A dal dispositivo Android. Ora dal menu del programma selezionate: View -> Interpreters
premiamo di nuovo il bottone menu, selezioniamo "start server". Selezioniamo "private" (public è usato per la connessione via wifi).

Ora siamo pronti alla connessione:
per prima cosa dobbiamo creare la seguente variabile d'ambiente per utente: AP_PORT con valore di default: 9999, poi abilitare il port forwarding


Nel caso abbiate un tablet cliccate sull'icona di SL4A nella tray e poi nel riquadro nero che compare per vedere a video il numero della porta usata dal server del dispositivo:


Aggiungiamo alla variabile d'ambiente PATH anche il percorso del file della shell Python Es.: ";C:\Python26"

Nella cartella lib della cartella dove avete installato Python Es.: "C:\Python26\Lib" salviamo il file "android.py"

Sul PC lanciamo un prompt windows come amministratore e digitiamo:
set AP_PORT=9999
adb forward tcp:9999 tcp:[numero di porta server SL4A]
python
Ora la vostra shell Python esegue i comandi sul dispositivo Android.

Ecco il codice per una piccola prova che stampa sul video del dispositivo il messaggio "Ciao sono il PC!"
import android  # dal file android.py che abbiamo aggiunto sul PC
droid = android.Android()
droid.makeToast("Ciao sono il PC!")