{"id":9734,"date":"2013-03-01T10:34:38","date_gmt":"2013-03-01T09:34:38","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=9734"},"modified":"2013-05-09T10:37:07","modified_gmt":"2013-05-09T08:37:07","slug":"plugins-per-xcode-utili-agli-sviluppatori-ios-e-osx","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/plugins-per-xcode-utili-agli-sviluppatori-ios-e-osx\/","title":{"rendered":"Plugins per Xcode utili agli sviluppatori iOS e OSX"},"content":{"rendered":"<p>Xcode \u00e8, senza dubbio, l&#8217;IDE di riferimento per lo sviluppo in ambiente iOS e Mac OS X. Lungi dall&#8217;essere l&#8217;ambiente di sviluppo perfetto,\u00a0Xcode ha dalla sua parte una folta schiera di developer pronti a scrivere interessanti plugin per aumentarne la produttivit\u00e0 e l&#8217;efficenza nella scrittura del codice. In questo articolo vediamo un primo elenco di plugin utili che vanno a colmare alcune delle lacune di Xcode.<\/p>\n<p>&nbsp;<\/p>\n<p><!--more--><\/p>\n<h3>JDPluginManager<\/h3>\n<p><a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/02\/JDPluginManager_screenshot.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft\" alt=\"JDPluginManager\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/02\/JDPluginManager_screenshot-300x151.png\" width=\"300\" height=\"151\" \/><\/a>Visto che in questo articolo parliamo di plugin per Xcode il primo da installare \u00e8, senza dubbio,\u00a0<a href=\"https:\/\/github.com\/jaydee3\/JDPluginManager\">JDPluginManager<\/a>.\u00a0JDPluginManager \u00e8 pratico manager che permette di gestire i plugin installati. Attraverso una voce del men\u00f9 \u00e8 possibile: vedere quali plugin sono attivi, rimuoverli o installarne di nuovi direttamente da Xcode.<\/p>\n<p>L&#8217;installazione di un nuovo plugin \u00e8 particolarmente geniale in quanto richiede solo l&#8217;url del repository git del plugin. JDPluginManager cloner\u00e0 il repository per noi, lancer\u00e0 la build del progetto e al termine eliminer\u00e0 i file temporanei. Non rester\u00e0 che riavviare Xcode e il nuovo plugin si attiver\u00e0 automaticamente.<\/p>\n<h3>Xcode 4 Fixins<\/h3>\n<p><a href=\"https:\/\/github.com\/davekeck\/Xcode-4-Fixins\">Xcode 4 Fixins<\/a>\u00a0\u00e8 un insieme di micro plugin che estendono le funzionalit\u00e0 di editing e modificano alcuni comportamenti noisi di Xcode.<\/p>\n<p>In particolare:<\/p>\n<ul>\n<li><b>CurrentLineHighlighter<\/b> mette in evidenza la riga corrente di editing all\u2019interno del source editor. In questo modo \u00e8 pi\u00f9 semplice individuare la posizione corrente del cursore.<\/li>\n<li><b>DisableAnimations<\/b> disabilita le animazioni presenti in Xcode come, ad esempio, l\u2019animazione che mostra o nasconde il Navigator, l\u2019area di debug etc.<\/li>\n<li><b>FindFix<\/b> attiva di default la visualizzazione delle opzioni avanzate di ricerca nel tab Search Navigator.<\/li>\n<li><b>HideDistractions<\/b>, come \u00e8 facile immaginare, elimina tutte le distrazioni che possono interferire nella scrittura del codice massimizzando l\u2019area di editing e nascondendo tutti i menu non necessari.<\/li>\n<li><b>InhibitTabNextPlaceholder<\/b>\u00a0inibisce il salto al placeholder successivo quando si creano metodi con il code completition di Xcode.<\/li>\n<\/ul>\n<p>Piccoli plugin che agevolano e semplificano la quotidianit\u00e0 dello sviluppatore.<\/p>\n<h3>ColorSense<\/h3>\n<p><a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/01\/ColorSense_screeshot.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-9865 alignleft\" alt=\"ColorSense\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/01\/ColorSense_screeshot-300x150.png\" width=\"300\" height=\"150\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/01\/ColorSense_screeshot-300x150.png 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/01\/ColorSense_screeshot.png 851w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\n<a href=\"https:\/\/github.com\/omz\/ColorSense-for-Xcode\">ColorSense<\/a> \u00e8 un comodissimo plugin che lavora in combinazione con NSColor e UIColor e che rende la creazione di un&#8217;istanza di queste classi un processo visuale. Un color picker inline aiuta il programmatore a scrivere il costruttore con il codice RGB necessario. In qualsiasi momento \u00e8 possibile riattivare il color picker semplicemente cliccando sul rettangolo colorato che apparir\u00e0 alla fine del metodo. Modificando visualmente i parametri del picker questi verranno immediatamente riportati nel codice sorgente.<\/p>\n<p>L&#8217;immagine qui accanto non rende giustizia alle potenzialit\u00e0 di ColorSense per questo vi invito a guardarvi il <a href=\"http:\/\/www.youtube.com\/watch?v=eblRfDQM0Go\">video ufficiale<\/a>\u00a0che mostra chiaramente l&#8217;utilit\u00e0 di questo plugin.<\/p>\n<h3>KSImageNamed Xcode<\/h3>\n<p><a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/01\/KSImageNamed-Xcode_screenshot.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-9866 alignleft\" alt=\"KSImageNamed-Xcode\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/01\/KSImageNamed-Xcode_screenshot-300x140.png\" width=\"300\" height=\"140\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/01\/KSImageNamed-Xcode_screenshot-300x140.png 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/01\/KSImageNamed-Xcode_screenshot.png 458w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><a href=\"https:\/\/github.com\/ksuther\/KSImageNamed-Xcode\">KSImageNamed Xcode<\/a> \u00e8 un plugin che va a colmare una grossa lacuna di Xcode, sopratutto quando lavoriamo con progetti complessi dal punto di vista grafico. KSImageNamed \u00e8 un utile plugin che auto-completa i nomi delle immagini recuperandoli dal workspace. Il plugin si attiva in prossimit\u00e0 del metodo <em>imageNamed:<\/em> della classe\u00a0<em>UIImage,<\/em>\u00a0metodo utile per caricare un&#8217;immagine dal bundle dell&#8217;app. Basta quindi digitare <em>[UIImage imageNamed:<\/em> e NSImageNamed ci mostrer\u00e0 un men\u00f9 di auto-completamento con l&#8217;elenco delle immagini presenti nel workspace.<\/p>\n<h3>Mini Xcode<\/h3>\n<p><a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/02\/MiniXcode_screenshot.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-9992 alignleft\" alt=\"MiniXcode\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/02\/MiniXcode_screenshot-300x169.png\" width=\"240\" height=\"135\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/02\/MiniXcode_screenshot-300x169.png 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/02\/MiniXcode_screenshot.png 850w\" sizes=\"auto, (max-width: 240px) 100vw, 240px\" \/><\/a><a href=\"https:\/\/github.com\/omz\/MiniXcode\">Mini Xcode<\/a>\u00a0rende pi\u00f9 semplice la vita quando si lavora senza la main toolbar di Xcode. Attivare la modalit\u00e0 compatta in Xcode aiuta a massimizare l&#8217;area di lavoro e in particolare l&#8217;area di editing.<\/p>\n<p>In questo contesto il plugin aggiunge una pratica tendina che permette di vedere e selezionare la configurazione scheme\/device corrente. Aggiunge inoltre due shortcut CTRL+7 e CTRL+8 \u00a0che attivano rispettivamente il menu di selezione degli scheme e il menu di selezione del device di destinazione.<\/p>\n<h3>TODO&#8217;s And FIXME&#8217;s As Warnings In Xcode 4<\/h3>\n<p><a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/02\/todo_fixme_as_warnings_xcode_screenshot.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9894 alignright\" alt=\"Todo e Fixme as warning in Xcode\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/02\/todo_fixme_as_warnings_xcode_screenshot-284x300.png\" width=\"170\" height=\"180\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/02\/todo_fixme_as_warnings_xcode_screenshot-284x300.png 284w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/02\/todo_fixme_as_warnings_xcode_screenshot.png 409w\" sizes=\"auto, (max-width: 170px) 100vw, 170px\" \/><\/a>Questo non \u00e8 un vero e proprio plugin ma piuttosto un <a href=\"http:\/\/deallocatedobjects.com\/posts\/show-todos-and-fixmes-as-warnings-in-xcode-4\">piccolo snippet di codice<\/a> da integrare nella fase di build. Il tip \u00e8 opera di <a href=\"http:\/\/deallocatedobjects.com\">Jake Marsh<\/a>, uno sviluppatore e designer, e anche se \u00e8 vecchio di due anni ad oggi si dimostra ancora utile e funzionale. Il seguente snippet di codice fa in modo che tutti i <strong><em>TODO:<\/em><\/strong> e i\u00a0<strong><em>FIXME:<\/em><\/strong>\u00a0presenti nei commenti vengano trattati come warning in fase di compilazione.<\/p>\n<p>Le istruzioni sono molto semplici:<\/p>\n<ul>\n<li>Entrare nella configurazione del target selezionando il nome del progetto<\/li>\n<li>Selezionare il tab &#8220;Build Phases&#8221;<\/li>\n<li>Aggiungere una nuova fase con il bottone &#8220;Add Build Phase&#8221; &gt; &#8220;Add Run Script&#8221;<\/li>\n<li>Inserire nell&#8217;editor il seguente script<\/li>\n<\/ul>\n<pre>\r\nKEYWORDS=\"TODO:|FIXME:|\\?\\?\\?:|\\!\\!\\!:\"\r\nfind \"${SRCROOT}\" \\( -name \"*.h\" -or -name \"*.m\" \\) -print0 | xargs -0 egrep --with-filename --line-number --only-matching \"($KEYWORDS).*\\$\" | perl -p -e \"s\/($KEYWORDS)\/ warning: \\$1\/\"\r\n<\/pre>\n<p>In questo modo tutti i TODO e i FIXME non potranno sfiggure nel processo di sviluppo di un app. Chiaramente si pu\u00f2 personalizzare lo snippet a piacimento per esempio aggiungendo altre keywords specifiche.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Xcode \u00e8, senza dubbio, l&#8217;IDE di riferimento per lo sviluppo in ambiente iOS e Mac OS X&#8230;.<\/p>\n","protected":false},"author":549,"featured_media":10423,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[7],"tags":[1254,1252,1255,1256,1251,7,23,1253],"class_list":["post-9734","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-strumenti-di-sviluppo","tag-colorsense","tag-jdpluginmanager","tag-ksimagenamed-xcode","tag-mini-xcode","tag-plugin-per-xcode","tag-strumenti-di-sviluppo","tag-xcode","tag-xcode-4-fixins"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/9734","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\/549"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=9734"}],"version-history":[{"count":86,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/9734\/revisions"}],"predecessor-version":[{"id":10424,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/9734\/revisions\/10424"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media\/10423"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=9734"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=9734"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=9734"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}