Gui grafiche con Ruby e RubyCocoa
Girovagando per la rete, in uno dei miei blog preferiti ho ho trovato questo articolo.
Dato che la cosa mi è sembrata molto, ma molto interessante e dato che Apple in persona ha detto che implementerà questa tecnologia in Osx 10.5 ho deciso di seguire questo tutorial.
Per prima cosa mi sono recato nel sito ufficiale di RubyCocoa .
Step 1: Installazione RubyCocoa
Bisogna abilitare il --enabled-share al nostro ruby.
Quindi entriamo nella cartella contenente i sorgenti di ruby e riconfiguriamoli cosi:
$ ./configure --prefix=/opt/local --enable-pthread --with-readline-dir=/opt/local --enable-shared
Io ho usato il prefisso /opt/local perché uso i darwinports generalmente sono /usr/local.
Ora compilate e installate ruby.
$ make
$ sudo make install
Scarichiamo ed installiamo rubycocoa, si può optare per due soluzioni: Scaricare l'ultima Build o l'ultimo Trunk via svn.
Io ho optato per la prima
$ wget http://easynews.dl.sourceforge.net/sourceforge/rubycocoa/RubyCocoa-0.11.0.tar.gz
$ tar xzvf RubyCocoa-0.11.0.tar.gz
$ cd RubyCocoa-0.11.0
$ ruby install.rb config
$ ruby install.rb setup
$ sudo ruby install.rb install
Step 2: Installazione gemma newcocoa
Scaricare la gemma ed installare la gemma newcocoa, quindi da terminale:
$ sudo gem install newcocoa
Step 4: Creazione del progetto di test
Ora abbiamo tutti gli ingredienti per poter eseguire alcuni test.
Procediamo alla creazione del progetto, da terminale:
$ newcocoa HelloWorld Entriamo nella directory del progetto appena creato:
$ cd HelloWorld Step 5: Modifica del Rakefile
Ora abbiamo creato il progetto, ma newcocoa crea "targets" sia per piattaforma ppc che per intel.
Ora aprite il progetto col vostro editor preferito. Il mio è TextMate e quindi da terminale scrivo:
$ mate . Dato che uso Intel devo rimuovere dal RakeFile: - arch ppc
Step 6: Modificare Main.nib con l'Interface Builder
Usando TextMate è possibile:
- espandere la cartella: English.lproj
- cliccare col pulsante destro del mouse su Main.nib
- cliccare su Open Main.nib with Interface Builder
- Creare una Subclass NSObject per creare il nostro controller
- Chiamiamo dunque questa classe "Controller" e istanziamola
- Aggiungiamo un buttons alla nostra nuova finestra
- Aggiungiamo un system fonts text (blocco testo) alla nostra nuova finestra
Questa operazione è semplicissima da fare, basta utilizzare il drag and drop
Ora bisogna:
- Cambiare il testo del bottone e scrivere "Hello World" (doppio clic)
- Eliminare il testo nel system fonts text (doppio clic)
A questo punto, facendo doppio clic su "Controller" che si trova nella finestra "Main.nib", si aprirà la finestra "Controller Class Inspector".
Nella finestra che si è aperta "Controller Class Inspector":
- Aggiungiamo 1 nuova azione, e chiamiamola "sayHello:"
- Aggiungiamo 2 outlets, 1 chiamata "helloButton" e 1 chiamata "helloString"
Ora invece bisogna Linkare il Controller con le outlets e l'azione precedentemente creati.
Per fare questo è semplicissimo, bisogna (tenendo premuto il tasto ctrl) draggare "Control" (il cubo blu che vedete nella figura precedente) sul Bottone e successivamente fare doppio clic sull'outlet "buttonText" nella finestra "Controller Class Inspector".
Ripetiamo lo stesso procedimento, draggiamo "Control" (tenendo premuto ctrl) sul system font text e facciamo doppio clic su helloString.
Associamo l'azione "sayHello:" tenendo premuto ctrl sul nostro pulsante "Hello World" e trasciniamolo sul nostro "Controller" (cubo blu) e poi nella finestra "Controller Class Inspector" facciamo doppio clic sulla nostra azione "sayHello:"
Salviamo e chiudiamo l'inspector window e andiamo nel terminale.
Step 6: Ispezioniamo il NIB e creiamo il nostro Controller.rb
Dal terminale scriviamo:
$newcocoa -c Verrà creato il file "Controller.rb" riprendiamo TexMate e scriviamo nella Def sayHello:
@helloString.setStringValue("HelloWorld") E alla fine del file aggiungiamo:
`rake` if $0 == __FILE__ L'ultima riga che abbiamo aggiunto ci permette premendo lo shortcut Mela+R di lanciare direttamente la nostra applicazione senza fare run Rake.
Semplice no?
Technorati Tags: RubyCocoa
Commenti
Categories
- Altro (17)
- Comunicati Stampa (1)
- Fedora (1)
- Linux (17)
- Mac (45)
- Ruby (25)
- Ruby on Rails (44)
- Tutorials (20)
- Windows (13)
Archivi
- March 2009 (1)
- December 2008 (1)
- November 2008 (1)
- October 2008 (1)
- June 2008 (1)
- May 2008 (5)
- April 2008 (2)
- March 2008 (1)
- January 2008 (3)
- December 2007 (5)
Sponsor
- LipsiaSoft
- LipsiaCars
- Assistente alle Compravendite - eBay
- Giardini e Irrigazione Milano
- LipsiaSHOP
- Ristrutturazione Varese
- Affitto Appartamenti a Fortaleza - Brasil.it
- B&B Center - Bellezza e Benessere
- Rubinetti - Bagno Italiano
- Manta Security
- MarcaClac Blog
- Web Temporary Shop
- Lampada Proiettore
- Soletta e Plantare - Noene












