{"id":11415,"date":"2015-11-02T18:40:19","date_gmt":"2015-11-02T17:40:19","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=11415"},"modified":"2016-06-07T14:55:58","modified_gmt":"2016-06-07T12:55:58","slug":"retrofit-la-libreria-che-permette-di-integrare-api-rest-nelle-proprie-app-java-android-arriva-alla-versione-2-0","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/retrofit-la-libreria-che-permette-di-integrare-api-rest-nelle-proprie-app-java-android-arriva-alla-versione-2-0\/","title":{"rendered":"Retrofit, la libreria che permette di integrare API REST nelle proprie app Java \/ Android, arriva alla versione 2.0"},"content":{"rendered":"<p>La libreria <a href=\"http:\/\/square.github.io\/retrofit\/\" target=\"blank\">Retrofit<\/a> nasce da una compagnia dalle grandi idee, <a href=\"http:\/\/square.github.io\" target=\"blank\">Square Open Source<\/a>, che da tempo offre strumenti per una programmazione efficace ed efficiente sulle principali piattaforme: Java, Android, iOS, Javascript e Ruby.<br \/>\nRetrofit ha saputo conquistare i favori degli sviluppatori Java\/Android grazie alla semplicit\u00e0 con cui permette di integrare delle API REST nelle proprie app. Senza maneggiare\u00a0esplicitamente thread e richieste HTTP, la libreria maschera il tutto dietro delle apposite <em>annotation<\/em> Java tramite le quali \u00e8 possibile definire indirizzo della chiamata REST, metodo HTTP da usare e\u00a0parametri vari. Il programmatore non deve far altro che predisporre delle <em>interface<\/em> che definiscano i metodi per l&#8217;interazione.<br \/>\nRetrofit ha da poco raggiunto la <strong>versione 2.0<\/strong>, anche se ancora in <em>beta<\/em>, con la quale dovrebbero pervenire agli sviluppatori alcune integrazioni particolarmente desiderate, tra cui:<\/p>\n<ul>\n<li>cambia la modalit\u00e0 di effettuare richieste. Da ora, una chiamata sincrona ed una asincrona saranno &#8220;esteriormente&#8221; identiche: entrambe genereranno un oggetto che implementa l&#8217;interfaccia\u00a0<em>Call&lt;T&gt;<\/em> sul\u00a0quale si invocher\u00e0\u00a0il metodo <em>execute<\/em> per una chiamata sincrona o <em>enqueue<\/em> per una asincrona. Quest&#8217;ultima dovr\u00e0 ricevere come parametro un riferimento al listener che gestir\u00e0 il risultato ottenuto sia in caso di successo che di fallimento;<\/li>\n<li>quanto detto al punto precedente avr\u00e0 come diretto vantaggio la possibilit\u00e0 di <strong>interrompere una richiesta in corso<\/strong>. Si tratta di una peculiarit\u00e0 da tempo sospirata\u00a0dagli sviluppatori. Il metodo <em>cancel<\/em>, previsto sempre nell&#8217;interfaccia <em>Call&lt;T&gt;<\/em>, interromper\u00e0 l&#8217;attivit\u00e0 in rete relativa alla specifica richiesta.<\/li>\n<\/ul>\n<p>Tutte queste novit\u00e0 ed altre ancora possono essere gi\u00e0 sperimentate. Per integrare\u00a0la nuova versione di Retrofit in un progetto\u00a0Android sar\u00e0 sufficiente inserire\u00a0la seguente riga nel file di configurazione di Gradle:<\/p>\n<pre class=\"lang:java decode:true\">compile 'com.squareup.retrofit:retrofit:2.0.0-beta2'<\/pre>\n<p>Non vi resta che iniziare a giocarci e farci sapere cosa ne pensate. Alla prossima.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La libreria Retrofit nasce da una compagnia dalle grandi idee, Square Open Source, che da tempo offre&#8230;<\/p>\n","protected":false},"author":561,"featured_media":11461,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[30,534],"tags":[1278,1535,1533,1532,969,1534],"class_list":["post-11415","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-materiale-open-source","category-news","tag-android","tag-android-developers","tag-api-rest-android","tag-librerie-android","tag-programmatori-android","tag-retrofit-android"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/11415","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=11415"}],"version-history":[{"count":12,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/11415\/revisions"}],"predecessor-version":[{"id":11732,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/11415\/revisions\/11732"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media\/11461"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=11415"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=11415"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=11415"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}