Skip to content
Archive of posts tagged Android

Tethering dallo smartphone, ecco come gli operatori telefonici possono scoprirlo

Molte delle promozioni per la navigazione web dal proporio smartphone precisano che l’accesso ad Internet e’ consentito *solo dal device*, e non attaccando il device ad un computer attraverso il tethering (wifi o usb). Mi sono sempre chiesto come facessero i carrier a capire quando stavo navigando nell’uno o nell’altro modo, e grazie a questo commento a questo post ho avuto la risposta, almeno per Android:

The built-in tether support acts as a WiFi hotspot and router. This does a USB tether, and acts as a network proxy. Very different.

The biggest difference, from the carrier’s end, is that routing is pretty easy to detect; each packet that goes through the router, the time-to-live (TTL) field in the IPv4 header is decremented. In addition, there is NAT going on, and there are heuristics to detect that. There are ways around this using Linux’s iptables that can masquerade the routing/NAT, but I’m unaware of any mainstream implementations of this on Android, and it would require root. This app doesn’t; I’m like 90% sure it’s all done over ADB (Android Debug Bridge), which every Android device supports.

With the USB tether acting as a network proxy, there is simply no routing/NAT going on, so there is no way for the carrier to detect what’s going on. It just appears to be data coming from the phone.

Ottimo, penso anche che il meccanismo sia estendibile anche ad altre piattaforme, non si finisce mai di imparare dai commenti! Prossima mossa, vedere se veramente il tethering USB non viene scoperto dai carrier.

Video dell’intervento “Sopravvivere a due anni di sviluppo con Android”

Ecco i video dell’intervento che ho fatto il 22 Novembre al GTUG Milano, dove ho condiviso con i partecipanti alcuni consigli utili imparati dopo piu’ di due anni di sviluppo per piattaforma Android.

Continue reading ‘Video dell’intervento “Sopravvivere a due anni di sviluppo con Android”’ »

Linkflood 20111029: Holodesk ed applicazioni Android su Win/Mac

The Essence of Google Dart: Building Applications, Snapshots, Isolates – Un articolo che parla un po’ piu’ in dettaglio di Dart, il nuovo linguagguio di programmazione per il web creato da Google.

Problema di sicurezza iPad 2: la SmartCover scardina le password – Il codice di sicurezza degli iPad2 che protegge l’accesso al dispositivo ad estranei e’ facilmente aggirabile usando la SmartCover. Un esempio di hardware hacking. Fortunatamente l’accesso e’ completo al dispositivo, ma limitato alle app aperte prima di bloccarlo.

Bluestacks – Eseguire applicazioni Android su Windows non sembra piu’ un sogno, grazie a Bluestack. Dalle prove che ho fatto, devo dire che …

Codify iPad – Un editor LUA per iPad, con la possibilita’ di gestire la scrittura di codice anche in modo touch. Esperimento interessante, ma non mi convince molto, dato che la tastiera, e al limite il mouse, sono da sempre stati i migliori amici del dev. ;) Rimane pero’ il fatto che e’ un editor LUA per iPad con alcune interessanti funzioni (auto competition, project browser ecc).

MonoGame Goes Multi-platform: MonoGame 2.0 Announced – Si aggiunge un nuovo nato alla famiglia Mono / Monotouch/ MonoDroid: e’ infatti arrivato MonoGame, versione crossplaform per desktop e mobile delle API XNA. Quindi Windows, Linux, Mac, Android, iPad. Supporto nativo del codice, invece, da parte di XBOX e Windows Phone 7. Decisamente un qualcosa da provare non appena trovo un po’ di tempo libero!

Qualcomm Augmented Reality Mobile SDK  – Un SDK per realizzare applicazioni in realtà aumentata rilasciato da Qualcomm per Android e iPhone. Stiamo parlando di riconoscimento di forme, non piu’ solo location-base. Da tenere sott’occhio assieme agli SDK rilasciati da Layar e da Wikitude.

Holodesk bt Microsoft – Sensori 3D, Kinect, complesse computazioni, qualche specchio ben piazzato ed ecco nato un desktop olografico made in Microsoft, che da la possibilita’ di interagire in maniera naturale con gli oggetti creati al suo interno.

Android Orphans: Visualizing a Sad History of Support – Un’infografica che mostra lo stato attuale della frammentazione del mondo Android per quanto riguarda la disponibilita’ di aggiornamenti del sistema operativo rilasciati dai produttori dei dispositivi nell’arco di 3 anni. Una triste situazione, con moltissimi device lasciati a se stessi. Impossibile immaginare uno scenario diverso: i produttori hanno tutto l’interesse a far acquistare nuovi device, piuttosto che rilasciare aggiornamenti per mantenerli ancora competitivi sul mercato. Speriamo che quando dichiarato da Google al Google I/O, riguardante la policy sul supporto agli aggiornamenti del sistema operativo per almeno 18 mesi dalla data di rilascio di un dispositivo, sai davvero rispettata.

Trailer, le risposte della SIAE – Embeddate video di trailer cinematografici nel  vostro sito, che contengono colonne sonore coperte da diritto d’autore (come tutte quelle dei film)? Bene, dovete pagare la SIAE.

Continuous Integration for Mobile – LinkedIn non e’ nuova a scrivere dei dettagliati post che spiegano com’e’ organizzata la sua struttura IT per gestire specifiche situazioni. Stavolta tocca all’ambiente di Continuous Integration per le applicazioni mobili del portale.

Come installare Cyanogenmod, MIUI o una custom rom sul Nexus One

Installare un sistema operativo personalizzato al posto di quello standard presente sul proprio smartphone e’ una pratica consolidata. Gia’ con Symbian era prassi comune quella di eliminare la versione customizzata che l’operatore telefonico installava nel telefono, spesso con crapware e limitazioni varie, per usarne una “stock”, ovvero pulita, spesso piu’ aggiornata, piu’ leggera e senza vincoli. Con Windows Mobile c’e’ stata un’esplosione di questa pratica e le ROM coocked create dalla comunita’ erano spesso di gran lunga migliori di quelle standard: parecchi bugfix, driver e sistemi operativi aggiornati, utility precaricate per risparmiare spazio, Erano insomma capaci di prolungare la vita di un device di un anno o piu’. Dopotutto intendiamoci, i produttori di dispositivi non hanno interesse a rilasciare versioni aggiornate del firmare dei propri prodotti, preferiscono che si buttino via e si ricomprino nuovi con quanto di nuovo c’e’ sul mercato.

Android, ovviamente, non fa differenza. Unica controindicazione di questo processo di customizzazione della ROM e’ la perdita della garanzia, ma si puo’ sempre ripristinare quella originale ;)

Considerazione finale dopo aver sperimentato per un paio di giorni tutto: ma come ho fatto ad aspettare cosi’ tanto tempo prima di usarle sul mio Nexus One!

 

I passi da seguire per un Nexus One

Ovviamente ogni telefono ha una sua sequenza di comandi per essere sbloccato e personalizzato, di seguito quelli per il mio Nexus One:

  • Sbloccare il bootloader del device per poter installare una nuova recovery image, al posto di quella standard (si usa fastboot).
  • Installare una Custom Recovery Image che permettera’, tra le altre cose, di installare delle ROM personalizzate (ClockWorld Mod).
  • Tramite la Custom Recovery Image, fare un salvataggio del sistema e poi caricare la nuova ROM personalizzata.
  • Installazioni aggiuntive.

Purtroppo, la prima volta che si esegue questo processo, tutti i settaggi delle app saranno irrimediabilmente persi. Quindi addio punti nei giochi, impostazioni di programmi e tutto quello che non viene salvato nativamente nel cloud o sulla SD dalle singole applicazioni. Le volte successive, grazie all’accesso root al dispositivo e ai tool di backup esistenti, questo problema sara’ solo un brutto ricordo. Ragione in piu’ per fare il prima possibile lo sblocco, anche solo per avere un salvataggio completo di tutto, in caso di perdita del device.

 

Sbloccare il bootloader ed installare Fastboot

Una volta il comando fastboot era installato nell’Android SDK, poi e’ stato tolto. Qui si puo’ trovare un eseguibile multipiattaforma: e questa e’ la procedura dettagliata per sbloccare il boot del device.

  • Scaricare i pacchetti del fastboot per linux e copiati nella directory platform-tools dell’sdk Android
  • Boot del device nel bootloader (premere il trackpad e accendere il dispositivo). Apparira’ uno schermo con dei robottini Android su uno skate.
  • Controllare che in alto a sinistra ci sia la scritta S-OFF, che indica il security off del dispositivo, quindi la possibilita’ di sbloccarlo
  • Controllare che sia selezionato FASTBOOT e non HBOOT nelle voci del menu’
  • Connettere il device via USB al computer
  • Lanciare, dal computer, il comando fastboot devices e controllare che il proprio device sia elencato
  • Lanciare, dal computer, il comando fastboot oem unlock e confermare l’unlock del device

Tutti i dati saranno cancellati e il device verra’ riavviato. Per controllare se e’ effettivamente stato sbloccato, avviare nuovamente il bootloader e questa volta, in altro, dovrebbe apparire la scritta *** UNLOCKED ***

 

Installare una Custom Recovery Image

Compito della Custom Recovery Image e’ quello di installare custom rom, salvare dati, partizionare sd card, cancellare dati, resettare impostazioni particolari di sistema e molto altro. Ci sono diversi programmi molto usati e che fungono bene allo scopo, io ho scelto ClockWorldMod Recovery, ecco spiegato cos’e’. Per installarlo, ho seguito questi passi qui, che comprendono anche il link per il download del file img. In alternativa, c’e’ anche Amon-Ra’s

  • Scaricato il file img nel computer
  • Boot del device nel bootloader
  • Connettere il device via USB al computer
  • Lanciare il comando fastboot flash recovery /path/to/recovery-clockwork-3.0.0.5-passion.img
  • Riavviare il device. La Custom Recovery Image e’ presente ed operativa.

Ovviamente esiste una versione piu’ nuova della 3.0.0.5, dopo l’installazione della custom rom ci sono le istruzioni per aggiornarla.

 

Backup del sistema operativo, conosciuto anche come Nandroid backup, e installare di una custom ROM

Prima di installare una qualunque custom rom, e’ buona cosa fare un backup dell’intero sistema operativo, che servira’ anche nel caso in cui le cose vadano storte e il device non si riavvii piu’, ad esempio a a causa di una rom sbagliata, un errore nella sd che ha corrotto il file ecc. Inoltre e’ l’immagine che va rimessa sul dispositivo in caso di invio in assistenza (assieme all’esecuzione del comando fastboot oem lock per ribloccare il bootloader e riportarlo allo stadio originale). Conosciuto anche come Nadroid backup, ecco i passi che ho seguito:

  • Fare il reboot in recovery mode: lanciare il bootloader, scegliere recovery, oppure, con il device connesso via usb, lanciare il comando adb reboot recovery.
  • Scegliere la voce di menu’ Backup and Restore
  • Lanciare in backup e aspettare un paio di minuti
  • Per il restore, stessa procedura, ma selezionando restore invece di backup, e l’immagine da ripristinare (tramite data e ora del backup fatto)

 

Installazione di una Custom ROM

Ovviamente esistono tantissime custom rom, sia in base al device, sia in base all’orientamento che viene dato alla rom (performance, cool&stylish, funzionalita’ ecc). Personalmente, e per un Nexus One, ritengo che ci siano tre grandi alternative: installare una rom stock, una Cyanogenmod o una MIUI. Consiglio la prima scelta a chi usa il device per sviluppare e testare le proprie applicazioini, ma non vuole perdere i benefici di essere root: le rom customizzate, infatti, sono molto diverse da quella originale, quindi potrebbero anche avere dei comportamenti inattesi / fuori dagli standard che potrebbero pregiudicare il buon esito dei test di funzionamento. La Cyanogenmod, invece, e’ tipicamente per gli smanettoni: tantissimi settaggi, ottimizzazioni alle stelle e velocita’ da urlo. MIUI, infine, e’ esteticamente qualcosa di unico ed offre applicazioni di gran lunga migliori di quelle standard (player musicale, rubrica dei contatti, backup integrato ecc). A voi la scelta. Io le sto provando entrambe e, per ora, la MIUI mi ha conquistato. Seguiranno post piu’ dettagliati.

A prescindere dal tipo di rom i passi sono molto simili, ecco quelli che ho seguito io per la Cyanogenmob, secondo la guida ufficiale.

  • Scaricare nel computer il file della custom rom, prendendola dal sito o scaricandola con qualche app direttamente dal device. E’ un file zip, che va copiato nella propria SD (dove si vuole, io ho creato la cartella /roms e le metto li sotto). Io ho preso la versione stable da qui.
  • Nel caso di una Cyanogenmod, se si vogliono anche le Google Apps (Market, GMail ecc), occorre scaricare l’apposito pacchetto.
  • Fare il reboot in recovery mode: lanciare il bootloader, scegliere recovery, oppure, con il device connesso via usb, lanciare il comando adb reboot recovery.
  • Selezionare un Wipe data/factory reset e poi Wipe data/Cache partition: questo cancellera’ tutti i dati presenti, ma e’ fondamentale farlo quando si installa una nuova tipologia di ROM, non sempre richiesto quando si passa ad un nuova versione di rom della stessa famiglia.
  • Selezionare Install zip from sd card e poi Choose zip from sdcard e navigare fino a scegliere il file scaricato con la rom in precedenza
  • Ripetere il precedente passo, ma con il file delle Google Apps
  • Riavviare il sistema dall’apposito’ menu.
  • Let’s the magic happens! La ROM e’ pronta all’uso.

 

Continue reading ‘Come installare Cyanogenmod, MIUI o una custom rom sul Nexus One’ »

NavigationBar in style iPhone UITabBarController per Android

Nel porting di applicazioni iOS su piattaforma Android, ci sono casi in cui si vuole necessariamente una barra di navigazione nella parte bassa dello schermo, come quella presente in molte applicazioni iPhone/iPad.

Ci sono diversi approcci che si possono seguire. Usare una libreria che rende anche possibile lo scrolling dei bottoni, un controllo personalizzato e gestito tutto via codice, dei TabHost con dei TabWidget, oppure inventarsi altro per gestire anche i Fragment.

Invece io voglio ottenere lo stesso risultato con la massima flessibilita’ possibile, quindi usando solo controlli standard e semplici, al massimo personalizzandone lo stile. Quindi il componente principale della navigationbar sara’ un RadioGroup, all’interno del quale ogni elemento RadioButton rappresentera’ un pulsante. Un diffuso uso di StateListDrawable rendera’ coerente l’aspetto grafico.

Di seguito il layout dell’activity principale, quella che conterra’ la navigation bar: res/layout/actnavbar.xml

< ?xml version="1.0" encoding="utf-8"?>
 
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:background="@android:color/white"
>
  <radiogroup android:layout_width="fill_parent"
    android:layout_height="60dp"
    android:layout_alignParentBottom="true"
    android:orientation="horizontal"
    android:background="@drawable/navbar_background"
  >
    <radiobutton android:id="@+id/btnAll"
      style="@style/navbar_button"
      android:drawableTop="@drawable/navbar_allselector"
      android:text="All"
    />
    <radiobutton android:id="@+id/btnPicture"
      style="@style/navbar_button"
      android:drawableTop="@drawable/navbar_pictureselector"
      android:text="Pictures"
      android:layout_marginLeft="5dp"
    />
    <radiobutton android:id="@+id/btnVideo"
      style="@style/navbar_button"
      android:drawableTop="@drawable/navbar_videoselector"
      android:text="Videos"
      android:layout_marginLeft="5dp"
    />
    <radiobutton android:id="@+id/btnFile"
      style="@style/navbar_button"
      android:drawableTop="@drawable/navbar_fileselector"
      android:text="Files"
      android:layout_marginLeft="5dp"
    />
    </radiogroup>
</relativelayout>

Continue reading ‘NavigationBar in style iPhone UITabBarController per Android’ »

Linkflood 2011-09-05 – Clean Code in Android, algoritmi genetici e algoritmi che distruggeranno il mondo

Clean Code in Android Applications – Dependency Injection, pattern MVVM, Roboguide e Annotation: una serie di librerie utili per lo sviluppo di codice Android ad un livello piu’ professionale e in ottica di codice pulito e riusabile, con meno boilerplate possibili.

Charting library for Android – Sempre in tema Android, una libreria per realizzare accattivanti grafici nelle proprie applicazioni.

When algorithms control the world – Qualche riflessione ed esempio di fallimento dei complessi algoritmi e processi automatizzati che ormai gestiscono molte sfere della nostra vita, dalla borsa alla ricerca online. Riflessione necessaria dal momento in cui deleghiamo sempre piu’ scelte a qualcosa fatto da noi, ma che non siamo noi.

Genetic Algorithm – A ‘Walt Disney’ Introduction – Una semplice introduzione alla logica con cui sono costruiti gli algoritmi della famiglia chiamata “Evolutionary Computing” (Genetic Algorithm, Evolutionary Strategies, Evolutionary Programming e Genetic Programming).

Intel ‘Temporarily’ Halting Meego Development – Come era prevedibile, anche Intel ha dato un taglio allo svilupo di Meego. Dopo Symbian e WebOS, ecco il terzo grande ferito della guerra dei tre asset: hardware, sistema operativo e cloud.

Firefox for Tablets - Qualche screenshot della versione per Honeycomb di Firefox.

The “designers should code” bullshit and a not so new idea – Ma i designer devono sapere scrivere codice per essere dei buoni designer? Personalmente penso di no, ma ritengo anche necessario uno scambio di conoscenze tra chi costruisce e chi progetta, tra questi due mondi cosi’ separati. Partendo dalla teoria delle intelligenze multiple, un approccio che propone che i designer “Know what code does”. E viceversa, aggiungerei, arrivando ad un fluido scambio di conoscenze tra membri di team eterogenei.

Why Separate Mobile & Desktop Web Pages? – Nonostante il Responsive Web Design Manifesto consigli di usare una solo pagina HTML e poi ottimizzarla tramite Javascript e CSS in base alle caratteristiche del device che la sta richiedendo (layout, immagini, dimensione degli elementi ecc), in questo post vengono analizzati i pro dell’approccio inverso, ovvero realizzare e manutenere due separate versioni della stessa pagina, una per il desktop e una per il mobile.

Don Norman: Google doesn’t get people, it sells them – Ennesima critica mossa nei confronti di Google (ma si puo’ sostituire con Facebook e altri servizi simili) che “usano” noi utenti come prodotti, per raccogliere quante piu’ informazioni possibili sulla nostra vita e poi offrirle al miglior insersionista. Come criticarlo, in fondo?

 

Tutto il testing possibile per Android al BetterSoftware 2011

Ecco la registrazione del mio intervento “Tutto il testing possibile per Android”, che ho tenuto durante il BetterSoftware a Firenze. Purtroppo 20 minuti per il mio intervento sono stati veramente pochi (ne avevo chiesti il doppio), quindi mi sono dovuto adattare con quello che avevo, tagliando e accorciando come un forsennato. Scusatemi :(

Qui il link diretto al file video, mentre di seguito le slide.

Conflitti nella UX delle Google Android App

Magari ingenuamente, uno si puo’ anche aspettare che le applicazioni fatte da Google per Android seguano una UX comune e, tra loro, abbiano una buona coerenza nell’interfaccia. E invece ecco cosa capita oggigiorno.

Google ShopperGoogle Shopper: spunta una Navigation Bar in basso, in pieno stile iPhone TabBar, mai vista in altre app Google.

Google MusicGoogle Music: Nel secondo screenshot il menu’ contestuale dell’elemento e’ completamente diverso da come appare nei contatti e da come avevano caldamente consigliato al Google IO del 2010. L’Action Bar e’ assente e spunta una Navigation Bar in alto, a scorrimento orizzontale, che ricorda molto l’interfaccia Panorama di WP7, dove per indicare che c’e’ qualcosa a destra e a sinistra si lascia, appunto, troncato il titolo di quello che c’e’ ai lati.

GooglePlusGoogle+ utilizza l’Action Bar, mentre la Navigation Bar appena sotto e’ molto diversa da quanto visto fino ad oggi. Difficile da leggere e da navigare al tocco, conta comunque sullo swipe delle schermate verso destra e verso sinistra, indicando con delle freccine che ci sono ancora contenuti ai quali accedere ai lati della vista su cui si e’ focalizzati.

Continue reading ‘Conflitti nella UX delle Google Android App’ »

Linkflood 2011-07-19: Migrare le proprie app sui tablet Android e Kinect sui dispositivo mobili

Altra settimana, altra raccolta dei piu’ interessanti link che ho trovato in giro per la rete. Sviluppo per mobile, ovviamente, piu’ qualche digressione in tema economico e sulla cultura del lavoro.

New programming jargon you coined? – Direttamente da StackOverflow, una lista dei termini che generazioni di programmatori hanno coniato nel tempo. Simpatico ed imperdibile!

Android moves to the tablet - Il team di Evernote ha scritto un’interessante post tecnico sulla migrazione e 0ttimizzazione della propria applicazione per i tablet Android, partendo da quella gia’ esistente per gli smatphone. Utilizzo di Fragment, ActionBar, e Krati, una libreria a cui dovro’ dare una guardata al piu’ presto.

Most branded apps are a flop says Deloitte. But why? - Una rierca svela che l’80% delle applicazioni realizzate da piccoli e grossi brand a scopi promozionale vengono scaricate meno di 1000 volte. La chiave per il successo: risolvere un problema reale e creare una canale di comunicazione privilegiato e diretto con l’utente.

Android: all the improvements from 1.6 to 3.0 - Infografica che mostra tutte le maggiori novita’ nella piattaforma Android a partire dalla versione 1.6 fino alla 3.0. Un buon riassunto anche per i meno tecnici.

Video for Kindle – Partire da un video ed arrivare a una sequenza di immagini con dei sottotitoli. Ottimo per creare un documento riassuntivo oppure per “leggere” il video sul Kindle.

Kinect, Nodejs, and Windows Phone 7 Mango – Una guida per utilizzare far dialogare un Kinect con un Windows Phone 7 tramite le socket connection e un server node.js. Stessa logica per utilizzarlo con Android, iPhone e qualunque altro dispositivo che supporti le socket connection.

Developing Android Apps with NetBeans, Maven, and VirtualBox – Se l’emulatore Android fornito con l’SDK e’ troppo lento, creare una virtual machine con VirtualBox dove installare un Android-x86 potrebbe risolvere il problema.

What Happens When Your Phone Is Lost Or Stolen - Un’infografica tutta americana con un po’ di percentuali sulla possibilita’ di ritrovare il proprio telefono una volta che lo si e’ perso. Interessante il dato che dice che il 54% dei possessori di smartphone non lo blocca con nessuna password.

Quanto guadagna un professore - un professore universitario, Alfonso Fuggetta, che parla della sua retribuzione come docente. Un po’ di luce, con tanto di cedolini, sui miti e sulle leggende che circolano in questo ambiente.

Bored People Quit - Piccoli segnali e strategie utili ad un team leader per riconoscere se uno dei suoi compagni sta pensando di andare via a causa di noia e routine ormai non piu’ sopportabili.

Linkflood 2011-07-11: mHealt, mPayments e punti deboli dei location-based service

Il LinkFlood di questa settimana e’ tutto dedicato al mobile. Buona lettura!

The Future Of Mobile Is The Future Of Everything – Una visione sull’evoluzione del “concetto” di mobile nei prossimi 10 anni, fatta da CEO, co-founder e persone che questo mondo lo stanno innovando oggi. Sensored devices, discover rather search, connected device.

The Future of Hospital Apps – Passare dalle noiose schermate piene di dati indecifrabili a infografiche da portarti sempre dietro grazie ai tablet (iPad su tutti)

Battleheart for Android – Riflessioni da parte di uno sviluppatore di un gioco a pagamento per Android: e’ la qualita’ che conta, ed e’ possibile ottenere “meaningiful revenue” anche dal market di Google. Grazie, soprattutto, alla qualita’ media bassa delle altre applicazioni presenti.

What’s Wrong with Mobile Recommendations? – Un post veramente be fatto e zeppo di link interessanti che spiega i punti deboli dei suggerimenti dei servizi location based.

Android Market website ratings: a week of rants, reviews, and reality checks – Un’analisi sui feedback dati dagli utenti alle applicazioni pubblicate sull’Android Market. Una storia di angry users, che danno 1 stella al primo errore che trovano, e qualche “angelo custode”, che cerca invece di difendere e diffondere il suo voto a 5 stelle.

The Future of Mobile Payments – Come si evolvera’ lo scenario dei pagamenti su mobile da qui ai prossimi 4 anni? G+ ha creato un’infografica che traccia un possibile scenario, tutto basato sulla sparizione del portafoglio fisico in favore dei chip NFC con cui i prossimi smartphone saranno equipaggiati.

Skype per Android – un apk modificato della nuova versione di Skype, che allarga il numero di device sui quali e’ possibile fare e ricevere videochiamate. In attesa del supporto ufficiale.