====== Lo smartphone Android al posto del notebook ====== **È necessario portare con sé un notebook?** Da quando è diventata abitudine **avere sempre con sé uno smartphone**, la domanda è sempre più attuale. Consideriamo la capacità computazionale di uno smartphone di fascia media: **RAM da 2 Gb** o più, processore oltre **1 GHz e 4 core**, storage superiore ai **32 Gb**, schermo **Full-HD** (1080p) o superiore; in pratica niente da invidiare ad un notebook che consente la normale attività informatica. {{android_replaces_desktop.jpg?600|An Android Smartphone with keyboard and mouse}} In particolare ho esplorato la possibilità di rimpiazzare il notebook con lo smartphone in queste due aree di lavoro: * **Amministrazione di sistema da riga di comando GNU/Linux** * **Applicazione di web-mapping** Per il test ho individuato alcune aree critiche da considerare: * **Tastiera** - Quella virtuale su schermo è ovviamente insufficiente per una normale digitazione, sia perché occupa una porzione troppo importante dello schermo sia perché non ha il necessario feedback tattile. * **Mouse** - Per alcune attività la precisione del tap è assolutamente insufficiente, pensiamo ad esempio alla necessità di disegnare un percorso su mappa web. * **Browser** - Molte attività quotidiane sono svolte all'interno di un browser, in apposite web-app. Quelle più evolute richiedono l'impostazione desktop con orientamento orizzontale e richiedono il massimo dello spazio offerto dallo schermo. * **Terminale** - Molte attività di amministrazione di sistema richiedono l'uso di un terminale in modalità testo. È necessaria la totale compatibilità del character set (UTF-8) e dei caratteri di controllo (il vecchio VT100 è decisamente obsoleto). ===== Tastiera ===== Il problema tastiera è facilmente risolvibile con un modello bluetooth. Ho sperimentato un **Perixx** con **layout US per Windows**, che comprende i tasti Esc, Ctrl, Alt, Shift, Caps-lock, Backspace, Delete nonché i tasti funzione da F1 a F10. Questa tastiera non ha tasti speciali Android. Dopo aver fatto il pairing è necessario aprire le **Impostazioni Android** => Sistema => Lingua e immissione => Tastiera fisica. In questa schermata si imposta il **layout** e si **disattiva il Mostra tastiera virtuale**. ===== Mouse e click destro ===== Per la mia applicazione di web-mapping preferita (**[[https://maps.openrouteservice.org/|maps.openrouteservice.org]]**) è praticamente indispensabile avere un mouse: tracciare un percorso su mappa richiede il **click** e il **trascinamento** di precisione, il **click destro**, ecc. Ho risolto con un **cavetto adattatore OTG** con connettore **USB 3.0 Type-C maschio** da un lato e **USB 3.0 Type-A femmina** dall'altro (il mio smartphone ha connettore USB C). Il mouse è un Logitech wireless: è stato sufficiente inserire l'adattatore wireless nel cavo OTG e accendere il mouse: dopo pochi secondi **la freccia del mouse è comparsa sullo schermo**. Con disappunto ho scoperto che il **click destro** viene intercettato da Android e **non passa al browser**. Per fortuna con una **pressione lunga del tasto sinistro** si simula il click destro. ===== Browser ===== Dopo qualche sperimentazione si è optato per l'installazione del browser **Firefox per Android**. In generale una app web studiata per il desktop è opportuno che venga eseguita con tale impostazione: dal menu di Firefox si attiva la **Modalità desktop**, ==== Pan e pinch-zoom ==== Una applicazione web, per girare correttamente, deve in generale essere eseguita con zoom al 100% ed occupare il 100% della finestra (schermo). Purtroppo i browser Android hanno spesso funzioni di zoom che ingrandiscono automaticamente la porzione dello schermo che interessa; il risultato è che non tutta la schermata è visibile nel display. Si dovrebbe effettuare **il pan con il trascinamento** del dito, ma nelle applicazioni di web-mapping tale //gesture// è associata alla funzione pan della mappa. Anche la funzione di zoom della pagina è normalmente associata al **pinch-zoom** di Firefox: cioè per aumentare o diminuire la dimensione della pagina si esegue la manovra con due dita. Anche questa //gesture// viene però catturata ed interpretata dalla mappa, non dal framework che costituisce la pagina. In pratica **pan e zoom vengono eseguite sulla mappa e non sulla applicazione**. L'unico escamotage trovato è poter aprire una porzione della web-app che non sia interessata dalla mappa e agire su quella porzione di schermo per effettuare il **pinch-zoom al 100%**. ==== Fullscreen ==== In generale i browser Android hanno la funzione di **nascondere automaticamente la barra dell'indirizzo** quando si fa scorrere la pagina verso l'alto. Purtroppo una applicazione di web-mapping occupa il 100% dello schermo e non prevede scroll, quindi la barra dell'indirizzo **resta sempre attiva occupando spazio prezioso**. Una soluzione di compromesso è quella di installare l'add-on di Firefox per Android chiamato **[[https://addons.mozilla.org/it/firefox/addon/fullscreen/|fullscreen]]**, sviluppato da [[https://gitlab.com/adilparvez/fullscreen|Adil Parvez]]. Dopo aver installato questa componente aggiuntiva (menu di Firefox, **Componenti aggiuntivi**), avremo la nuova voce **fullscreen** nel menu. Per uscire dalla modalità si usa il tasto Esc. **ATTENZIONE**: Quando è attiva la modalità fullscreen, non funziona il pinch-zoom e il pan descritto al paragrafo precedente. ==== Scorciatoie da tastiera ==== Stranamente pochissime scorciatoie da tastiera sono disponibili nel browser. Abbiamo individuato solo le seguenti: ^ Ctrl-T | New tab | ^ + | Zoom-in | ^ = | Zoom-in 2X | ===== Terminale ===== Si installa la app **[[https://f-droid.org/en/packages/com.termux/|Termux]]** e praticamente tutto funziona per magia.