{"id":10547,"date":"2013-05-29T11:58:45","date_gmt":"2013-05-29T09:58:45","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=10547"},"modified":"2013-07-01T10:45:00","modified_gmt":"2013-07-01T08:45:00","slug":"usare-xcode-senza-utilizzare-il-mouse-o-quasi","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/usare-xcode-senza-utilizzare-il-mouse-o-quasi\/","title":{"rendered":"TIPS#020 &#8211; Usare Xcode senza utilizzare il mouse (o quasi)"},"content":{"rendered":"<p>Tutti gli sviluppatori hanno un rapporto particolare con la tastiera del proprio computer. In rete infuriano battaglie su quale sia la migliore per programmare. Qualcuno dir\u00e0 che \u00e8 necessaria una tastiera ergonomica come questa\u00a0<a href=\"http:\/\/goo.gl\/tNWSb\" target=\"_blank\">http:\/\/goo.gl\/tNWSb<\/a>, poi ci sono i nostalgici della vecchia IBM Model M \u00a0<a href=\"http:\/\/goo.gl\/wNHX\" target=\"_blank\">http:\/\/goo.gl\/wNHX<\/a>, c&#8217;\u00e8 chi dice che sui tasti non \u00e8 il caso di scrivere nulla\u00a0<a href=\"http:\/\/goo.gl\/AtwA\" target=\"_blank\">http:\/\/goo.gl\/AtwA<\/a>. Per non parlare poi del layout dei tasti: io uso US-Universal con dead keys, ma i veri fanatici si scontrano direttamente con il layout QUERTY inneggiando piuttosto al layout <a href=\"http:\/\/it.wikipedia.org\/wiki\/Tastiera_semplificata_Dvorak\" target=\"_blank\">Dvorak<\/a> o <a href=\"http:\/\/colemak.com\/\" target=\"_blank\">Colemak<\/a>\u00a0.<\/p>\n<p>Non troverete invece in rete gente che litiga su quale sia il mouse migliore per programmare, come mai? Eppure Il mouse per uno sviluppatore che utilizza Xcode riveste un ruolo molto importante, provate ad aprire Xcode e non usare il mouse, cosa riuscite a fare? probabilmente poco se non vi siete esercitati almeno un po&#8217;, eppure riuscire a limitare l&#8217;utilizzo del mouse va a beneficio della nostra produttivit\u00e0 perch\u00e9 l&#8217;utilizzo del mouse \u00e8 lento e soprattutto ci costringe a togliere le mani dalla loro posizione sulla tastiera.<\/p>\n<p>Purtroppo non posso convincervi dell&#8217;utilit\u00e0 di lavorare con la tastiera, ma datemi fiducia e provare almeno *qualche* comando da tastiera, vedrete che mi ringrazierete.<\/p>\n<p>&nbsp;<\/p>\n<p>Ecco una lista delle operazioni pi\u00f9 utili da fare per iniziare ad abbandonare il mouse<\/p>\n<h3><strong>1. Abilitare il focus su tutti i controlli.<\/strong><\/h3>\n<p>Quando ho iniziato ad usare il mac una delle cose pi\u00f9 fastidiose erano gli alert di questo tipo, perch\u00e9 mi costringeva ad usare il mouse per cliccare su &#8220;ok&#8221;.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-10548\" alt=\"Screen Shot 2013-05-29 at 10.26.35\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/05\/Screen-Shot-2013-05-29-at-10.26.35-300x153.png\" width=\"300\" height=\"153\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/05\/Screen-Shot-2013-05-29-at-10.26.35-300x153.png 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/05\/Screen-Shot-2013-05-29-at-10.26.35.png 534w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>Fortunatamente poco dopo ho scoperto l&#8217;esistenza di un&#8217;opzione tra le preferenze che permette tramite tab di spostarsi su tutti i controlli di una finestra e quindi non \u00e8 pi\u00f9 necessario usare il mouse.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-10549\" alt=\"Screen Shot 2013-05-29 at 10.25.38\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/05\/Screen-Shot-2013-05-29-at-10.25.38-300x273.png\" width=\"300\" height=\"273\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/05\/Screen-Shot-2013-05-29-at-10.25.38-300x273.png 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/05\/Screen-Shot-2013-05-29-at-10.25.38.png 782w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<h3><strong>2. Muoversi all&#8217;interno del testo in modo veloce.<\/strong><\/h3>\n<p>Muoversi all&#8217;interno del testo \u00e8 l&#8217;operazione pi\u00f9 comune da fare durante il nostro lavoro e sicuramente tutti siete gi\u00e0 abituati ad usare le frecce per spostarsi e usare maiuscolo + le frecce per selezionare del testo, ma magari qualcuno non sa che tramite alcuni comandi \u00e8 possibile spostarsi pi\u00f9 velocemente lungo il testo, eccone alcuni:<\/p>\n<table border=\"0\">\n<tbody>\n<tr>\n<td><strong>Shortcut<\/strong><\/td>\n<td><strong>Alternativa<\/strong><\/td>\n<td><strong>Funzionalit\u00e0<\/strong><\/td>\n<\/tr>\n<tr>\n<td>cmd + \u2192<\/td>\n<td>ctrl + e<\/td>\n<td>sposta alla fine della riga<\/td>\n<\/tr>\n<tr>\n<td>cmd + \u2190<\/td>\n<td>ctrl + a<\/td>\n<td>sposta all&#8217;inizio della riga<\/td>\n<\/tr>\n<tr>\n<td>ctrl +\u00a0\u2192<\/td>\n<td><\/td>\n<td>sposta in avanti di una subword<\/td>\n<\/tr>\n<tr>\n<td>ctrl +\u00a0\u2190<\/td>\n<td><\/td>\n<td>sposta indietro di una subword<\/td>\n<\/tr>\n<tr>\n<td>cmd +\u00a0\u2192<\/td>\n<td><\/td>\n<td>sposta in avanti di una parola<\/td>\n<\/tr>\n<tr>\n<td>cmd + \u2190<\/td>\n<td><\/td>\n<td>sposta indietro di una parola<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Queste combinazioni di tasti possono essere utilizzate anche premendo tasto maiuscolo, in questo caso quello che otterremo \u00e8 una selezione accurata e veloce del testo.<\/p>\n<p>&nbsp;<\/p>\n<h3>3. Interagire con Xcode<\/h3>\n<p>Una delle opzioni pi\u00f9 belle e comode di Xcode \u00e8 senza dubbio &#8220;Open Quickly&#8221; raggiungibile dal men\u00f9 &#8220;File&#8221; oppure tramite la combinazione di tasti &#8220;<strong>maiuscolo + cmd + o<\/strong>&#8221;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-10555\" alt=\"Screen Shot 2013-05-29 at 10.58.41\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/05\/Screen-Shot-2013-05-29-at-10.58.41-300x219.png\" width=\"300\" height=\"219\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/05\/Screen-Shot-2013-05-29-at-10.58.41-300x219.png 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/05\/Screen-Shot-2013-05-29-at-10.58.41.png 475w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>Come dice chiaramente il messaggio basta digitare parte del nome del file che vogliamo aprire per vederlo apparire nell&#8217;elenco sottostante, a quel punto &#8220;Invio&#8221; e avremo il file gi\u00e0 pronto nel nostro editor.<\/p>\n<p>&nbsp;<\/p>\n<p>Una delle operazioni pi\u00f9 comuni da fare durante la scrittura del codice \u00e8 passare dal file di implementazione al file di dichairazione (.m e .h) e questo \u00e8 possibile grazie alla combinazione di tasti <strong>ctrl+cmd + \u2191<\/strong><\/p>\n<p>Se volete modificare un metodo di cui conoscete gi\u00e0 il nome potete usare due strade, la prima \u00e8 quella del &#8220;trova&#8221; raggiungibile tramite il comune <strong>&#8220;cmd+f&#8221;\u00a0<\/strong>ma la versione pi\u00f9 semplice \u00e8 tramite la combinazione di tasti\u00a0<strong>&#8220;ctrl+6&#8221;. \u00a0<\/strong>Questa combinazione di tasti far\u00e0 apparire un popup con i nomi di tutti metodi della classe e sar\u00e0 possibile o selezionarne uno muovendosi con le frecce della stastiera oppure ancora inizando a digitare il nome del metodo per affinare la ricerca.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-10556\" alt=\"Screen Shot 2013-05-29 at 11.06.37\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/05\/Screen-Shot-2013-05-29-at-11.06.37-300x114.png\" width=\"300\" height=\"114\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/05\/Screen-Shot-2013-05-29-at-11.06.37-300x114.png 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/05\/Screen-Shot-2013-05-29-at-11.06.37.png 352w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/>\u00a0<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-10557\" alt=\"Screen Shot 2013-05-29 at 11.07.55\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/05\/Screen-Shot-2013-05-29-at-11.07.55-300x96.png\" width=\"300\" height=\"96\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/05\/Screen-Shot-2013-05-29-at-11.07.55-300x96.png 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/05\/Screen-Shot-2013-05-29-at-11.07.55.png 370w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p style=\"text-align: center;\">\n<h3 style=\"text-align: left;\">4. Project navigator<\/h3>\n<p>Il project navigator \u00e8 la barra comunemente visualizzata \u00a0a sinistra che mostra l&#8217;elenco delle risorse del nostro progetto. Quando riuscirete a navigare velocemente tra i vostri file con i comandi che ho elencato non sar\u00e0 pi\u00f9 necessario averla sempre visibile, potrete quindi nasconderla o visualizzarla premendo <strong>&#8220;cmd + 0&#8221; (cmd + zero)<\/strong><\/p>\n<p>Le funzionalit\u00e0 all&#8217;interno del project navigator \u00a0(symbol navigator, issue navigator, debug navigator etc) sono tutte raggiungibili tramite <strong>&#8220;cmd + 1&#8221;<\/strong>, <strong>&#8220;cmd + 2&#8221;<\/strong>, <strong>&#8220;cmd + 3&#8221;<\/strong> fino a <strong>&#8220;cmd + 7&#8221;<\/strong> che \u00e8 il log navigator.<\/p>\n<p style=\"text-align: left;\">Quanto detto per il project navigator \u00e8 valido anche per il panello &#8220;Utilities&#8221; che di norma viene mostrato sulla destra di Xcode, con la variante che bisogna usare anche il tasto &#8220;alt&#8221;. Quindi <strong>&#8220;alt+cmd+0&#8221;\u00a0<\/strong>per attivare il pannello, e <strong>&#8220;alt+cmd+1&#8221;<\/strong>, <strong>&#8220;alt+cmd+2&#8221;<\/strong>&#8230; per attivare le sue diverse funzioni.<\/p>\n<p style=\"text-align: left;\">Quando si lavora ad un file \u00e8 comodo alle volte verificare dove questo file si trovi all&#8217;interno del progetto, in questo caso potete usare la combinazione di tasti <strong>&#8220;maiuscolo + cmd +j&#8221;\u00a0<\/strong>per attivare la funzione &#8220;reveal in project navigator&#8221; che in pratica vi mostra nel project navigator il file sul quale state attualmente lavorando.<\/p>\n<p style=\"text-align: left;\">La combinazione di tasti <strong>&#8220;alt+cmd+j&#8221;\u00a0<\/strong>porta il focus nella textfield di ricerca del project navigator, utile per filtrare velocemente la lista dei file visualizzati nel project navigator.<\/p>\n<p style=\"text-align: left;\">\n<h3 style=\"text-align: left;\"><strong>5. Muoversi tra i panels<\/strong><\/h3>\n<p>Gli editor non sono mai abbastanza, per questa ragione Xcode permette di avere pi\u00f9 finestre, ciascuna finestra pu\u00f2 avere pi\u00f9 tab e ciascuna tab pu\u00f2 avere un infinito numero di aree dove visualizzare file di testo&#8230;ma come muoversi in questo mare di file aperti?<\/p>\n<p>Navigare tra le diverse finestre (che per inciso si aprono con <strong>maiuscolo+cmd+t\u00a0<\/strong>) pu\u00f2 essere un po&#8217; fastidioso perch\u00e9 la combinazione di tasti predefinita del mac \u00e8 in conflitto con quella di Xcode. Verificate quindi tra i settings del vostro sistema operativo quale sia la combinazione di tasti corretta<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-10562\" alt=\"Screen Shot 2013-05-29 at 11.32.29\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/05\/Screen-Shot-2013-05-29-at-11.32.29-300x273.png\" width=\"300\" height=\"273\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/05\/Screen-Shot-2013-05-29-at-11.32.29-300x273.png 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/05\/Screen-Shot-2013-05-29-at-11.32.29.png 782w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>e provate ad usare quella combinazione, se non funziona proseguite nella lettura perch\u00e9 vi spiegher\u00f2 come modificare le impostazioni predefinite di Xcode.<\/p>\n<p>Per muoversi tra le diverse schede aperte all&#8217;interno di una finestra (si aprono con la solita <strong>ctrl+t<\/strong>) si utilizza la combinazione di tasti &#8220;<strong>cmd + maiucolo + }&#8221;\u00a0<\/strong>e\u00a0&#8220;<strong>cmd + maiucolo + {&#8221;\u00a0<\/strong>Queste combinazioni di tasti sono comuni praticamente a tutti \u00a0i programmi che usano le tab, ad esempio anche Safari e Chrome.<\/p>\n<p>Per muoversi all&#8217;interno della stessa tab esiste una combinazione di tasti molto comoda che \u00e8 <strong>&#8220;cmd + j&#8221;\u00a0<\/strong>che mostra un piccolo navigatore dove \u00e8 possibile scegliere quale area si vuole attivare.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-10563\" alt=\"Screen Shot 2013-05-29 at 11.38.11\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/05\/Screen-Shot-2013-05-29-at-11.38.11-300x150.png\" width=\"300\" height=\"150\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/05\/Screen-Shot-2013-05-29-at-11.38.11-300x150.png 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/05\/Screen-Shot-2013-05-29-at-11.38.11.png 483w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h3>\u00a06. Personalizare e aggiungere shortcut<\/h3>\n<p>Xcode consapevole di quanto ogni sviluppatore sia fanatico delle proprie combinazioni di tasti mette a disposizione una nutrita serie di opzioni raggiungibili tramite &#8220;preferenze-&gt; Key Bindings&#8221;.<\/p>\n<p>In questa schermata potrete verificare se alcuni shortcut sono in conflitto con altri di sistema (come nel caso del punto precedente), potete modificarli e potete aggiungerne di nuovi, infatti molte funzionalit\u00e0 non hanno nessuna combinazione di tasti associata.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-10564\" alt=\"Screen Shot 2013-05-29 at 11.45.08\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/05\/Screen-Shot-2013-05-29-at-11.45.08-300x229.png\" width=\"300\" height=\"229\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/05\/Screen-Shot-2013-05-29-at-11.45.08-300x229.png 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2013\/05\/Screen-Shot-2013-05-29-at-11.45.08.png 864w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>Io ho trovato molto utile aggiungere una combinazione di tasti per la funzionalit\u00e0 &#8220;Select word&#8221; \u00a0 che permette di selezionare interamente la parola dove attualmente si trova il cursore, per il resto ho lasciato tutto come default.<\/p>\n<p>&nbsp;<\/p>\n<p>Purtroppo l&#8217;editor di testi incluso dentro Xcode non \u00e8 uno dei pi\u00f9 evoluti, diciamo anzi che non \u00e8 evoluto per niente \ud83d\ude42 infatti in alcuni casi preferisco utilizzare un editor separato come sublimetext perch\u00e9 offrono delle funzionalit\u00e0 che Xcode non offre, prima su tutte la possibilit\u00e0 di utilizzare pi\u00f9 cursori contemporaneamente.<\/p>\n<p>&nbsp;<\/p>\n<p>Nella speranza che la prossima release di Xcode ci riservi qualche novit\u00e0 sotto questo aspetto, vi lascio e ci sentiamo alla prossima! Buon divertimento!<\/p>\n<p>PS: il titolo di questo articolo voleva essere &#8220;Guarda mamma, senza mouse&#8221; poi per\u00f2 ho optato per qualcosa di pi\u00f9 serio \ud83d\ude42<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tutti gli sviluppatori hanno un rapporto particolare con la tastiera del proprio computer. In rete infuriano battaglie&#8230;<\/p>\n","protected":false},"author":53,"featured_media":10572,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[105],"tags":[1302,1301,23,1303],"class_list":["post-10547","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tips-tricks","tag-developers-tools","tag-shortcuts-xcode","tag-xcode","tag-xcode-tips"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/10547","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=10547"}],"version-history":[{"count":22,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/10547\/revisions"}],"predecessor-version":[{"id":10623,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/10547\/revisions\/10623"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media\/10572"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=10547"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=10547"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=10547"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}