ott 09

Una delle cose che mi fanno amare particolarmente lo sviluppo del software su Mac OS X sono XCode e Cocoa che rendono davvero facile il lavoro allo sviluppatore!

Cio che rende Cocoa un framework tanto fantastico è il fatto che ti permette di concentrarti appieno sul progetto a cui stai lavorando in quanto ti astrae totalmente dai livelli più bassi del sistema mettendoti a disposizione classi e funzioni che semplificano e velocizzano enormemente il processo di sviluppo.

Per esempio è possibile creare un browser web scrivendo una sola linea di codice sorgente (ed ovviamente disegnando la GUI usando Interface Builder):

[[webView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString: [urlText stringValue]]]];

Io credo che sia una cosa davvero fenomenale! Per esempio… se si stesse lavorando ad un aggregatore RSS basterebbe concentrarsi sul “core-task” dell’applicazione senza perdersi in mille problemi sviluppando anche tutto il motore di rendering delle news!

Il codice sorgente del browser dell’esempio può essere scaricato qui: ibrowser.zip

mag 10

Ebbene si… ho comprato un MacBook Air! Benché nel recensirlo dopo il suo lancio avessi dichiarato che il costo fosse troppo elevato per i benefici offerti ho dovuto ricredermi! Il tutto è cominciato qualche settimana fa mentre ero al Saturn e sono passato di fianco ad un Air in esposizione.

La prima cosa che ho pensato (vedendolo poi di fianco ai MacBook e MacBook Pro) è stata che in effetti la macchina risultava essere davvero sottile! Al che ho deciso di prenderlo in mano per valutare meglio e… sono rimasto letterlmente “folgorato” dal peso… una vera piuma (1,36 Kg per un notebook da 13 pollici), eppure dà una notevole sensazione di solidità grazie alla scocca in alluminio (materiale che sembra essere più robusto della plastica con cui è fatta la scocca del MacBook classico).
Tornato a casa ho rimuginato e rimuginato per settimane pensando a quanto fosse leggero e compatto il MacBook Air e quanto mi farebbe comodo all’università in vece del mio MacBook prima serie.
Io infatti porto il MacBook con me tutti i giorni in università e me lo devo scarrozzare abbastanza in giro (sorvolo poi del fatto che quando viaggio il portatile viene sempre con me) e spesso, nonostante non sia pesantissimo (2,3 Kg), mi piacerebbe fosse più leggero (visto che nello zaino ci sono anche che non aiutano ad alleggerire il carico sulle spalle).

Si aggiunga poi che spesso mi capita di non avere accesso a corrente elettrica per più di 3 ore (durata della batteria del mio MacBook dopo che era stato appena acquistato… adesso dopo 350 cicli dura 2 ore e 15 minuti)… e 5 orette di autonomia non sarebbero propriamente da buttare!

Decido dunque, venerdì scorso (grazie al fatto che era vacanza aro a casa dall’università), di comprarmi il MacBook Air (visto anche il periodo economicamente florido che sto attraversando)! Avevo infatti riflettuto a lungo anche riguardo alle carenze dell’Air ed ero giunto alla conclusione che, viste le mie esigenze, non mi avrebbero creato alcun problema! Per quanto riguarda la mancanza della porta ethernet… semplicemente questa mi è inutile, tutti i posti che frequento sono dotati di wireless (o di totale assenza di qualsiasi connettività) tant’è che in 2 anni di uso la porta Ethernet del mio MacBook non è mai stata usata nemmeno una volta. Per quanto riguarda la mancanza del lettore-masterizzatore DVD/CD… anche qua da quando ho comprato come macchina principale l’iMac (non essendo più il mio MacBook l’unica macchina Apple in mio possesso) il lettore-masterizzatore del portatile non è più stato usato (i software ormai si scaricano dal sito del produttore nella maggior parte dei casi ed i dvd che compro io li rippo sempre e li memorizzo sull’HD per non dover poi ogni volta andare alla ricerca del disco). Per la porta USB singola… in assoluto non ho mai usato più di un dispositivo USB alla volta sul portatile (il mouse che uso è bluetooth) quindi il problema non sussiste (per le mie esigenze ovviamente).

Esco quindi e vado con un amico al Saturn nei pressi di casa mia a comprare il MacBook Air: modello da 1699€ con CPU Core 2 Duo da 1,6 GHz e HD PATA da 4200 rpm. Quando mi danno la scatola in mano (una cosa di Apple va detta… sanno come fare belle confezioni) credevo che dentro ci fossero due mattoni tanto pesava… una volta aperta però ho scoperto che era la scatola in se ad essere pesante e non il suo contenuto. Io ed il mio amico abbiamo goliardicamente deciso di girare un video dello spacchettamento dell’Air con in sottofondo Yael Naim:

 

Assieme al MacBook vengono forniti, ovviamente, i DVD di leopard (usabili tramite condivisione remota del disco ottico con un altra macchina), l’alimentatore da 45 Watt (davvero piccolo… stesse dimensioni del caricabatterie dell’iPod), l’adattatore microDVI-VGA, l’adattatore microDVI-DVI, garanzia ed istruzioni.

Ho quindi acceso la macchina e trasferito tutti i miei dati. In mezz’ora era  una copia, a livello dei contenuti, del mio vecchio MacBook (che ho tra l’altro venduto questa settimana). Ho quindi avuto modo di usare l’Air per tutta la settimana che è appena passata è posso quindi anche fornire un’ampia descrizione d’uso.

Il computer effettivamente dura 5 ore con attività wireless normale, ed effettivamente è una goduria averlo in zaino (praticamente non lo si stente). Temevo che il processore da 1.6 GHZ e l’HD pata da 4200rpm potessero essere limitanti… ma non ho notato affatto cali di prestazioni anzi… il bimbo nella maggior parte dei casi se la cava decisamente meglio del mio vecchio MacBook Core Duo 2.0 GHz a 32-bit con un solo GB di ram (pure in fatto di prestazioni grafiche… il MacBook aveva un Intel GMA950 con 64Mb di memoria condivisa… contro la Intel GMA X3100 con 144Mb di memoria condivisa dell’Air). Anche Eclipse (una delle applicazioni che uso di più) che non è propriamente una piuma gira egregiamente! Lo schermo a LED trovo poi abbia un’ottima qualità… in particolare per la luminosità perfettamente uniforme. La tastiera retroiluminata ed il sensore di luce per variare illuminazione di tastiera e monitor sono vere chicche!

Concluderei dicendo che per ora sono davvero soddisfatto del mio acquisto (soddisfa egregiamente tutte le necessità che mi hanno spinto a comprarlo) e per ora non ho ancora incontrato problemi! Nel caso vi farò sapere!
nov 15

shapeimage_2Dopo l’articolo “12 giorni con Leopard”, che descriveva la mia user-experience con il nuovo felino di Apple, ho deciso di scrivere questo per parlare della mia developer-experience. 

Con Leopard si sono rinnovati XCode (che giunge alla versione 3.0) ed Interface Builder, in particolare quest’ultimo ha subito migliorie radicali che lo rendono finalmente un’ottimo software di sviluppo per OS X (prima, per quanto fosse utile, aveva qualche grossa mancanza come l’impossibilità di inserire NSToolBar con un semplice drag & drop), e sono arrivati anche nuove utilities come Instruments che permette di passare ai “Raggi X” la propria esecuzione monitorandone praticamente ogni aspetto… dell’utilizzo delle risorse al singolo accesso a dati tramite Core Data.

Interface Builder, tra le varie, ha ampliato tantissimo l’elenco di oggetti che è possibile utilizzare (giò per i bottoni è possibile scegliere almeno tra 5 o 6 modelli differenti), è ora inoltre possibile creare finestre HUD (quelle nere semitrasparenti) semplicemente selezionandole dal menu e la ToolBar può essere aggiunta alle finestre e modificata semplicemente trascinandole dal menu laterale fin sulla finestra. Le modifiche sono anche altre ma non è mia intenzione fare una lista una per una di tutte le sue nuove feature (tra l’altro c’è anche il nuovo pannello per le impostazioni Core Animation). In assoluto è migliorato molto dal punto di vista sia dell’immediatezza che della completezza!

XCode ha avuto “improvement” minori (anche perché era già buono com’era) ma qualcuno c’è stato… ad esempio adesso spostando il mouse su aree di codice racchiuse da parentesi queste vengono evidenziate rispetto al resto del sorgente.

Parlando invece delle tecnologie messe a disposizione per lo sviluppatore le novità che ci sono state sono notevoli… tanto per cominciare è stato introdotto Objective-C 2.0 con Garbage Collector! Per chi non lo sapesse il Garbage Collector (che è abilitabile opzionalmente sulle proprie applicazioni… quindi non è bbligatorio usarlo) è un sistema che si occupa di gestire la memoria dell’applicazione al posto del programmatore: Garbage Collector (tecnologia che tra l’altro è già utilizzata in Java) viene avviato come un thread secondario dell’applicazione e si occupa di deallocare gli oggetti non più utilizzati liberando così memoria (capitava spesso di trovare applicazioni che di per se non avrebbero dovuto avere grosse richieste di memoria occupare megabyte su megabyte inutilmente a causa di una cattiva gestione).

Non è stato solo il linguaggio ad essere aggiornato… ma anche la libreria… tanto per dirne una adesso per chi volesse cambiare l’icona dell’applicazione nel dock, o volesse aggiungervi una badge, invece che “perdere” tempo prezioso a scriversi classi apposite può limitarsi a scrivere il seguente codice usando la classe NSDockTile:

NSDockTile *dock = [NSApp dockTile];
[dock setBadgeLabel: @"Quello che vuoi"];
[dock display];

Le novità sono ancora moltissime e per avere una panoramica più completa vi invito a visitare http://developer.apple.com

Mi scuso con i miei lettori per l’essenzialità del post ma purtroppo l’imminenza delle prime sessioni d’esami (prove in itinere) mi tengono molto occupato!

nov 06

Sono ormai 12 giorni che utilizzo l’ultimo felino uscito dai cancelli di Cupertino e ho avuto modo di provarlo abbastanza approfonditamente è posso confermare le impressioni iniziali che vedevano in Leopard un bel passo avanti rispetto a Tiger.

Tanto per cominciare Leopard è dotato di una maggiore “reattività” del sistema rispetto a Tiger (non avendo PowerPC devo limitare il mio giudizio alla sola architettura Intel),

le applicazioni si caricano più rapidamente ed eseguono le operazioni con maggiore velocità (direi un 10-20% più rapidamente che con Tiger). 

La gestione del Workgroup di rete poi è incredibilmente migliorata, macchine Mac OS X ed XP vengono rilevate istantaneamente e la condivisione dei documenti avviene senza problemi, ho però riscontrato un problema con le macchine che montano Windows Vista che a volte non vengono rilevate (rendendo quindi impossibile la condivisione documenti).

Il nuovo Finder è stato decisamente un grosso passo avanti (la vecchia versione era decisamente uno dei “punti deboli” di Tiger), la barra laterale che è stata, ad esempio, organizzata decisamente meglio ed il programma non si “pianta” più se le periferiche di rete si scollegano in modo anomalo. La navigazione tramite cover flow poi è molto carina anche se utile solo nel caso si stia navigando in cartelle con foto, filmati o font… negli altri casi è solo un effetto “stiloso”.

L’applicazione Quick-look, che permette di visualizzare anteprime pressoché istantanee di qualsiasi documento, è semplicemente fantastica! Il risparmio in termini di tempo (per la velocità di apertura) e la comodità (basta selezionare il file e premere la barra spaziatrice) sono davvero incredibili.

Safari 3 poi è davvero eccezionale: il rendering delle pagine è perfetto (non ho ancora incontrato una sola pagina che mi dia problemi) ed è estremamente rapido (e non solo grazie all’aumento delle prestazioni della macchina). Anche il nuovo sistema di ricerca all’interno della pagina è ottimo infatti oscura la pagina ed evidenzia di giallo (facendo anche ingrandire e vibrare la parola) il testo cercato… per di più la textfield di ricerca compare in alto attaccata al frame, come in firefox, e non più in una finestra a se stante. 

Una cosa che invece mi ha un po’ rattristato è il fatto che dalla rubrica indirizzi abbiano tolto la possibilità di connettersi al cellulare via bluetooth e mandare gli sms ai numeri dei contatti.

Time Machine non l’ho provata in quanto mi manca un hard disk esterno sul quale effettuare i back-up… ma appena avrò ovviato a questa mia “mancanza” provvederò a rendervi partecipi della cosa.

Per il resto, come già detto nell’articolo precedente, nessuna applicazione che avevo su Tiger ha dato problemi su Leopard eccezion fatta per il NewsReader Nemo che sembra rifiutarsi di funzionare.

Parlando degli stack li trovo abbastanza utili (anche se nulla di eccezionale) in particolare per la cartella “Downloads”… per il resto trovo più comodo accedere ai dati tramite Spotlight che, onore ad Apple, è stato ulteriormente migliorato. 

Spotlight adesso è più veloce e preciso nelle ricerche, consente di eseguire ricerche utilizzando gli operatori booleani e di eseguire calcoli scrivendo l’espressione nella stringa di ricerca (cosa assai comoda). In più adesso appena si collega un disco esterno via USB o FireWire viene immediatamente indicizzato.

Ultima cosa che mi ha davvero favorevolmente colpito è il nuovo XCode 3.0 con il nuovo Interface Builder (la nuova versione di IB e su totalmente un altro piano rispetto alla precedente)… se già prima programmare per Mac OS X era piacevole e veloce… adesso lo è ancora di più!

P.S.: comunque ciò che mostra l’immagine qua a lato giustifica ampiamente la spesa di Leopard!! :)