| Vincenzo Tirelli

 

Una delle funzionalità chiave di un framework di sviluppo è la possibilità di gestire la persistenza delle informazioni di un’applicazione. Android offre nativamente diverse modalità di accesso alla persistenza dei dati:

  • Shared Preferences: per la persistenza dei parametri di configurazione dell’applicazione (lingua, indirizzi di collegamento etc.);
  • Internal Storage: per il salvataggio dei dati nella memoria del device dedicata alla sola applicazione. Il salvataggio avviene mediante scrittura in file;
  • External Storage: per il salvataggio dei dati nella memoria del device alle memorie ad accesso pubblico. Anche in questo caso, il salvataggio avviene mediante scrittura in file;
  • Network Connection: per salvare i dati mediante connessione ad internet;
  • Database SQLlite: permette di salvare dati strutturati in un database SQLite private.

 

Tra le modalità sopra indicate ci soffermeremo in modo particolare sull’ultima in quanto più versatile rispetto alle altre e nel contempo permette allo sviluppatore di evitare problematiche legate all’efficienza ed al recupero dei dati.

 

Android, a differenza di quanto si può dedurre considerando il linguaggio di origine, prevede l’accesso ai dati mediante uno strato software specifico per l’RDBMS nativo del sistema operativo, e cioè SQL Lite. Infatti, anche se supportate dal linguaggio, i driver JDBC non rispettano le specifiche di leggerezza e velocità richieste da software per dispositivi mobili.

 

In aggiunta a quanto detto dobbiamo considerare che il motore database di SQl Lite è specificamente sviluppato ed ottimizzato per l’esecuzione su dispositivi mobili. Non a caso SQLite è più diffuso di quanto ci si aspetterebbe, ed è utilizzato in moltissimi applicativi e device che utilizziamo quotidianamente, come l’iPhone della Apple, Mozilla Firefox, negli smartphone Symbian, in Skype, in diversi applicativi PHP o Adobe AIR, e in molti altri progetti.

 

Bisogna sottolineare che l’accesso diretto ai dati memorizzati è consentito solo all’applicazione che ne fa utilizzo, pertanto, nella forma di accesso diretto, non è contemplata nessuna forma di condivisione delle informazione.

 

Per superare tale limite, Android prevede l’utilizzo dei Content Providers. I Content Providers offrono delle interfacce generiche per qualsiasi sorgente dati, disaccoppiando il livello di memorizzazione/accesso ai dati da quello dell’applicazione e sono condivisi a livello di sistema operativo. La piattaforma prevede da un lato l’utilizzo di content provider standard, come quello per l’accesso alla rubrica del dispositivo, e dall’altra la definizione di content provider personalizzati.

 

Affidando la gestione del database ad un content provider personalizzato si ha la possibilità di condividere le informazioni gestite dalla propria applicazione con tutte le altre. Ciò che rende ancora più interessante questo tipo di condivisione è la possibilità di accesso solo a determinate informazioni, creando così un vera e propria interfaccia di comunicazione da e verso l’applicazione.

 



Prenota una consulenza

Esponi le tue esigenze al nostro reparto tecnico
chiama al +39 0824 21080
e prenota un appuntamento telefonico o videoconferenza.