Questo Natale il nostro fornitore di connettività ad Internet mi ha fatto un po' tribolare, visto che la mattina del 24, di punto in bianco, il nostro collegamento ha smesso di funzionare. Quindi tutti i siti Web (DataFox, Monitor Investimenti, Adozioni Giuste) sono risultati inaccessibili e la posta elettronica è rimasta bloccata fino a stamani (praticamente sei giorni). Adesso per fortuna tutto sembra rientrato nella norma, quindi almeno il Capodanno me lo posso gustare in santa pace!
Lo sviluppo della nuova applicazione per BlackBerry sta procedendo secondo i piani e , per ora, sono riuscito ad implementare tutte le funzionalità previste, anche lo scambio di info via mail sui dispositivi non aggiornati all'ultimissima versione del software di sistema. Fra poco quindi potrò alzare il sipario anche su questa mia ultima fatica!
Buon 2009 a tutti!
Soluzioni, spunti, suggerimenti, trucchi, nuove idee per chi vive e lavora tutti i giorni con le tecnologie informatiche.
martedì 30 dicembre 2008
martedì 23 dicembre 2008
Nuova Applicazione per BlackBerry
Sono abbastanza soddisfatto dell'accoglienza riservata alle nostre prime applicazioni per BlackBerry: Risparmiometro si avvicina ormai ai 100 download, IBANc ha superato i 50 e BB Trainer, dopo un inizio un po' difficile, sta riguadagnando terreno. Spero che la nuova applicazione che sto sviluppando raggiunga risultati altrettanto lusinghieri. Purtrpoppo sono un po' indietro con la tabella di marcia: avrei voluto rilasciarla prima di Natale, ma non credo di farcela. A questo punto l'obiettivo è l'inzio del 2009. In realtà non sono stato con le mani in mano, anzi ho lavorato molto! Forse anche troppo, nel senso che ho cercato di implementare molte funzioni (secondo me utili) e contemporaneamente di integrare il più possibile l'applicazione con gli strumenti nativi del BlackBerry. Quindi oltre a poter richiamare direttamente le applicazioni per telefonare, per inviare email e per navigare su Internet, viene recuperata la posizione corrente dal GPS (per i dispositivi che ne sono provvisti) e viene visualizzata la mappa relativa. Infine ho pensato di implementare un meccanismo di condivisione delle informazioni (in modo che gli amici possano scambiarsi quanto ritengono utile e interessante), basato sull'invio di email e una gestione custom degli allegati. Purtroppo sembra che la libreria Java nelle versioni precedenti alla 4.5.0.63 sia affetta da un bug proprio nelle parti relative agli allegati e quindi questa funzionalità potrebbe non essere fruibile pienamente su molti dispositivi. Comunque devo verificare il comportamento di un dispositivo reale, oltre che dei vari simulatori.
Prima di salutarvi e di augurarvi Buon Natale vi segnalo una libreria che mi sembra molto interessante e che sto valutando per un nostro progetto importante, cioè SmartGWT, l'implementazione per GWT delle API SmartClient. Sono disponibili tantissimi componenti AJAX molto potenti ed è possibile utilizzare un meccanismo di Data Binding veramente valido. Vi consigli di darci un'occhiata.
Prima di salutarvi e di augurarvi Buon Natale vi segnalo una libreria che mi sembra molto interessante e che sto valutando per un nostro progetto importante, cioè SmartGWT, l'implementazione per GWT delle API SmartClient. Sono disponibili tantissimi componenti AJAX molto potenti ed è possibile utilizzare un meccanismo di Data Binding veramente valido. Vi consigli di darci un'occhiata.
Etichette:
AJAX,
applicazioni BlackBerry,
componenti BlackBerry,
software BlackBerry
lunedì 15 dicembre 2008
BB Trainer per BlackBerry
Dopo l'annuncio del post precedente, mi sono impegnato a fondo per completare il prima possibile la nuova applicazione per BlackBerry. In realtà c'è stato un cambio in corso d'opera, visto che mi è venuta in mente un'altra funzionalità che ho preferito realizzare prima di quella su cui stavo già lavorando, che quindi è stata temporaneamente messa da parte e che penso di riprendere proprio oggi. Quindi è nato BB Trainer, l'assistente di palestra per BlackBerry. Non mi voglio dilungare sulle funzionalità del software, per cui vi rimando alle pagine del sito di DataFox, ma sugli aspetti tecnici.
BB Trainer sfrutta tutti i componenti che ho realizzato e di cui vi ho parlato nei miei post, in particolare il GridLayoutManager e il Grafico a Barre. Durante lo sviluppo, li ho abbastanza migliorati e ho realizzato un mini (ma proprio mini) framework, che facilita abbastanza lo sviluppo di applicazioni di questo tipo. Effettivamente, BB Trainer, pur essendo molto più complesso di IBANc e Risparmiometro, è stato realizzato in molto meno tempo. Inoltre, per rendere più interessante lo sviluppo e più funzionale l'applicazione, ho richiamato (grazie alla classe net.rim.blackberry.api.invoke.Invoke) le applicazioni per il Telefono e la Posta Elettronica native del BlackBerry.
Spero di poter annunciare a breve il rilascio dell'altra applicazione, in modo da poterla considerare un po' come il nostro regalo di Natale per tutti gli utilizzatori di BlackBerry.
BB Trainer sfrutta tutti i componenti che ho realizzato e di cui vi ho parlato nei miei post, in particolare il GridLayoutManager e il Grafico a Barre. Durante lo sviluppo, li ho abbastanza migliorati e ho realizzato un mini (ma proprio mini) framework, che facilita abbastanza lo sviluppo di applicazioni di questo tipo. Effettivamente, BB Trainer, pur essendo molto più complesso di IBANc e Risparmiometro, è stato realizzato in molto meno tempo. Inoltre, per rendere più interessante lo sviluppo e più funzionale l'applicazione, ho richiamato (grazie alla classe net.rim.blackberry.api.invoke.Invoke) le applicazioni per il Telefono e la Posta Elettronica native del BlackBerry.
Spero di poter annunciare a breve il rilascio dell'altra applicazione, in modo da poterla considerare un po' come il nostro regalo di Natale per tutti gli utilizzatori di BlackBerry.
lunedì 1 dicembre 2008
Nuova Applicazione e Libreria di Grafici per BlackBerry
Dopo la pubblicazione di Risparmiometro, ho iniziato lo sviluppo di una nuova applicazione per BlackBerry e quindi ho avuto pochissimo tempo da dedicare al Blog. Visto che l'appetito vien mangiando, questa applicazione è ancora più complessa delle due precedenti, con molte funzionalità e schermi, per cui non so esattamente quanto tempo mi ci vorrà per finirla. Non voglio anticipare niente, se non l'idea di base, comune anche al Risparmiometro, che si può sintetizzare nei due famosi motti dei nostri antenati Romani, "hic et nunc" (qui e ora) e "carpe diem" (cogli l'attimo). Penso che valga la pena utilizzare un'applicazione su smartphone quando permette di salvare al volo una qualche informazione, che altrimenti perderemmo, nel momento in cui ci passa davanti agli occhi, perché ce la possiamo dimenticare e abbiamo difficoltà ad appuntarla da qualche parte. In questo modo salviamo su un dispositivo che portiamo sempre con noi quanto pensiamo che ci possa essere utile in futuro e lo possiamo poi recuperare quando ci viene in mente o ci serve veramente.
Per semplificare lo sviluppo del Risparmiomentro ho realizzato il GridLayoutManager, per questa nuova applicazione ho inziato ad implementare una libreria di grafici per BlackBerry. Al momento è disponibile solo un grafico a barre verticali, di cui potete vedere un esempio nella figura seguente:
Per ora può essere utilizzato solo per visualizzare dati storici, che cioè si sono verificati in un certo momento temporale. Anche se non ho l'ambizione di riscrivere il JFreeChart per BlackBerry, al momento il codice non è sufficientemente maturo e generico per essere reso pubblico. Comunque spero di riuscirci, prima o poi.
Per semplificare lo sviluppo del Risparmiomentro ho realizzato il GridLayoutManager, per questa nuova applicazione ho inziato ad implementare una libreria di grafici per BlackBerry. Al momento è disponibile solo un grafico a barre verticali, di cui potete vedere un esempio nella figura seguente:
Per ora può essere utilizzato solo per visualizzare dati storici, che cioè si sono verificati in un certo momento temporale. Anche se non ho l'ambizione di riscrivere il JFreeChart per BlackBerry, al momento il codice non è sufficientemente maturo e generico per essere reso pubblico. Comunque spero di riuscirci, prima o poi.
Etichette:
componenti BlackBerry,
software BlackBerry,
sviluppo BlackBerry
lunedì 24 novembre 2008
Risparmiometro per BlackBerry
Un post flash per segnalarvi che ho completato lo sviluppo di Risparmiometro per BlackBerry, l'assistente personale per il risparmio. Anche questa applicazione, liberamente scaricabile e utilizzabile come IBANc, è stata realizzata grazie agli strumenti di sviluppo e alle librerie forniti da RIM, in particolare il plugin per Eclipse, di cui ho già parlato con un certo entusiasmo. Per le funzionalità e le indicazioni per l'installazione vi rimando alle pagine pubblicate sul sito di DataFox. Qui mi limito a sottolineare che lo sviluppo è stato molto semplificato dall'uso del GridLayoutManager e del FormScreen, che mi hanno permesso di creare molto rapidamente schermi complessi e con i componenti grafici collocati nel punto desiderato.
Etichette:
software BlackBerry,
sviluppo BlackBerry
sabato 22 novembre 2008
Due suggerimenti per lo sviluppo con il plugin per BlackBerry
Ho quasi completato lo sviluppo di una nuova applicazione per BlackBerry, di cui vi parlerò in un prossimo post, e ho utilizzato l'ultima versione del plugin per Eclipse fornito da RIM. Anche se si tratta di una beta, ho trovato questo strumento molto stabile e funzionale e, grazie ad esso, sono riuscito a realizzare un software relativamente complesso in poco tempo. Il plugin permette di sfruttare le versioni 4.3, 4.5, 4.6 e 4.7 della libreria e tutti i simulatori dei vari dispositivi prodotti da RIM; ho installato e utilizzato gli 81xx, 83xx, 87xx, 8900, 9000 e 9530 (il nuovissimo Storm con touch screen).
Durante questa attività ho incontrato un paio di problemi, che sono riuscito a risolvere e le cui soluzioni sono l'argomento di questo post. Il primo problema riguarda la firma del codice tramite l'apposito strumento presente nel menù BlackBerry (Request Signatures...). Infatti inizialmente non risultavano più disponibili le chiavi che avevo richiesto a RIM e che avevo installato sul PC; pertanto non era possibile firmare il codice applicativo. Alla fine è stato sufficiente copiare due file (sigtool.db e sigtool.csk), presenti nella cartella del vecchio JDE, nella directory plugins\net.rim.eide.componentpack4.x.0_4.x.0.y\components\bin di Eclipse.
Il secondo problema riguarda l'uso di classi di supporto, che si trovano in progetti separati, all'interno del codice presente nel progetto principale. In pratica volevo sfruttare il GridLayoutManager (di cui ho scritto nel post precedente) all'interno della nuova applicazione, lasciandolo in un progetto a sé stante. Nessun problema di compilazione (impostando opportunamente il Build Path di Eclipse), ma nessuna voglia di funzionare a runtime dentro il simulatore di BlackBerry. Per risolvere anche questo problema è stato sufficiente impostare il tipo di progetto su Library, come si vede nella schermata seguente:
Per concludere una novità interessante:
Durante questa attività ho incontrato un paio di problemi, che sono riuscito a risolvere e le cui soluzioni sono l'argomento di questo post. Il primo problema riguarda la firma del codice tramite l'apposito strumento presente nel menù BlackBerry (Request Signatures...). Infatti inizialmente non risultavano più disponibili le chiavi che avevo richiesto a RIM e che avevo installato sul PC; pertanto non era possibile firmare il codice applicativo. Alla fine è stato sufficiente copiare due file (sigtool.db e sigtool.csk), presenti nella cartella del vecchio JDE, nella directory plugins\net.rim.eide.componentpack4.x.0_4.x.0.y\components\bin di Eclipse.
Il secondo problema riguarda l'uso di classi di supporto, che si trovano in progetti separati, all'interno del codice presente nel progetto principale. In pratica volevo sfruttare il GridLayoutManager (di cui ho scritto nel post precedente) all'interno della nuova applicazione, lasciandolo in un progetto a sé stante. Nessun problema di compilazione (impostando opportunamente il Build Path di Eclipse), ma nessuna voglia di funzionare a runtime dentro il simulatore di BlackBerry. Per risolvere anche questo problema è stato sufficiente impostare il tipo di progetto su Library, come si vede nella schermata seguente:
Per concludere una novità interessante:- E' finalmente uscita la versione 6.5 di NetBeans, l'ambiente di sviluppo Open Source sponsorizzato da Sun. Le innovazioni introdotte con questo rilascio sono molte e tutte interessanti, a partire dal build automatico sul save del file (alla Eclipse), fino all'integrazione di plugin specifici per la realizzazione di applicazioni in PHP. Ho seguito il rilascio di questa nuova versione fin dalle prime fasi e, pur non essendo un fan di questo IDE (si era capito?), devo dire che i miglioramenti sono visibili e certi strumenti sono ottimi, come il Profiler, intuitivo e potente.
Etichette:
Eclipse,
software BlackBerry,
sviluppo BlackBerry
domenica 16 novembre 2008
GridLayout per BlackBerry
Dopo aver completato lo sviluppo di IBANc, l'applicazione per la gestione di codici IBAN per BlackBerry, ho iniziato a cercare nuove esigenze per cui varrebbe la pena realizzare un software da far girare sui telefonini di RIM. Durante questo studio, mi sono reso conto che un aspetto, su cui la libreria Java del BlackBerry è carente, è la gestione del posizionamento dei componenti grafici sullo schermo. I contenitori standard (VerticalFieldManager e HorizontalFieldManager), anche se combinati fra loro, non permettono di collocare i componenti con la precisione necessaria per la realizzazione di una maschera complessa e inoltre non consentono di incolonnare i vari campi. Quest'ultima caratteristica negativa porta a risultati che, per mio gusto personale, non sono particolarmente piacevoli da vedere, come mostra abbastanza chiaramente la figura seguente:
Si può notare come i vari campi di immissione siano disallineati rispetto ad un ideale asse verticale. Infine è molto complesso, se non impossibile, affiancare orizzontalmente due o più campi.
Sono quindi arrivato alla conclusione che è necessario disporre di un nuovo contenitore, sottoclasse di net.rim.device.api.ui.Manager, che fornisca funzionalità analoghe, anche se più semplici, del GridBagLayout dell'AWT di Java.
Ho deciso di chiamarlo it.datafox.bb.ui.container.GridLayoutManager, in quanto permette di disporre i componenti visuali su una griglia (GridLayout), con un numero prefissato di righe e colonne, ciascuna delle quali ha una larghezza definita dall'utilizzatore, espressa come percentuale della larghezza totale dello schermo. Per garantire una maggiore flessibilità, ho reso possibile estendere ogni campo su un numero arbitrario di righe e colonne, utilizzando un meccanismo analogo a quello del colspan/rowspan dell'HTML. La schermata seguente mostra lo stesso gruppo di componenti disposti grazie al GridLayout, utilizzando una griglia con due colonne e diverse righe.
Tutti i campi di immissione, che si trovano nella seconda colonna, sono allineati verticalmente e alcuni campi speciali, come il gauge (la barra con la percentuale) o la lista, hanno un colspan pari a due e quindi occupano tutto lo spazio orizzontale disponibile. Si può anche notare che i due radio button sono posizionati sulla stessa riga, come sembra logico aspettarsi, visto che sono mutuamente esclusivi. Ho preparato anche un'altra schermata, in cui le colonne sono tre e dove ho posizionato i vari componenti con allineamenti orizzontali diversi.
Per poter sfruttare le funzionalità del GridLayoutManager nel modo più semplice, ho creato anche una sottoclasse astratta di net.rim.device.api.ui.container.FullScreen, che si chiama it.datafox.bb.ui.container.FormScreen, da utilizzare per implementare i propri schermi di tipo form (maschere di visualizzazione o gestione di dati complessi). I metodi salienti del FormScreen sono il costruttore e l'add. Il costruttore ha la seguente firma:
public FormScreen(int numRows, int numCols, float[] colWidthPercs, long style)
e i parametri forniscono le seguenti informazioni:
protected void add(Field field, int x, int y, int rowspan, int colspan)
I parametri forniscono le seguenti informazioni:
new TestScreen2(4, 3, new float[] { 30, 40, 30 },...)
e per aggiungere un'etichetta nella terza riga, in modo che la occupi tutta (colspan = 3) e che sia allineata al centro, si può scrivere in questo modo:
add(new LabelField("Label3", Field.FIELD_HCENTER), 0, 2, 1, 3)
Il codice sorgente del GridLayoutManager, del FormScreen e degli schermi di esempio riportati nelle schermate precedenti è scaricabile dal sito Web di DataFox. Ho testato questi componenti con tutti i simulatori dei dispositivi più recenti (dall'8100 al 9500) e il risultato è sempre stato positivo.
Restando in tema di sviluppo software per BlackBerry, vi segnalo un'interessante novità, cioè la nuova versione beta del plugin per Eclipse fornito da RIM. Questo rilascio è compatibile con Eclipse 3.4 e mette a disposizione tutti gli strumenti presenti nel JDE, come la firma del codice e la possibilità di scegliere la versione della libreria e del simulatore da utilizzare, integrandoli nel ben più potente ambiente di sviluppo Open Source. Da quando l'ho installato non ho riscontrato problemi e il suo utilizzo è veramente piacevole e produttivo, quindi lo consiglio a tutti quelli che realizzano software per BlackBerry.
Si può notare come i vari campi di immissione siano disallineati rispetto ad un ideale asse verticale. Infine è molto complesso, se non impossibile, affiancare orizzontalmente due o più campi.Sono quindi arrivato alla conclusione che è necessario disporre di un nuovo contenitore, sottoclasse di net.rim.device.api.ui.Manager, che fornisca funzionalità analoghe, anche se più semplici, del GridBagLayout dell'AWT di Java.
Ho deciso di chiamarlo it.datafox.bb.ui.container.GridLayoutManager, in quanto permette di disporre i componenti visuali su una griglia (GridLayout), con un numero prefissato di righe e colonne, ciascuna delle quali ha una larghezza definita dall'utilizzatore, espressa come percentuale della larghezza totale dello schermo. Per garantire una maggiore flessibilità, ho reso possibile estendere ogni campo su un numero arbitrario di righe e colonne, utilizzando un meccanismo analogo a quello del colspan/rowspan dell'HTML. La schermata seguente mostra lo stesso gruppo di componenti disposti grazie al GridLayout, utilizzando una griglia con due colonne e diverse righe.
Tutti i campi di immissione, che si trovano nella seconda colonna, sono allineati verticalmente e alcuni campi speciali, come il gauge (la barra con la percentuale) o la lista, hanno un colspan pari a due e quindi occupano tutto lo spazio orizzontale disponibile. Si può anche notare che i due radio button sono posizionati sulla stessa riga, come sembra logico aspettarsi, visto che sono mutuamente esclusivi. Ho preparato anche un'altra schermata, in cui le colonne sono tre e dove ho posizionato i vari componenti con allineamenti orizzontali diversi.
Per poter sfruttare le funzionalità del GridLayoutManager nel modo più semplice, ho creato anche una sottoclasse astratta di net.rim.device.api.ui.container.FullScreen, che si chiama it.datafox.bb.ui.container.FormScreen, da utilizzare per implementare i propri schermi di tipo form (maschere di visualizzazione o gestione di dati complessi). I metodi salienti del FormScreen sono il costruttore e l'add. Il costruttore ha la seguente firma:public FormScreen(int numRows, int numCols, float[] colWidthPercs, long style)
e i parametri forniscono le seguenti informazioni:
- numRows - numero di righe della griglia
- numCols - numero di colonne della griglia
- colWidthPercs - larghezza percentuale di ciascuna colonna
protected void add(Field field, int x, int y, int rowspan, int colspan)
I parametri forniscono le seguenti informazioni:
- field - campo che si vuole aggiungere allo schermo
- x - colonna della griglia in cui si vuole inserire il campo
- y - riga della griglia in cui si vuole inserire il campo
- rowspan - numero di righe occupate dal campo
- colpan - numero di colonne occupate dal campo
new TestScreen2(4, 3, new float[] { 30, 40, 30 },...)
e per aggiungere un'etichetta nella terza riga, in modo che la occupi tutta (colspan = 3) e che sia allineata al centro, si può scrivere in questo modo:
add(new LabelField("Label3", Field.FIELD_HCENTER), 0, 2, 1, 3)
Il codice sorgente del GridLayoutManager, del FormScreen e degli schermi di esempio riportati nelle schermate precedenti è scaricabile dal sito Web di DataFox. Ho testato questi componenti con tutti i simulatori dei dispositivi più recenti (dall'8100 al 9500) e il risultato è sempre stato positivo.
Restando in tema di sviluppo software per BlackBerry, vi segnalo un'interessante novità, cioè la nuova versione beta del plugin per Eclipse fornito da RIM. Questo rilascio è compatibile con Eclipse 3.4 e mette a disposizione tutti gli strumenti presenti nel JDE, come la firma del codice e la possibilità di scegliere la versione della libreria e del simulatore da utilizzare, integrandoli nel ben più potente ambiente di sviluppo Open Source. Da quando l'ho installato non ho riscontrato problemi e il suo utilizzo è veramente piacevole e produttivo, quindi lo consiglio a tutti quelli che realizzano software per BlackBerry.
Iscriviti a:
Post (Atom)
Ricerca personalizzata