Prima dell'avvento di internet e in particolare dei dispositivi quali smartphone e tablet, per applicazione o programma informatico si intendenva un software che veniva installato sul nostro pc di casa o aziendale. La disponibilità delle funzionalità offerte dall'applicativo era limitata eslusivamente all'utilizzatore del computer in cui il programma veniva installato. Quando ci si riferisce a questo genere di programmi si parla di applicazioni desktop o per meglio classificarle applicazioni locali.

Oggi giorno, però, avendo molti dispositivi differenti che usiamo sia nel privato che nella nostra professione, è nata l'esigenza di avere una determinata funzionalità e/o servizio disponibile su tutti i dispositivi senza la necessità di dover installare il programma nelle varie versioni su ogni disopsitivo. La soluzione è rappresentata dalle applicazioni web. Una applicazione web viene installata in un computer sempre accesso e connesso a internet (24 ore su 24 365 giorni l'anno) e raggiungibile mediante un indirizzo web (tipo http://www.nome.com). Ecco quindi che da un qualsiasi smartphone o tablet connesso a internet, semplicemente collegandosi all'indirizzo web che identifica l'applicativo, è possibile usufruire delle funzionalità da esso offerte.

Le applicazioni web possono essere anche per mobile dato che è possibile progettarle in modo tale che siano ottimizzate per essere visualizzate su schermi piccoli come dei telefoni Apple, Android o Windows. Non c'è bisogno di installare una app specifica sul mio telefonino per collegarsi all'applicazione web dato che è sufficente usare l'app del telefono che consente la navigazioni in internet, sempre presente su qualsiasi piattaforma (Apple, Android o Windows).

Meglio un'applicazione web o un'app da installare?

Quando ho scritto quanto sopra la scelta era quasi obbligata: un'applicazione web raggiungibile dal browser evitava di sviluppare e mantenere una app diversa per ogni sistema operativo. Resta vero in molti casi, ma oggi la risposta onesta è: dipende, e vale la pena deciderlo insieme prima di scrivere una riga di codice.

L'applicazione web conviene quando l'utente deve poterla usare subito, senza installare nulla e senza passare da uno store: è sufficiente un indirizzo, funziona su qualsiasi dispositivo, e quando aggiorno l'applicazione tutti hanno immediatamente la versione nuova. È la scelta giusta per gestionali, prenotazioni, portali di servizio e per tutto ciò che si usa saltuariamente o da postazioni diverse.

L'app da installare conviene quando servono cose che il browser non offre o offre male: notifiche push, funzionamento anche senza connessione, accesso pieno a fotocamera, GPS o sensori, e la presenza sugli store come canale di distribuzione e credibilità. In questi casi sviluppo con React Native, che permette di ottenere l'app per Android e per iOS da un'unica base di codice, senza dover mantenere due progetti separati: è il motivo per cui l'obiezione di un tempo, cioè il costo di una app per ogni piattaforma, oggi pesa molto meno.

Nella pratica la soluzione più frequente è mista: l'applicazione web contiene la logica e i dati, l'app installabile è la porta d'accesso per chi la usa tutti i giorni. Il mio compito è dirti quale delle tre strade ti serve davvero, non venderti la più costosa.

Cosa cambia oggi nello sviluppo, con l'intelligenza artificiale

Il modo di costruire queste applicazioni è cambiato più di quanto siano cambiate le applicazioni stesse. Oggi sviluppo orchestrando e supervisionando agenti di intelligenza artificiale specializzati: uno lavora sull'interfaccia, uno sulla logica applicativa, uno sui test, uno sulla revisione del codice altrui. Io definisco le specifiche, decido l'architettura, stabilisco cosa è accettabile e cosa no, e verifico ogni risultato prima che diventi parte del prodotto.

La differenza pratica sta nei tempi e in ciò che diventa sostenibile. Un prototipo funzionante si ottiene in giorni invece che in settimane, quindi puoi vedere e provare l'applicazione prima di aver deciso tutto — che è il modo migliore per accorgersi in tempo che serviva un'altra cosa. E attività che prima venivano sacrificate per ragioni di budget, come i test automatici o una revisione seria del codice, oggi rientrano nel lavoro ordinario.

Resta un punto sul quale non transigo: un agente scrive codice plausibile, non necessariamente codice corretto. Sbaglia la gestione dei casi limite, introduce problemi di sicurezza sottili, adotta soluzioni superate con grande sicurezza. Fra te e quel codice deve esserci un ingegnere informatico che lo legge, lo mette alla prova e se ne assume la responsabilità. È quello che faccio.

Piero Longhetto