{"id":12349,"date":"2017-03-23T11:31:22","date_gmt":"2017-03-23T10:31:22","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=12349"},"modified":"2017-03-23T11:31:22","modified_gmt":"2017-03-23T10:31:22","slug":"storebox-libreria-per-le-sharedpreferences-in-android","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/storebox-libreria-per-le-sharedpreferences-in-android\/","title":{"rendered":"StoreBox: libreria per le SharedPreferences in Android"},"content":{"rendered":"<p>Nella <strong>programmazione Android<\/strong>, le <a href=\"https:\/\/developer.android.com\/reference\/android\/content\/SharedPreferences.html\" target=\"_blank\">SharedPreferences <\/a>permettono di salvare nello spazio disco dedicato all&#8217;app singoli dati riconoscibili da una chiave assegnatagli. Sono l&#8217;ideale per informazioni di piccole dimensioni come, ad esempio, una coppia di credenziali username e password o una data che ricorda l&#8217;ultima esecuzione di una determinata funzionalit\u00e0: per\u00a0dati di questo genere, creare un file o, peggio ancora, predisporre un database Sqlite sarebbe davvero uno spreco. Per agevolare l&#8217;utilizzo delle SharedPreferences &#8211; non troppo complicato in s\u00e8, a dire il vero &#8211; sono nate pi\u00f9 librerie tra cui quella che trattiamo oggi: <a href=\"https:\/\/github.com\/martino2k6\/StoreBox\" target=\"_blank\">StoreBox<\/a>.<\/p>\n<p>La si pu\u00f2 <a href=\"https:\/\/github.com\/martino2k6\/StoreBox#adding-to-a-project\" target=\"_blank\">includere in un progetto<\/a> in vari modi: tramite la seguente direttiva Gradle<\/p>\n<pre class=\"lang:java decode:true\">compile 'net.orange-box.storebox:storebox-lib:1.4.0'<\/pre>\n<p>o, in alternativa, come archivio Jar o dipendenza per Maven.<\/p>\n<p>StoreBox basa il suo funzionamento sulle <em>annotation<\/em>. Richiede infatti, per prima cosa, la definizione di un&#8217;interfaccia che includa i metodi di salvataggio:<\/p>\n<pre class=\"lang:java decode:true \">public interface MyPreferences {\r\n\r\n    @KeyByString(\"key_username\")\r\n    String getUsername();\r\n\r\n    @KeyByString(\"key_date_of_birth\")\r\n    void setDateOfBirth(String value);\r\n}\r\n<\/pre>\n<p>e, solo successivamente, pu\u00f2 essere utilizzata tramite un oggetto creato con il metodo statico <em>create<\/em> della classe StoreBox:<\/p>\n<pre class=\"lang:java decode:true \">MyPreferences preferences = StoreBox.create(context, MyPreferences.class);\r\nString username = preferences.getUsername();\r\npreferences.setDateOfBirth(\"30\/09\/2004\");<\/pre>\n<p>Oltre all&#8217;utilizzo base, la libreria permette, tra l&#8217;altro, di salvare\u00a0tipi di dato personalizzati, definire listener e richiedere determinate modalit\u00e0 di salvataggio.<\/p>\n<p>Se sviluppate app Android e trovate noioso il classico approccio alle\u00a0SharedPreferences, provate StoreBox e fateci sapere come vi sembra!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nella programmazione Android, le SharedPreferences permettono di salvare nello spazio disco dedicato all&#8217;app singoli dati riconoscibili da&#8230;<\/p>\n","protected":false},"author":561,"featured_media":12899,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1682,481],"tags":[1278,1526,917,1750,1901],"class_list":["post-12349","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android","category-risorse-utili","tag-android","tag-java","tag-mobile-developers","tag-sharedpreferences","tag-storebox"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12349","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/users\/561"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=12349"}],"version-history":[{"count":5,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12349\/revisions"}],"predecessor-version":[{"id":12900,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12349\/revisions\/12900"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media\/12899"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=12349"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=12349"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=12349"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}