L'azienda Purism, che sviluppa lo smartphone Librem 5 e la distribuzione libera PureOS, ha rilasciato la libreria , nell'ambito della quale si sviluppa un insieme di widget e oggetti per la creazione dell'interfaccia utente per dispositivi mobili utilizzando GTK e le tecnologie GNOME. La libreria è in fase di sviluppo nel processo di porting delle applicazioni GNOME per l'ambiente utente dello smartphone Librem 5.
Codice del progetto sotto licenza GPL 2.1+. Oltre al supporto per le applicazioni in linguaggio C, la libreria può essere utilizzata per creare versioni mobili dell'interfaccia delle applicazioni in Python, Rust e Vala.
Attualmente, la libreria 24 widget che coprono vari elementi tipici dell'interfaccia, come elenchi, pannelli, aree di modifica, pulsanti, schede, moduli di ricerca, finestre di dialogo, ecc. I widget proposti consentono di creare interfacce universali che funzionano perfettamente sia su schermi grandi di PC e laptop, sia su piccoli schermi touch degli smartphone. L'interfaccia delle applicazioni cambia dinamicamente a seconda delle dimensioni dello schermo e dei dispositivi di input disponibili.
L'obiettivo principale del progetto è fornire la possibilità di utilizzare le stesse applicazioni GNOME su smartphone e PC. Il software per lo smartphone Librem 5 si basa sulla distribuzione PureOS, che utilizza una base di pacchetti Debian, il desktop GNOME e una shell GNOME adattata per smartphone. L'uso di libhandy consente, collegando lo smartphone a un monitor, di ottenere un desktop GNOME standard basato su un unico insieme di applicazioni. Tra le applicazioni portate su libhandy si annoverano: GNOME Calls (Dialer), gnome-bluetooth, GNOME Settings, GNOME Web, Phosh (Dialer), Daty, PasswordSafe, Unifydmin, Fractal, Podcasts, GNOME Contacts e GNOME Games.
Libhandy 0.0.10 è l'ultima versione preliminare prima del significativo rilascio 1.0. Nel nuovo rilascio sono presenti diversi nuovi widget:
- — un sostituto adattivo del widget GtkStackSwitcher, che consente di formare automaticamente il layout delle schede (viste) in base alla larghezza dello schermo. Su schermi grandi, le icone e i titoli sono posizionati su una sola riga, mentre su schermi piccoli viene utilizzata una disposizione compatta, in cui il titolo è visualizzato sotto l'icona. Per i dispositivi mobili, il blocco dei pulsanti viene spostato nella parte inferiore.

- — contenitore per visualizzare la barra in base alla dimensione disponibile, rimuovendo i dettagli se necessario (per schermi ampi viene visualizzata la barra del titolo completa per il cambio delle schede, mentre se lo spazio è insufficiente, viene mostrato un widget che simula il titolo, e il selettore delle schede viene spostato nella parte inferiore dello schermo);
- — implementazione di una barra estesa, simile a GtkHeaderBar, ma progettata per essere utilizzata in interfacce adaptive, sempre centrata e che riempie completamente l'area del titolo in altezza;
- — versione adattativa della finestra per la configurazione delle impostazioni con suddivisione delle impostazioni in schede e gruppi;
Tra i miglioramenti legati all'adattamento delle applicazioni GNOME per l'uso su smartphone, si segnala:
- Nell'interfaccia per ricevere e effettuare chiamate (Calls) è stato utilizzato il modulo loopback di PulseAudio per collegare il modem e il codec audio del dispositivo in ALSA durante l'attivazione della chiamata, e il modulo viene scaricato dopo la fine della chiamata;
- Nell'app di messaggistica (Messaging) è stata implementata un'interfaccia per visualizzare la cronologia delle conversazioni in chat. Per la memorizzazione della cronologia è stato utilizzato un database SQLite. È stata aggiunta la possibilità di verifica dell'account, che ora viene controllata tramite una connessione al server, e in caso di errore viene visualizzato un avviso;
- Nel client XMPP è stata implementata la supporto per lo scambio di messaggi crittografati tramite l'uso del plugin con implementazione del meccanismo di crittografia end-to-end . Nella barra è stato aggiunto un indicatore speciale che segnala se viene utilizzata la crittografia nella chat corrente o meno. È stata anche aggiunta la possibilità di visualizzare i fingerprint di identificazione, sia del proprio partecipante che di un altro partecipante alla chat;
- In GNOME Web sono stati utilizzati nuovi widget Libhandy 0.0.10, che hanno consentito di adattare l'interfaccia di configurazione e la barra del browser per schermi mobili.
Fonte: opennet.ru

