{"id":11115,"date":"2015-06-12T10:34:57","date_gmt":"2015-06-12T08:34:57","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=11115"},"modified":"2016-02-03T17:17:41","modified_gmt":"2016-02-03T16:17:41","slug":"facebook-opensource-rilascia-un-nuovo-tool","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/facebook-opensource-rilascia-un-nuovo-tool\/","title":{"rendered":"Facebook OpenSource rilascia un nuovo tool"},"content":{"rendered":"<p>Dopo librerie come <a href=\"https:\/\/github.com\/facebook\/pop\" target=\"_blank\">POP<\/a> e strumenti di debug come <a href=\"https:\/\/github.com\/facebook\/chisel\" target=\"_blank\">Chisel<\/a>, <strong>Facebook OpenSource<\/strong> ci sorprende ancora rilasciando <a href=\"http:\/\/fbinfer.com\/\" target=\"_blank\">Infer<\/a>, un utilissimo strumento per l&#8217;<a href=\"http:\/\/en.wikipedia.org\/wiki\/Static_program_analysis\" target=\"_blank\">analisi statica<\/a> del codice C, Objective-C e Java:\u00a0uno strumento avanzato, utile per <strong>scoprire eventuali bug nel codice delle nostre applicazioni iOS e Android<\/strong> prima ancora di iniziare a testare l&#8217;applicazione.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11349 size-full\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2015\/06\/facebook-open-source.jpg\" alt=\"facebook-open-source\" width=\"642\" height=\"336\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2015\/06\/facebook-open-source.jpg 642w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2015\/06\/facebook-open-source-300x157.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2015\/06\/facebook-open-source-500x261.jpg 500w\" sizes=\"auto, (max-width: 642px) 100vw, 642px\" \/><\/p>\n<p>Tutti sappiamo che i bug &#8220;prima si trovano e meglio \u00e8&#8221;, per questo i nuovi linguaggi come Swift hanno una lunga serie di check a compile time, per avvertire il programmatore che qualcosa probabilmente potrebbe andare storto a runtime. Purtroppo non tutto \u00e8 verificabile a compile time e per questo si usano unit test e altri strumenti per testare l&#8217;app a runtime.<br \/>\nEsiste per\u00f2 un&#8217;altra categoria di analisi che \u00e8, appunto, l&#8217;analisi statica. Si tratta di analizzare il codice sorgente alla ricerca di possibili problemi utilizzando tecniche che vanno oltre quelle dei normali compilatori.<br \/>\nChi ha qualche anno di sviluppo iOS alle spalle si ricorder\u00e0 come l&#8217;analisi statica del codice fosse indispensabile per evidenziare probabili memory leak all&#8217;interno del codice, prima dell&#8217;avvento di ARC.<br \/>\nInfer si sovrappone quindi all&#8217;analisi statica gi\u00e0 disponibile all&#8217;interno di Xcode, ma permette di <strong>analizzare sia codice Objective-C, C e JAVA<\/strong> quindi \u00e8 un ottimo candidato per essere inserito all&#8217;interno della catena di strumenti utilizzati dalle aziende per eseguire la build delle loro applicazioni, magari come script all&#8217;interno di <a href=\"https:\/\/jenkins-ci.org\/\" target=\"_blank\">jenkins<\/a> o <a href=\"https:\/\/fastlane.tools\/\" target=\"_blank\">fastlane<\/a><\/p>\n<p>Date un&#8217;occhiata al sito e provate a verificare lo stato del vostro progetto!<\/p>\n<p>Alla prossima!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dopo librerie come POP e strumenti di debug come Chisel, Facebook OpenSource ci sorprende ancora rilasciando Infer,&#8230;<\/p>\n","protected":false},"author":53,"featured_media":11349,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[7],"tags":[1516,1515,1517,1514,1518],"class_list":["post-11115","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-strumenti-di-sviluppo","tag-analisi-statica-del-codice","tag-android-bug-fixing","tag-facebook-open-source","tag-ios-bug-fixing","tag-static-analysis-tools"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/11115","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\/53"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=11115"}],"version-history":[{"count":11,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/11115\/revisions"}],"predecessor-version":[{"id":11728,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/11115\/revisions\/11728"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media\/11349"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=11115"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=11115"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=11115"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}