Sviluppo di App e Web App (PWA), API e Plug-in

Accanto alle soluzioni software complete e chiavi in mano, esistono molti altri indispensabili servizi informatici e di web developing di cui si viene a conoscenza solo nel momento in cui diventa necessario personalizzare secondo le proprie esigenze... le soluzioni software complete e chiavi in mano!

Qualche esempio concreto:

  • Ho un sito realizzato in WordPress, ma vorrei aggiungere un'Area Riservata realizzata secondo mie precise esigenze: è possibile?
    Sì, è possibile.
  • Il mio gestionale aziendale è in grado di gestire quasi tutti i documenti di cui ho bisogno, ma non può produrre questo documento specifico: potreste risolvermi questo problema?
    Sì, possiamo.
  • Per il corretto funzionamento del mio sito dovrei estrapolare dei dati da altri siti e gestionali, si può fare qualcosa?
    Sì, si può fare.
  • Il mio sito internet funziona a meraviglia, ma avrei anche bisogno di una App collegata al sito, c'è qualche soluzione?
    Sì, c'è più di una soluzione.
  • Mi hanno detto che è impossibile sviluppare questa personalizzazione, posso avere anche il vostro parere?
    Sì, possiamo controllare noi.

Questa lista di dubbi e richieste potrebbe continuare ancora a lungo: cerchiamo di mettere un po' d'ordine, raggruppando le esigenze secondo le principali categorie.

Cos'è una App? E soprattutto: ti serve davvero?

Cos'è un sito internet, ormai lo sanno tutti. Verrebbe quasi da rispondere: un sito internet è un sito internet.

A volte sembra che una app non sia molto diversa da un sito internet: la consultiamo dal nostro cellulare, contiene testi e immagini, premiamo link e bottoni, scarichiamo documenti o prenotiamo una camera d'albergo... tutto sommato, operazioni che possiamo effettuare anche da un sito internet.

Per chiarire le reali differenze tra un sito internet e una app, probabilmente è utile seguire un percorso che unisce queste due realtà informatiche; i passaggi di questo percorso sono: sito internet, Web App, Progressive Web App (PWA), App.

E magari, seguendo questo percorso potresti anche scoprire che—forse—non è una app ciò che stavi cercando.

Cos'è una Web App, una Progressive Web App e—infine—un'App

Cos'è una Web App?
In buona sostanza, una Web App è un sito internet ottimizzato per la consultazione da cellulare e con funzionalità pratiche che possono ricordare i servizi offerti da un'app. Più nello specifico, oltre ad essere responsive—e quindi consultabile in modo comodo e intuitivo da mobile—una Web App ha anche un accesso limitato all'hardware del telefono per poter offrire alcuni servizi che un normale sito internet non offre.
Un esempio? La geolocalizzazione, ovvero la capacità della Web App di sapere dove ti trovi in un preciso istante, e di conseguenza la possibilità di fornirti servizi il più possibile pertinenti: se cerchi un ristorante, una Web App potrà mostrarti i risultati ordinati in base alla vicinanza.
Un'ultima osservazione: la distinzione tra sito internet e Web App è talvolta solo concettuale, e distingue i normali siti responsive (ad esempio, il sito di un ristorante) dai siti che offrono anche servizi all'utente (ad esempio, la possibilità di prenotare un tavolo al ristorante).

Cos'è una Progressive Web App (PWA)?
Termine coniato da Google, la Web App Progressiva—dove progressiva sta per evoluta ed espandibile—è una Web App con funzionalità ancora più spinte nella direzione delle app e dei servizi che le app possono offrire.
Accanto ad alcune funzionalità che sono solitamente appannaggio esclusivo delle app (ad esempio, le notifiche push), le PWA dispongono di feature che le rendono simili a vere e proprie applicazioni, le principali delle quali sono la possibilità di consultarle offline (tramite l'installazione di un Service Worker Javascript) e la possibilità di installarle con rapidità sui principali browser e cellulari (tramite la dichiarazione di un file manifest in JSON).
Malgrado siano più complesse da sviluppare—se paragonate ad un semplice sito internet—queste applicazioni ibride raccolgono i vantaggi di entrambe le strutture informatiche a cui si ispirano: come i siti internet, sono utilizzabili da qualsiasi utente e da qualsiasi piattaforma, e inoltre sono sviluppate utilizzando un linguaggio di programmazione semplice e rodato, con conseguente risparmio di tempo e di denaro nello sviluppo; come le app, offrono servizi di facile consultazione, possono utilizzare le risorse hardware del tuo telefono come il GPS e la fotocamera, fidelizzano i clienti grazie alle notifiche push e possono essere consultate anche in assenza di connessione internet.

Cos'è una App?
Le app vere e proprie—più precisamente le app native—sono dei software sviluppati per il telefono cellulare che consentono di accedere a tutte le risorse a disposizione dello strumento e di sfruttare appieno le potenzialità del mezzo: applicazioni di grafica e fotoritocco (come Instagram), applicazioni di tracciamento GPS e calcolo dei parametri biometrici, applicazioni di gestione dati riservati e mobilitazione di denaro (come i più comuni Home Banking), senza dimenticare i software di servizio (ad esempio Gmail per la posta elettronica) e il mondo ludico dei videogiochi.
Le potenzialità delle app sono chiaramente enormi—l'unico limite alle infinite applicazioni è dato dall'oggetto fisico, ovvero il cellulare—ma da questi vantaggi conseguono anche alcune problematiche.
Innanzitutto le app non sono universali, ma vanno programmate per ogni differente sistema operativo—principalmente Android e iOS—in un linguaggio di programmazione complesso, con il risultato che spesso le app richiedono importanti tempi di sviluppo, sono costose, e soprattutto il costo va raddoppiato nel caso in cui si voglia sviluppare un'app per due differenti sistemi operativi.
Inoltre le app vanno installate sul disposivo, e da quel momento hanno accesso a tutti i nostri dati, tra cui solitamente Rubrica, Galleria fotografica e Posta elettronica: non tutti gli utenti gradiscono questo approccio ingombrante e invadente.
Infine: che senso ha sviluppare una costosa app nativa, quando i servizi che quest'app deve erogare sono elementari e potrebbero essere assolti in tutta tranquillità da una Web App o da una PWA?
A proposito delle PWA, paragonate alle app native, Wikipedia dice: "Diverse aziende hanno riscontrato notevoli miglioramenti in diversi indicatori chiave di prestazione, come un aumento nel tempo speso nel sito o nelle conversioni dei nuovi utenti".

Stai pensando di sviluppare un'app per il tuo business?
Scrivici le tue esigenze: potremmo analizzare insieme le tue necessità e trovare la soluzione migliore per realizzare il tuo progetto.
E—magari—scoprire un'inaspettata risposta alla domanda iniziale: Cos'è una App? E soprattutto: ti serve davvero?

Importazione dati e dialogo tra sistemi informatici: le API

Spesso risulta molto utile poter accedere ad informazioni presenti su altri sistemi informatici—siano questi gestionali aziendali, siti internet o database—per poterle utilizzare in altri contesti.
Un esempio potrebbe essere il gestionale aziendale di un impianto sportivo che registra le prenotazioni di un campo da tennis: sarebbe vantaggioso mostrare su un sito internet l'elenco dei giorni in cui il campo da tennis è libero, ovviamente senza dover reinserire i dati delle prenotazioni all'interno delle pagine internet.
Più in generale: è possibile condividere una parte di informazioni tra due sistemi diversi e non connessi tra loro?

Quest'operazione—e molte altre simili—sono ovviamente possibili e appartengono all'ambito dell'importazione e dell'esportazione dei dati tra sistemi informatici (data import e data export), ecco alcuni esempi:

  • importazione di dati semplice: caricare automaticamente dei nominativi da un foglio Excel all'interno del tuo gestionale
  • importazione di dati complessa: caricare di tutti i negozi di scarpe da Google Maps all'interno del tuo sito internet
  • esportazione di dati semplice: salvare tutta la tua rubrica telefonica in un foglio Excel
  • esportazione di dati complessa: impaginare una rivista in PDF a partire dagli articoli pubblicati sul tuo blog

Senza entrare nei dettagli tecnici, quando i dati sono condivisi in formati standard—i principali sono XML, CSS e JSON—e sono manipolati seguendo precise procedure informatiche, si può parlare di API.
L'acronimo API sta per Application programming interface, ovvero: strumenti semplici per accedere a dati complessi e utilizzarli per i nostri scopi.

Se hai l'esigenza di condividere i tuoi dati tra vari sistemi informatici—siano questi il tuo gestionale aziendale, il tuo sito internet, oppure siti web e gestionali di terze parti—contatta Studio Bluelettrico: potremmo avere la soluzione che fa per te.

Se non esiste, lo inventiamo noi: le Plug-in

Capita che, in siti internet abbastanza sofisticati oppure all'interno di gestionali aziendali, si abbia la necessità di particolari funzionalità non previste tra gli strumenti a nostra disposizione.
Per un sito internet, un esempio può essere la necessità di avere un form di contatto che svolga operazioni complesse, come ad esempio il salvataggio dei dati in un database; per un software gestionale si può immaginare la necessità di stampare delle etichette in un particolare formato personalizzato non previsto tra i formati standard.

Queste piccole personalizzazioni di un software già esistente—siano queste elementari oppure molto complesse—prendono il nome di Plug-in: il nome ricorda le prese elettriche, una similitudine per indicarci che, inserendo una spina all'interno di un macchinario già operativo, possiamo collegare un piccolo congegno aggiuntivo che andrà a svolgere nuovi compiti ogni volta che la macchina è in funzione.

Lo sviluppo di una plug-in ha senso—ovviamente—solo all'interno di una struttura informatica già funzionante, a supporto di tutte le altre funzionalità già disponibili all'interno della piattaforma. Questo legame a doppio filo con un software già esistente spesso rende le plug-in difficilmente riutilizzabili su altri sistemi, ma anche in questo caso esistono delle eccezioni: molti sviluppatori realizzano plug-in per WordPress—per citare l'esempio di una piattaforma largamente diffusa—e dalla vendita di questi strumenti ricavano anche un discreto guadagno economico.

Hai la necessità di personalizzare il tuo gestionale o il tuo sito internet con degli strumenti non ancora disponibili sul mercato?
Contatta Studio Bluelettrico: potremmo analizzare le tue esigenze, studiarne la fattibilità e collegare la spina di un gioiellino informatico nuovo di zecca!