Photo by Glen Carrie on Unsplash

or how to use Jetpack Compose to render web pages

The vast majority of news-related apps have a well defined format, that displays a list of items, and, upon click, the selected news is rendered as web page in a WebView. This approach has neat pros: it’s a fast way to get the data to show, it is a widely adopted solution that works, and any content that already exists for the web can be made available to native mobile users. With the Android WebView component it’s super easy to take any news RSS feed and make a reader: it only requires loading a URL, after all. On the other…


Foto di Pok Rie da Pexels

Qualche tempo fa, ho visto su internet un prodotto molto interessante, chiamato Pluto. Si tratta di uno smart trigger che aggiunge diverse funzioni ad una macchina fotografica, tra cui la possibilità di realizzare un timelapse o scattare fotografie di fulmini durante un temporale.

Cosa c’è nella scatola

Prima di avventurarci tra le funzionalità più avanzate di Pluto, vediamo insieme il contenuto della scatola: oltre al trigger vero e proprio (con i suoi sensori, ricaricabile via microUSB), troviamo un cavo USB-microUSB ed un piccolo emettitore laser, anch’esso ricaricabile via microUSB. …


Foto di Sebastian Voortman da Pexels

Quando viaggio, cerco sempre di pianificare i miei spostamenti, in modo da poter vedere più cose possibili nel tempo che ho a disposizione, sacrificando un po’ l’avventura e l’emozione della scoperta.

Camminare, andare in bici, e persino prendere i mezzi guardando costantemente il telefono può essere noioso (e pericoloso), ma senza rischierei di perdermi. Questo non è un problema recente, ma soltanto qualche mese fa ho trovato la soluzione che fa al caso mio.

E questa soluzione si chiama Beeline: un navigatore per bicicletta particolarmente portatile, programmabile via Bluetooth tramite un’app proprietaria. …


Foto di Blake Richard Verdoorn su Unsplash

Da appassionato di caffè, ogni volta che viaggio fuori dai confini nazionali, è sempre un dramma. Specialmente quando mi reco negli Stati Uniti, i posti dove si trova un buon espresso si contano sulle dita di una mano.

Da un paio di anni ho deciso di portare nel mio zaino una caffettiera portatile, che mi permetta di bere un caffè della giusta lunghezza. Ho cercato su internet qualcosa che fosse semplice e, possibilmente, senza bisogno di alimentazione. Mi sono quindi imbattuto in Wacaco, un’azienda che produce una particolare caffettiera portatile.

Come funziona

L’idea dietro queste macchinette è di usare una pompetta che…


Foto di Scott Webb da Pexels

L’importanza della privacy

Ad oggi, soltanto due territori hanno impostato una seria legge sulla privacy degli utenti, e questi sono l’Unione Europea e la California, rispettivamente con la GDPR e la CCPA, due legislazioni molto simili per quanto riguarda la protezione dei dati digitali.

Non sempre (e soprattutto, non ovunque) i nostri dati sono così tutelati, e dovrebbe quindi essere una nostra preoccupazione proteggere ciò che abbiamo di più caro e personale, a partire dalla nostra cronologia di navigazione, e finendo con i nostri accessi e le nostre chat.

Un modo per iniziare a proteggerci è utilizzare una VPN, una rete privata virtuale…


Foto di slon_dot_pics da Pexels

Da diverso tempo, il roaming all’interno dell’Unione Europea è una realtà assodata, e in diversi paesi è possibile ottenere una quantità decente di traffico dati in 4G senza spendere troppo. Oggigiorno, la maggior parte della popolazione europea comunica basandosi su piattaforme come WhatsApp e Telegram, senza contare le mappe e altre app che possono tornare utili quando si viaggia.

Sfortunatamente, non tutto è semplice come all’interno dei confini comunitari, e mi è capitato di viaggiare in Paesi in cui non solo non parlavo la lingua locale, ma anche procurarmi una SIM si è rivelata una sfida non indifferente, sia per…


Picture from Vlad Chețan on Pexels

I have been programming on Android for a while, and the only part of Jetpack I could never fit in any project was the Navigation component. Implementing it in an existing architecture looked like a lot of work that could be postponed (shame on me!), and I’ve never had a project that it quite fit into.

The scenario

This time around, I wanted to get a first-hand experience with many of the technologies I never get to use in a new project, a small app that will guide me through my diet. …


Picture by Alexas Fotos on Pexels

Declarative UI is not a new concept in the development world, but it’s lately gaining momentum on mobile native SDK, probably after a few other cross-platform frameworks started exploring these approaches. Learning how to use them implies changing the way we imagined layouts, and overall graphical user interfaces, for the past years.

As SwiftUI approaches on iOS, Jetpack Compose is being built in the open for the Android ecosystem.

At the time of writing, Jetpack Compose is still being heavily developed, and many things change by the day.

I wanted to give Compose a try and use it to create…


Foto di Adrien Olichon da Pexels

Most Android developers out there dealt at least once in their career with Application.ActivityLifecycleCallbacks, but did you know the same thing can be done withFragments?

The reasons why

Let’s take a step back. Usually, you don’t need to be aware of the lifecycle of a Fragment from outside: for example, you might need to listen to multiple Fragment instances without changing the code for each of them.

Imagine you are working on an SDK, and you need to react to each Fragment being created. You could ask your users to register each of their classes, or you could create a base class that…


Photo by Clément H on Unsplash

As Android Engineers, we are well aware of Context, its duties and its limitations, but there is often no reason to use a subclass to fetch resources. Apart from themes (which we know heavily depend on what Context they receive when we want to style something), it’s usually safe to use the superclass. For certain, I wouldn’t have ever thought that system light or dark mode could actually affect a drawable. But let’s take a step back.

The bug

Let’s suppose we have 2 versions of the same icon, one for light mode painted with yellow color, and one for dark mode…

Roberto Orgiu

Android developer and GDE for Android

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store