{"id":7075,"date":"2011-06-15T10:51:03","date_gmt":"2011-06-15T08:51:03","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=7075"},"modified":"2011-06-16T13:49:38","modified_gmt":"2011-06-16T11:49:38","slug":"t096-facciamoci-lasciare-una-recensione-in-app-store-dalla-nostra-applicazione-con-appirater","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/t096-facciamoci-lasciare-una-recensione-in-app-store-dalla-nostra-applicazione-con-appirater\/","title":{"rendered":"T#096 &#8211; Facciamoci lasciare una recensione in App Store dalla nostra applicazione con Appirater"},"content":{"rendered":"<p>Il sistema di recensioni e votazioni dell&#8217;AppStore \u00e8 uno strumento molto utilizzato dagli utenti, ma molto spesso criticato dagli sviluppatori. Avrebbe bisogno, secondo me, di una seria rivisitazione, che permetta anche ai developer di interagire con gli utenti&#8230; ma questi sono alti discorsi!<br \/>\nVi sar\u00e0 spesso capitato di aprire un&#8217;applicazione e vedervi comparire un pop-up come questo, che vi invita a lasciare una recensione dell&#8217;applicazione:<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/06\/t096-appirater-farsi-lasciare-recensione-app-store-iphone-ipad.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/06\/t096-appirater-farsi-lasciare-recensione-app-store-iphone-ipad.jpg\" alt=\"t096-appirater-farsi-lasciare-recensione-app-store-iphone-ipad\" title=\"t096-appirater-farsi-lasciare-recensione-app-store-iphone-ipad\" width=\"550\" height=\"400\" class=\"aligncenter size-full wp-image-7094\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/06\/t096-appirater-farsi-lasciare-recensione-app-store-iphone-ipad.jpg 550w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/06\/t096-appirater-farsi-lasciare-recensione-app-store-iphone-ipad-300x218.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/06\/t096-appirater-farsi-lasciare-recensione-app-store-iphone-ipad-150x109.jpg 150w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><br \/>\n<\/center><!--more--><\/p>\n<p>Quello mostrato in figura pu\u00f2 sicuramente essere un buon modo per invogliare gli utenti a lasciare una recensione della nostra applicazione in AppStore, che spesso \u00e8 necessaria per poter sopravvivere alla grandissima competizione presente nello store.<\/p>\n<p>Per fare ci\u00f2 viene in nostro aiuto una classe semplice ma davvero potente: <strong>Appirater<\/strong>, che potete scaricare gratuitamente direttamente da <a href=\"http:\/\/arashpayan.com\/blog\/2009\/09\/07\/presenting-appirater\/\" target=\"_blank\">GitHub<\/a>. Vediamo come usarla ed integrarla durante lo sviluppo delle nostre applicazioni iPhone e iPad.<\/p>\n<h4>Utilizziamo Appirater<\/h4>\n<p>Utilizzare questa classe \u00e8 davvero semplicissimo. Iniziamo scaricando la classe Appirater e inserendola all&#8217;interno del nostro progetto XCode:<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/06\/Schermata-2011-06-13-a-21.46.13.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/06\/Schermata-2011-06-13-a-21.46.13.png\" alt=\"\" title=\"Schermata 2011-06-13 a 21.46.13\" width=\"323\" height=\"121\" class=\"aligncenter size-full wp-image-7077\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/06\/Schermata-2011-06-13-a-21.46.13.png 323w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/06\/Schermata-2011-06-13-a-21.46.13-300x112.png 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/06\/Schermata-2011-06-13-a-21.46.13-150x56.png 150w\" sizes=\"auto, (max-width: 323px) 100vw, 323px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>Aggiungiamo, inoltre, anche il framework &#8220;SystemConfiguration&#8221;, necessario per la corretta compilazione della classe:<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/06\/Schermata-2011-06-15-a-23.13.05.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/06\/Schermata-2011-06-15-a-23.13.05.png\" alt=\"\" title=\"Schermata 2011-06-15 a 23.13.05\" width=\"255\" height=\"89\" class=\"alignnone size-full wp-image-7113\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/06\/Schermata-2011-06-15-a-23.13.05.png 255w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/06\/Schermata-2011-06-15-a-23.13.05-150x52.png 150w\" sizes=\"auto, (max-width: 255px) 100vw, 255px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>A questo punto dobbiamo fare in modo che venga utilizzata, per esempio, all&#8217;avvio dell&#8217;applicazione, prima che l&#8217;utente possa eseguire qualsiasi altra interazione con la nostra app. Apriamo, quindi, il nostro file &#8220;AppDelegate&#8221;, e modifichiamolo nel seguente modo:<\/p>\n<pre lang=\"objc\" line=\"1\" escaped=\"true\">\r\n#import \"Appirater.h\"\r\n\r\n@implementation Mia_ApplicazioneAppDelegate\r\n\r\n- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {\r\n    \/\/ definizioni e inizializzazioni varie\r\n    \/\/ ...\r\n    \r\n    \/\/ avviamo il metodo della classe Appirater\r\n    [Appirater appLaunched];\r\n    \r\n    return YES;\r\n}\r\n\r\n@end\r\n<\/pre>\n<p>Come vedete abbiamo aggiunto solo 2 istruzioni!! Alla riga 1 abbiamo importato la classe &#8220;Appirater.h&#8221;, mentre nel metodo &#8220;application: didFinishLaunchingWithOptions:&#8221; abbiamo richiamato il metodo &#8220;appLaunched&#8221; della classe Appirater. (non c&#8217;\u00e8 bisogno di definire nessun elemento, la classe prevede un metodo statico che ci semplifica ulteriormente il lavoro).<\/p>\n<p>Sar\u00e0 la classe stessa che si occuper\u00e0 di tutto: visualizzare il messaggio, controllare che sia passato un certo tempo dal precedente avviso e salvare la scelta dell&#8217;utente.<\/p>\n<p>Per completare la configurazione apriamo il file &#8220;Appirater.h&#8221; e cambiamo il valore di &#8220;APPIRATER_APP_ID&#8221; con l&#8217;ID della nostra applicazione. Eccovi un esempio:<\/p>\n<pre lang=\"objc\" line=\"1\" escaped=\"true\">\r\n\/*\r\n Place your Apple generated software id here.\r\n *\/\r\n#define APPIRATER_APP_ID\t\t\t\t409332404 \/\/Orologi di Classe PLUS\r\n<\/pre>\n<p>Abbiamo gi\u00e0 concluso! Davvero velocissimo vero?<\/p>\n<h4>Modifichiamone il comportamento<\/h4>\n<p>Possiamo modificare alcuni aspetti del comportamento di questa classe. Per default l&#8217;avviso viene visualizzato se l&#8217;utente utilizza la nostra applicazione per 15 volte negli ultimi 30 giorni. Se queste impostazioni ci sembrano non corrette per la nostra applicazioni, ci baster\u00e0 variarne il valore, sempre all&#8217;inteno di &#8220;Appirater.h&#8221;. Le due variabili in questioni sono:<\/p>\n<pre lang=\"objc\" line=\"1\" escaped=\"true\">\r\n#define APPIRATER_DAYS_UNTIL_PROMPT\t30\t\t\/\/ double\r\n\r\n#define APPIRATER_USES_UNTIL_PROMPT\t\t15\t\t\/\/ integer\r\n<\/pre>\n<p>Sempre nello stesso file potrete inoltre cambiare il messaggio che appare, ad esempio traducendolo in italiano (oppure inserendo la possibilit\u00e0 di localizzarlo in base alla lingua del dispositivo).<\/p>\n<p>Ultima opzione, se volete (ad esempio durante il test della vostra applicazione) che il messaggio appaia ad ogni avvio dell&#8217;applicazione dovrete settare a YES questo parametro (che trovate sempre nell&#8217;header file della classe Appirater):<\/p>\n<pre lang=\"ObjC\">\r\n\/*\r\n 'YES' will show the Appirater alert everytime. Useful for testing how your message\r\n looks and making sure the link to your app's review page works.\r\n *\/\r\n#define APPIRATER_DEBUG\t\t\t\tYES\r\n<\/pre>\n<p>Spero che questo piccolo tutorial possa esservi utile, alla prossima! \ud83d\ude09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Il sistema di recensioni e votazioni dell&#8217;AppStore \u00e8 uno strumento molto utilizzato dagli utenti, ma molto spesso&#8230;<\/p>\n","protected":false},"author":254,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[216,780,783,781,782],"class_list":["post-7075","post","type-post","status-publish","format-standard","hentry","category-tutorial-pratici","tag-andrea-busi","tag-appirator","tag-recensioni-app-store","tag-risorse-utili-ios","tag-tutorial-programmazione-iphone-e-ipad"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/7075","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\/254"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=7075"}],"version-history":[{"count":12,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/7075\/revisions"}],"predecessor-version":[{"id":7092,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/7075\/revisions\/7092"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=7075"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=7075"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=7075"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}