Cocoa programming

Oggi ho speso buona parte della giornata tentando di scrivere un visualizzatore di immagini per Mac Os X che potesse:

  1. leggere le immagini da una directory
  2. ignorare i file non leggibili/non immagini
  3. visualizzarle a pieno schermo con/senza ridimensionamento
  4. passare all’immagine successiva o precedente nella stessa directory premendo un solo tasto (spazio)
  5. tornare indietro di un’immagine premendo backspace
  6. canellare un’immagine premendo canc

Nient’altro, niente thumbnail, niente zoom intelligente, niente funzioni di editing. Ho spesso a che fare con directory remote con centinaia di foto e non voglio aspettare ore prima di poter iniziare a controllarle.

Inutile dire che ho rinunciato (per ora!) all’impresa. Dovrei imparare seriamente l’Objective C per iniziare a capirci qualcosa, in ogni caso ho trovato Cocoa molto macchinoso e la documentazione generica (tutorial, introduzioni) troppo vaga. Il tutorial consigliato da tutti è praticamente inutile, è troppo semplice e non spiega perché si fanno le cose in un certo modo. Un esempio su tutti è NSBrowser, un widget per visualizzare dati strutturati ad albero. Il codice d’esempio rasenta il delirio solo per visualizzare un albero di directory perché si perde a settare font, sottolineature e colori vari.
La documentazione non dice assolutamente come si fa a riempire un NSBrowser nuovo, dice solo che una volta pieno è bellissimo.
Speravo che i binding Python<->Cocoa potessero salvarmi, ma sono abbastanza inutilizzabili per chi non conosce l’Objective C.

Per ora continuerò ad usare gqview sotto X11, è il meglio ed è la dimostrazione che il software open source è in grado di dare la polvere a software blasonati e costosi (graphicconverter, iview), ma praticamente inutilizzabili o surclassati da iPhoto.
Una menzione d’onore a cocoviewx, sarebbe perfetto se non morisse così facilmente e se caricasse le immagini solo prima di visualizzarle.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>