JUCE il framework per Mac OSx, IOs, Linux, Windows ed Android. Parte II.

Pubblicato: settembre 5, 2012 in Linux, Programmazione
Tag:,

Continuiamo il nostro lavoro con JUCE ed in questo nuovo post vediamo come possiamo modificare il progetto, creare nuovi progetti e modificare l’interfaccia grafica delle nostre applicazioni sempre in ambiente Linux.
Nella post della scorsa settimana avevamo infatti visto come aprire e “debbagare” il progetto Hello Word fornito con il framework.
Eravamo in grado di modificare il contenuto del file .cpp, compilare ed eseguire il programma, potevamo inserire dei break point, valutare le variabili e gli oggetti ma come dobbiamo operare nel caso  volessimo aggiungere dei nuovi file o nuovi moduli?
In questo post cercherò di spiegare passo passo la modalità operativa per gastire, creare e modificare i progetti con JUCE.

Linux e MakeFile in parole semplici.
Come abbiamo già detto , un programma consiste, il più delle volte ( almeno quando i programmi sono abbastanza grandi) in un insieme di file sorgenti, di librerie e risorse grafiche che debbono essere in qualche modo compilati  ( trasformati, tradotti ) in un file “eseguibile” dalla macchina che lo dovrà far girare.
In Linux la lista dei file che compongono il progetto e la modalità di compilazione è contenuta all’interno del “makefile”.
Scrivere un makefile non è una cosa semplice, ci sono regole specifiche da seguire ed il più delle volte è sconsigliato farlo a mano e ci si affida a dei programmi appositi che lo fanno per noi.
JUCE, in particolare,  dispone di un suo tools denominato Introjucer: un programma appositamente fatto per creare, modificare e gestire i progetti.

Introjucer è distribuito insieme alle sorgenti del framework e visto che questa prima parte del tutorial è fatta per Linux, andiamo a compilare ed ad eseguire il programma in questione.

Apriamo la consolle di Linux e andiamo con il comando Cd dentro la cartella : /juce/extras/Introjucer/Builds/Linux

Lanciamo il comando: make

Vedrete una serie di scritte comparire sulla consolle al termine delle quali il programma sarà compilato.

Un doppio click sul file Introjucer presente ella directory /juce/extras/Introjucer/Builds/Linux/build ed il programma si avvia.

Dal menu File, selezionate Open e aprite il file HelloWord.jucer presente nella cartella: /juce/extras/example projects

Al primo avvio il software chiede di scaricare ed installare i moduli che verranno copiati nella cartella /user/juce/modules
Nella parte destra dello schermo possiamo vedere i file del progetto.
Nella parte sinistra i moduli utilizzati.

Scendendo più in basso vediamo le impostazioni per la creazione dei progetti per i vari ambienti di sviluppo: gli Export Targhet.

Aggiungiamo un file al progetto.
Per aggiungere un nuovo file al progetto clicca con il tasto destro del mouse sulla voce: Souce e seleziona Add New Cpp File

Selezioniamo la cartella delle sorgenti ( meglio tenerle tutte insieme) e digitiano un nome per il nuovo file ( cTest.cpp nell’esempio)

Ripetiamo lo stesso procedimento per include il relativo file .h (anche se si poteva creare il file .cpp e .h in un colpo solo selezionando Add New Cpp & Header File dal menu a discesa) .
Scriviamo un po di codice nei nuovi file ( nel mio caso ho scritto una classa che stampa la scritta “pippo” )
Inseriamo la nuova classe nel file principale e creiamo la nuova classe nel costruttore:

Salviamo ora il progetto.

Torniamo con la consolle sul folder juce/extras/example projects/Builds/Linux e lanciamo il comando make,
il nuovo programma verrà compilato oppure possiamo riimportare il progetto sul creator, come visto nella scorsa puntata e ricompilare il tutto.
Certo è un po scomodo dover riimportare il progetto ogni volta ma non credo che si possa fare in diverso modo.

Un editor per l’interfaccia grafica.
Tra le caratteristiche del framework JUCE c’è anche la possibilità di creare e modificare l’interfaccia grafica dei programmi per mezzo di un editor intuitivo ed immediato.
The Jucer, questo è il suo nome è infatti un programma fatto per “fare programmi” o meglio costruire l’interfaccia grafica di un programma in modo semplice e senza doversi districare tra classi codice, variabili e segnali.
Come al solito per prima cosa compiliamo il programma e poi vediamo coma funziona.
Apriamo la consolle ed andiamo nella cartella: /juce/extras/the jucer/Builds/Linux e lanciamo il comando make.

al termine della compilazione andiamo nella cartella build e lanciamo il progrmama: jucer

Il programma si avvia e mostra una finestra ovviamente vuota.

Dal meni File , dopo aver cliccato su Open, selezioniamo il file MainComponend.cpp presente nella cartella source del nostro progetto Hello Word

Cliccando sul campo: SubComponent attiviamo la visualizzazione dell’interfaccia grafica definita nel nostro file.


Selezionando gli oggetto ( la scritta Hello Word, il bottone, etc..)  comparirà sulla destra l’Inspect Bar nella quel sarà possibile modificare i parametri dell’oggetto.

Aggiungiamo un nuovo bottone.
Clicca con l tasto destro del mouse sulla form, vedrai comparire un menu a discesa


Seleziona New Text Button.


Vedrai comparire in nuovo bottone che con il mouse potrai sposare e ridimensionare a piacere.
Clicca sul campo text dell’Inspect Bar di sinistra per scrivere il testo che comparirà sul nuovo bottone.
Cliccate sulla voce File, Save per salvare il lavoro fatto.

Uno sguardo al codice.
Ma cosa è successo?
The Juce ha scritto per noi il codice per la generazione del bottone.

Se cliccate su code preview potete vedere il codice scritto al the Jucer.
Ricompilate il programma e vedrete che il nuovo bottone comparirà al prossimo avvio.

N.B.
Se Il Code preview non vi fa vedere nulla, probabilmente dovrete impostare nella finestra preference il foder dei template che si trova in : /jucer/extras/the jucer/scr/template

Buon divertimento.

commenti
  1. Pierluigi scrive:

    Grazie Giorgio per qeusti 2 articoli, se non fosse che sono preso da Objective-C mi butterei anche in questo framework !!

    • L’ Objective-C è una grane bella “bestia”.
      Io programmando quotidianamente in C++ e francamente ho trovato una certa difficolta a “switchare” in Objective-C ( fose sarà anche l’età! ).
      Costrutti, funzioni e modalità troppo differenti.
      JUCE mi permette di continuare a programmare in C++ anche su MAC.
      certo non credo che si possano fare tutte le cose che si possono fare con l’ambiente nativo, ma se non si ha troppe pretese…..

      • Pierluigi scrive:

        Se l’eta’ fosse determinante io dovrei programmare in QBasic !!!
        A parte tutto anch’io all’inizio ho trovato Obj-C un po’ complicato ora riesco a fare qualcosa, cmq ho trovato JUCE fantastico e appena avro’ finito la prossima App passero’ a fare un self-tutorial con JUCE !!! lo avessi trovato prima !! e dire che ne ho cercati di frameworks !!
        Adesso sono al prese con la parte midi e qui i tutorials in rete sono tanti, ma carenti di spiegazioni strutturali dell’algoritmo quindi mi sto sudando 7 camicie a analizzare e tradurre centinaia di linee di codice.

        Ora sto lavorando ad un semplice midiplayer ed un semplice sound-generator, il mio sogno
        tu sai o immagini qual’è !!

        Magari in privato ti mando qualche risultato di ricerca.

        Grazie per i tuoi post !!

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...