{"id":6560,"date":"2011-04-12T10:46:39","date_gmt":"2011-04-12T08:46:39","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=6560"},"modified":"2011-04-12T22:26:35","modified_gmt":"2011-04-12T20:26:35","slug":"t092-gestire-le-preferenze-delle-nostre-applicazioni-iphone-e-ipad-parte-1","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/t092-gestire-le-preferenze-delle-nostre-applicazioni-iphone-e-ipad-parte-1\/","title":{"rendered":"T#092 &#8211; Gestire le Preferenze delle nostre Applicazioni iPhone e iPad (Parte 1)"},"content":{"rendered":"<p>Ciao a tutti, sono Gabriele e in questa serie di articoli vi spiegher\u00f2 come aggiungere e gestire le impostazioni nelle vostre Applicazioni iPhone e iPad tramite l&#8217;app nativa &#8220;Impostazioni&#8221;, presente in ogni dispositivo mobile Apple. Quando sviluppiamo un&#8217;applicazione per l&#8217;iPhone o iPad e vogliamo dare la possibilit\u00e0 di far scegliere alcune impostazioni ai nostri utenti, possiamo in realt\u00e0 seguire due strade, ognuna con i suoi pregi e difetti, vediamo insieme quali sono, poi ci concentreremo sulla seconda opzione.<br \/>\n<!--more--><\/p>\n<h4>Come gestire le preferenze nelle applicazioni iPhone e iPad?<\/h4>\n<p>Come anticipato poco fa esistono due tecniche differenti:<\/p>\n<ol>\n<li>Prima soluzione: realizziamo un&#8217;apposita view all&#8217;interno dell&#8217;applicazione stessa, molto utile quando non vogliamo far uscire l&#8217;utente dalla nostra app (molto comodo, ad esempio, quando si crea un gioco). In questo caso ci dovremo preoccupare di sviluppare l&#8217;intera view interna alla nostra app e il relativo controller per ogni device supportato. L&#8217;applicazione, in questo modo, risulter\u00e0 un tantino pi\u00f9 pesante in termini di pacchetto da scaricare e di RAM occupata durante l&#8217;uso e, ovviamente, dovremmo farla interagire perfettamente con il resto dell&#8217;applicazione.<\/li>\n<li>Seconda soluzione: ci appoggiamo all&#8217;app nativa &#8220;Impostazioni&#8221;, opzione che potrebbe risultare scomoda quando occorre modificare le impostazioni di continuo (ad esempio la calibrazione dell&#8217;accelerometro in un videogioco). Al contrario, risulta un&#8217;ottima scelta le per memorizzare dati come gli account o impostazioni poco variabili nel tempo. Le dimensioni della nostra app, e di conseguenza il download della stessa, non si appesantisce pi\u00f9 di tanto (vedremo che per utilizzare alcune impostazioni di base occorrer\u00e0 aggiungere un solo file) e non ce ne dovremo inoltre preoccupare all&#8217;interno del flusso dell&#8217;app principale, se non per recuperare i valori impostati. Infine, ultima considerazione ma non meno importante, non ci sar\u00e0 ovviamente bisogno di adattare la view alla grafica dell&#8217;iPad o dell&#8217;iPhone 4 anche quando vogliamo creare un&#8217;app universale.<\/li>\n<\/ol>\n<h4>Creiamo un nuovo progetto XCode<\/h4>\n<p>Fatta questa piccola premessa partiamo con il nostro tutorial. Apriamo XCode e creiamo un nuovo progetto per iPhone di tipo &#8220;view-based&#8221; (scegliamolo dall&#8217;elenco dei template disponibili), diamo quindi un nome e procediamo (il mio l&#8217;ho chiamato per comodit\u00e0 &#8220;preferences_part1&#8221;).<\/p>\n<p>Aggiungiamo quindi il file delle impostazioni cliccando su &#8220;Add -> New File&#8221; e nel gruppo iOs andiamo a cercare &#8220;Resource&#8221; quindi &#8220;Settings Bundle&#8221;.<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-01.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-01.jpg\" alt=\"t092-gestire-preferenze-applicazioni-iphone-ipad-01\" title=\"t092-gestire-preferenze-applicazioni-iphone-ipad-01\" width=\"550\" height=\"478\" class=\"aligncenter size-full wp-image-6571\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-01.jpg 550w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-01-300x260.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-01-150x130.jpg 150w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>Come nome per il file ho lasciato quello di default, &#8220;Settings.bundle&#8221;.<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-02.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-02.jpg\" alt=\"t092-gestire-preferenze-applicazioni-iphone-ipad-02\" title=\"t092-gestire-preferenze-applicazioni-iphone-ipad-02\" width=\"550\" height=\"405\" class=\"aligncenter size-full wp-image-6572\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-02.jpg 550w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-02-300x220.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-02-150x110.jpg 150w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>Il bundle appena creato contiene due files: &#8220;Root.plist&#8221; e &#8220;Root.strings&#8221;, tralasciamo quest&#8217;ultimo e concentriamoci su &#8220;Root.plist&#8221;. Apriamolo e noteremo che questo \u00e8 gi\u00e0 popolato:<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-03.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-03.jpg\" alt=\"t092-gestire-preferenze-applicazioni-iphone-ipad-03\" title=\"t092-gestire-preferenze-applicazioni-iphone-ipad-03\" width=\"550\" height=\"684\" class=\"aligncenter size-full wp-image-6573\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-03.jpg 550w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-03-241x300.jpg 241w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-03-120x150.jpg 120w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>Come si pu\u00f2 notare, sono presenti una serie di &#8220;Item&#8221; che contengono diversi tipi di chiavi, vediamo brevemente quali sono i tipi di controlli che possiamo utilizzare:<\/p>\n<table>\n<tr>\n<td><strong>Tipo<\/strong><\/td>\n<td><strong>Identificativo<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Testo<\/td>\n<td>PSTextFieldSpecifier<\/td>\n<\/tr>\n<tr>\n<td>Titolo<\/td>\n<td>PSTitleValueSpecifier<\/td>\n<\/tr>\n<tr>\n<td>Switch On\/Off<\/td>\n<td>PSToggleSwitchSpecifier<\/td>\n<\/tr>\n<tr>\n<td>Slider<\/td>\n<td>PSSliderSpecifier<\/td>\n<\/tr>\n<tr>\n<td>Scelta Multipla<\/td>\n<td>PSMultiValueSpecifier<\/td>\n<\/tr>\n<tr>\n<td>Gruppo<\/td>\n<td>PSGroupSpecifier<\/td>\n<\/tr>\n<tr>\n<td>Pannello secondario<\/td>\n<td>PSChildPaneSpecifier<\/td>\n<\/tr>\n<\/table>\n<p>Vediamo ora come si utilizzano eliminando nel nostro &#8220;Root.plist&#8221; i quattro Item (e solo quelli), ottenendo una situazione simile alla seguente:<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-04.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-04.jpg\" alt=\"t092-gestire-preferenze-applicazioni-iphone-ipad-04\" title=\"t092-gestire-preferenze-applicazioni-iphone-ipad-04\" width=\"550\" height=\"277\" class=\"aligncenter size-full wp-image-6574\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-04.jpg 550w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-04-300x151.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-04-150x75.jpg 150w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><br \/>\n<\/center><\/p>\n<h4>Popoliamo le impostazioni<\/h4>\n<p>Aggiungiamo un Item in &#8220;PreferenceSpecifiers&#8221; selezionando questa riga e cliccando sul pulsante oltre la destra della tabella, modifichiamo il tipo dell&#8217; &#8220;Item 0&#8221; appena aggiunto in &#8220;Dictionary&#8221; (sostituendolo al &#8220;String&#8221; di default).<\/p>\n<p>Selezioniamo &#8220;Item 0&#8221; e clicchiamo sul pulsante alla destra della tabella per inserire la prima chiave. Scriviamo quindi in &#8220;Key&#8221; (la colonna di sinistra) la parola &#8220;Type&#8221; e in &#8220;Value&#8221; (la colonna di destra) &#8220;PSGroupSpecifier&#8221;.<\/p>\n<p>Selezionando ora la riga appena modificata e clicchiamo sul &#8220;+&#8221; a fine tabella, nella nuova riga scriviamo in &#8220;Key&#8221; &#8220;Title&#8221; e in &#8220;Value&#8221; &#8220;Gruppo 1&#8221;.<\/p>\n<p>Abbiamo appena aggiunto un gruppo nel pannello delle Impostazioni!<\/p>\n<p>Eseguiamo il &#8220;Build and Run&#8221; e nel simulatore usciamo dall&#8217;applicazione (ancora vuota) ed entriamo nelle Impostazioni (nel mio caso &#8220;Settings&#8221;), come vedete c&#8217;\u00e8 una nuova riga &#8220;preferences_part1&#8221; nella tabella. Aprendola troveremo proprio &#8220;Gruppo 1&#8221;:).<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-05-06.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-05-06.jpg\" alt=\"t092-gestire-preferenze-applicazioni-iphone-ipad-05-06\" title=\"t092-gestire-preferenze-applicazioni-iphone-ipad-05-06\" width=\"550\" height=\"481\" class=\"aligncenter size-full wp-image-6575\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-05-06.jpg 550w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-05-06-300x262.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-05-06-150x131.jpg 150w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>Torniamo in Xcode e continuiamo a popolare il file &#8220;Root.plist&#8221; fino ad ottenere una situazione simile alla seguente:<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-07.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-07.jpg\" alt=\"t092-gestire-preferenze-applicazioni-iphone-ipad-07\" title=\"t092-gestire-preferenze-applicazioni-iphone-ipad-07\" width=\"550\" height=\"696\" class=\"aligncenter size-full wp-image-6576\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-07.jpg 550w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-07-237x300.jpg 237w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-07-118x150.jpg 118w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><br \/>\n<\/center><\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-08.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-08.jpg\" alt=\"t092-gestire-preferenze-applicazioni-iphone-ipad-08\" title=\"t092-gestire-preferenze-applicazioni-iphone-ipad-08\" width=\"550\" height=\"696\" class=\"aligncenter size-full wp-image-6577\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-08.jpg 550w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-08-237x300.jpg 237w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-08-118x150.jpg 118w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><br \/>\n<\/center><\/p>\n<p><strong>Rapida spiegazione del contenuto:<\/strong><\/p>\n<ul>\n<li>nei campi &#8220;Type&#8221; di ogni Item si imposta un tipo tra quelli elencati nella tabella <\/li>\n<li>il campo &#8220;Title&#8221; contiene la stringa da far visualizzare nella sinistra del campo di tipo &#8220;Type&#8221; appena inserito<\/li>\n<li>il campo &#8220;Key&#8221; contiene una chiave che utilizzeremo nel programma per ottenere il valore impostato utilizzando il paradigma KVC.<\/li>\n<\/ul>\n<p>Questi sono i campi principali, ora un piccolo compito per voi a casa: provate a cambiare in un campo &#8220;PSTextFieldSpecifier&#8221; il booleano &#8220;IsSecure&#8221;, o ad inserire tra le &#8220;KeyboardType&#8221; uno tra questi valori &#8220;NumbersAndPunctuation&#8221;, &#8220;NumberPad&#8221;, &#8220;URL&#8221;, &#8220;EmailAddress&#8221; e notate come vi cambia il campo di testo nelle impostazioni \ud83d\ude09 .<\/p>\n<h4>Interfaccia utente delle impostazioni e un po&#8217; di codice<\/h4>\n<p>Passiamo quindi a realizzare l&#8217;interfaccia grafica dell&#8217;applicazione utilizzando Interface Builder e XCode.<\/p>\n<p>Inidiamo a dichiarare gli oggetti che useremo. Il codice da inserire nel file header del ViewController \u00e8 il seguente:<\/p>\n<pre lang=\"objc\" line=\"1\" escaped=\"true\">\n@interface preferences_part1ViewController : UIViewController {\n\tIBOutlet UILabel* nome;\n\tIBOutlet UILabel* si_no;\n\tIBOutlet UILabel* voto;\n\tIBOutlet UILabel* interessato;\n\tIBOutlet UIButton* refresh;\n}\n<\/pre>\n<p>aggiungiamo inoltre un IBAction che associeremo al pulsante e ci permetter\u00e0 di prelevare i dati delle impostazioni:<\/p>\n<pre lang=\"objc\" line=\"1\" escaped=\"true\">\n-(IBAction) refresh;\n<\/pre>\n<p>Apriamo ora Interface Builder e trasciniamo semplicemente gli oggetti all&#8217;interno della view. Dopo una sistemata generale dovrebbe presentarsi pi\u00f9 o meno in questo modo:<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-09.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-09.jpg\" alt=\"t092-gestire-preferenze-applicazioni-iphone-ipad-09\" title=\"t092-gestire-preferenze-applicazioni-iphone-ipad-09\" width=\"360\" height=\"542\" class=\"aligncenter size-full wp-image-6578\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-09.jpg 360w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-09-199x300.jpg 199w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-09-99x150.jpg 99w\" sizes=\"auto, (max-width: 360px) 100vw, 360px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>Colleghiamo quindi gli outlet del controller agli oggetti della view appena disegnati:<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-10.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-10.jpg\" alt=\"t092-gestire-preferenze-applicazioni-iphone-ipad-10\" title=\"t092-gestire-preferenze-applicazioni-iphone-ipad-10\" width=\"301\" height=\"699\" class=\"aligncenter size-full wp-image-6579\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-10.jpg 301w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-10-129x300.jpg 129w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-10-64x150.jpg 64w\" sizes=\"auto, (max-width: 301px) 100vw, 301px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>Aggiungiamo infine il codice necessario per leggere i valori all&#8217;interno del metodo &#8220;refresh&#8221;:<\/p>\n<pre lang=\"objc\" line=\"1\" escaped=\"true\">\n-(IBAction) refresh\n{\n\tNSUserDefaults* userDef = [NSUserDefaults standardUserDefaults];\n\t[nome setText:[userDef stringForKey:@\"yourName\"]];\n\t[si_no setText:[userDef stringForKey:@\"yesOrNo\"]];\t\n\t[voto setText:[userDef stringForKey:@\"theSlider\"]];\n\t[interessato setText:[userDef stringForKey:@\"votoMultivalue\"]];\t\n}\n<\/pre>\n<p>Come avrete notato, alla pressione del pulsante otteniamo, tramite un metodo di classe, un riferimento alla classe <em>NSUserDefaults<\/em>, che di fatto \u00e8 la classe &#8220;ponte&#8221; tra la nostra app e quella delle Impostazioni.<\/p>\n<p>Il passo successivo \u00e8 valorizzare le label della nostra view utilizzando i valori ottenuti dalle chiavi indicate, ovvero quelle inserite nel file &#8220;Root.plist&#8221; alla voce &#8220;Key&#8221; dei vari Item!<\/p>\n<p>Compiliamo ed eseguiamo, l&#8217;applicazione nel simulatore ci mostra le label non valorizzate, per leggerle correttamente usciamo dall&#8217;applicazione, andiamo a modificare le impostazioni e torniamo nell&#8217;applicazione, clicchiamo quinsi sul tasto &#8220;refresh&#8221; ed ecco i valori inseriti.<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-11.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-11.jpg\" alt=\"t092-gestire-preferenze-applicazioni-iphone-ipad-11\" title=\"t092-gestire-preferenze-applicazioni-iphone-ipad-11\" width=\"396\" height=\"744\" class=\"aligncenter size-full wp-image-6580\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-11.jpg 396w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-11-159x300.jpg 159w\" sizes=\"auto, (max-width: 396px) 100vw, 396px\" \/><\/a><br \/>\n<\/center><\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-12.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-12.jpg\" alt=\"t092-gestire-preferenze-applicazioni-iphone-ipad-12\" title=\"t092-gestire-preferenze-applicazioni-iphone-ipad-12\" width=\"396\" height=\"744\" class=\"aligncenter size-full wp-image-6570\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-12.jpg 396w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/t092-gestire-preferenze-applicazioni-iphone-ipad-12-159x300.jpg 159w\" sizes=\"auto, (max-width: 396px) 100vw, 396px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>Per questa prima parte \u00e8 tutto, prossimamente vedremo come ampliare e migliorare le impostazioni della nostra applicazione \ud83d\ude42<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/T092\u2013Gestire-Preferenze-Applicazioni-iPhone-iPad.zip\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/05\/download_icon.png\" alt=\"\" width=\"33\" height=\"40\" align=\"middle\" \/><\/a> Se avete problemi con il tutorial, <a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/04\/T092\u2013Gestire-Preferenze-Applicazioni-iPhone-iPad.zip\" target=\"_blank\">questo \u00e8 il nostro file di progetto.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ciao a tutti, sono Gabriele e in questa serie di articoli vi spiegher\u00f2 come aggiungere e gestire&#8230;<\/p>\n","protected":false},"author":543,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[683,682,679,681,680,678,242],"class_list":["post-6560","post","type-post","status-publish","format-standard","hentry","category-tutorial-pratici","tag-esempi-xcode","tag-gabriele-pongelli","tag-gestire-impostazioni-applicazioni-iphone","tag-gestire-preferenze-app-ipad","tag-impostazioni-app-ipad","tag-preferenze-applicazioni-iphone","tag-tutorial-xcode"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/6560","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\/543"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=6560"}],"version-history":[{"count":9,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/6560\/revisions"}],"predecessor-version":[{"id":6600,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/6560\/revisions\/6600"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=6560"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=6560"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=6560"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}