Archive

Posts Tagged ‘javame’

LWUIT, Lightweight UI Toolkit…WOW!!!

28 August 2008 Leave a comment

LWUIT, ovvero un nuovo modo di disegnare interfacce grafiche per JavaME.
Ne avevo sentito parlare ma non mi ero interessato più di tanto, poi ultimamente visto che trovavo riferimenti di questa libreria in diversi siti mi sono incuriosito e guardate che cosa ho trovato

La libreria è molto interessante, sia per come è sviluppata sia per le potenzialità. Creare un effetto grafico con questa libreria è di un semplice che quando l’ho visto non ci credevo. Ancora non ho provato tutte le funzionalità ma leggendo il tutorial ho fatto al volo una stupida applicazione e posso dire che sicuramente baserò i prossimi programmi javame su LWUIT.

Animazioni, temi, layout, transizioni…insomma un vero gioiellino questo LWUIT.

Grafici con JavaME

23 June 2008 Leave a comment

Non se sia una malattia, una perversione o qualcosa di simile, ma mi sono sempre piaciute librerie che permettessero di generare grafici et similia (graficofilia?).
Anche in ambito mobile i grafici potrebbero tornare utili in molti programmi per far visualizzare all’utente un riassunto su un set di dati quindi tanto perchè non ho niente da fare (pare vero aho!!) ho trovato questa semplice ed interessante libreria, MeChart, che permette con poco lavoro di realizzare dei grafici nella applicazioni java mobile.

In questa libreria, nella versione 2.0 disponibile qui, è possibile utilizzare tre diversi tipi di grafici: LineChart, PieChart e BarChart. Questi grafici possono essere inclusi in due modi differenti nel nostro progetto, visto che per ognuno c’è implementato nella libreria un CustomItem e una classe che ci permette di generare l’immagine per includerla in una classica Canvas.

Con poche righe di codice si possono creare dei grafici come il seguente

J2ME charts

Qualche app sfiziosa? Stay tuned :)

PHP su Symbian??!?

11 January 2008 Leave a comment

Leggo da Napolux una notizia sfiziosa, ovvero che a breve sarà presentato PAMP, progetto opensource il cui acronimo sta per Personal Apache, MySQL, PHP.

Allora da una parte come programmatore, amante della programmazione non posso far altro che ammirare un simile porting per il mondo mobile, perchè devo ammetterlo immaginare di far girare qualcosa in PHP sul mio N70 mi piace :)

Dall’altra parte però mi chiedo….perchè???? Non lo dico come programmatore Java che da anni lavora anche sui cellulari e ha paura di doversi mettere a lavorare in un altro ambito (no problem) però lo dico in quanto nel settore mobile c’è già molta frammentazione, serve davvero inventarsi il porting di PHP?

Per Symbian già esistono porting di PythonPerlRuby e devo dire la sincera verità, non ho visto tutte queste applicazioni realizzate con questi linguaggi. Esiste anche FlashLite per Symbian, con il quale ho visto realizzate diverse applicazioni carine, ma il punto della situazione non è questo, ovvero quello che in Java/C++ lo scrivo con N righe magari con Ruby/Python/PHP/Perl/FlashLite/QuelloCheVuoiTe in meno righe. Il problema, IMHO, è quello relativo alla frammentazione. Cioè non vedo l’utilità di sviluppare magari applicazioni in PHP per Symbian S60, quando poi magari su tutti gli altri cellulari di questo pianeta riescono a malapena a fare un’implementazione decente di J2ME.

Non voglio essere estremista Java, ma non vedo l’utilità di questo proliferare di linguaggi, almeno dal punto di vista dei programmatori. Forse l’utilità è dal punto di vista di Nokia, che magari pezzetto dopo pezzetto cerca di portare tutti gli sviluppatori di questo mondo dentro lo sviluppo sulla sua piattaforma più famosa. Al futuro l’ardua sentenza.

Semacode, codici a barre bidimensionali sui cellulari

28 December 2007 Leave a comment

Semacode sono dei codici a barre bidimensionali che contengono informazioni e sono stati definiti sotto lo standard ISO/IEC 16022.

Semacode

Semacode è anche il nome dell’azienda che ha introdotto questa tecnologia, fondata nel 2003 da Simon Woodside. Navigando sul sito dell’azienda è possibile scaricare un programma J2ME che permette il riconoscimento del codice a barre tramite la fotocamera del cellulare.

Ho fatto una prova sul mio Nokia N70 ed effettivamente il programma riconosce l’url contenuto all’interno del codice e chiede all’utente di poter avviare il browser utilizzando quell’url.

Sul sito non viene scritto praticamente niente a riguardo della possibilità di utilizzo della libreria (che è contenuta nel programma che si scarica), anche se una volta avviato appare la scritta “non commercial copy”. Penso che se il prezzo commerciale di questa libreria fosse accessibile si potrebbero avviare tante iniziative basate su questa tecnologia che in altri paesi del mondo vengono utilizzate.

Tags: , ,

BTSlide: slideshow su pc da cellulare

8 November 2007 Leave a comment

BTSlide è un programma che vi permette di gestire uno slideshow, una presentazione (powerpoint, pdf, etc. etc.) attraverso il cellulare con il bluetooth. Praticamente attraverso un programma che viene installato sul cellulare viene simulata la pressione della freccia in basso e freccia in alto, utilizzando il tasto 4 per la freccia su e 6 per la freccia giù.

Oltre al programma su cellulare è necessario il server che è praticamente un’applicazione java che deve essere eseguita sul pcdove è presente la chiavetta bluetooth e la presentazione/slideshow che volete gestire dal cellulare. Una volta che cellulare e pc si sono connessi è possibile utilizza l’applicazione, come potete vedere dal seguente filmato che ho girato.

Vediamo quindi cosa serve per utilizzare questo programma:

  • PC con chiavetta Bluetooth
  • Cellulare J2ME che supporta la JSR82 (ultimamente tutti, comunque è possibile controllare installando semplicemente, se non il cellulare non supporta il programma non si riesce ad installare/eseguire, oppure controllando questa lista non completa)
  • Presentazione (ppt, pdf, immagini) che è possibile scorrere utilizzando le classiche frecce

Prima di tutto bisogna avviare il programma su pc, BTSlideDesktop, utilizzando BTSlideDesktop.bat. A questo punto il server è partito. Ora dal cellulare è possibile avviare l’applicazione BTSlide, che ricerca il server (bisogna selezionare tra le diverse periferiche bluetooth che vengono trovate dal programma).
Una volta che si presenta la schermata con le due freccie e che sul computer viene riportata la scritta “Connection established with client” allora possiamo utilizzare il programma.

Per il momento ho testato il programma soltanto su Windows, utilizzando la libreria BlueCove come implementazione della JSR82 e BTFree per gestire il dialogo tra pc e cellulare.

Per i più volenterosi è possibile far funzionare l’applicazione anche su Linux e MacOSX, compilando la libreriaavetana e inserendo il jar risultante nella cartella lib del programma che rendo disponibile.

L’applicazione Desktop è compilata utilizzando Java 5, quindi per utilizzarlo dovete avere una versione uguale o più nuova di questa.

Sono benvenuti commenti/critiche/applausi/fischi

BTFree 1.1

8 November 2007 Leave a comment

Ho aggiornato BTFree, arrivando alla versione 1.1.
Le modifiche fatte riguardano un pò di restyling di metodi/classi e l’introduzione di due nuove feature.
Praticamente prima era possibile far partire un server ed un client su due diversi dispositivi, ma mi ero accorto che ogni tanto le connessioni non andavano bene, ovvero bisogna far ripartire il client perchè non subito trovava il server.

Giocando un pò con la libreria mi sono reso conto che “purtroppo” quando io la testavo non c’era nessuno vicino, mentre in altre situazioni avevo vicino cellulari con il bluetooth accesso che vietavano l’esplorazione dei servizi attivi. In questo caso la libreria si bloccava.
Proprio per questo motivo ho introdotto due nuove classi, DeviceSearcherAgent e ServiceSearcherAgent. La prima serve per cercare solo i dispositivi bluetooth attivi e per farsi ritornare un Vector che li contiene. La seconda per cercare i servizi BTFree su una determinata device. Praticamente ho “spezzettato” alcune cose già presenti nella libreria proprio per evitare problemi.

Il nuovo hosting è su google, all’indirizzo http://code.google.com/p/btfree/. Per il momento ho fatto l’import iniziale dei sorgenti, della libreria, javadoc e di un’applicazione d’esempio che utilizza la libreria. A breve aggiornerò l’hosting con qualche informazione dettagliata su come si utilizza la libreria (aggiornando la vecchia FAQ).

Perst Embedded Lite: un database per J2ME

25 October 2007 Leave a comment

Quando si sviluppano applicazioni, di qualsiasi tipo, ci sono sempre dei dati da salvare/leggere/manipolare. Anche nel mondo J2ME succede spesso di avere informazioni da gestire e nativamente questa piattaforma supporta RMS (Record Management System), una sorta di repository d’informazioni orientato al record (una cosa orrenda). Chiaramente se uno sviluppa spesso nell’ambito mobile quello che più conviene è realizzare una classe che funge da wrapper per RMS, esportando le funzionalità base in una maniera più comoda. Questa è un’idea comune perchè infatti ricercando su Google è possibile trovare N diverse librerie che migliorano la gestione delle informazioni su RMS.

Perst Embedded Lite è una di queste, anche se si propone come un vero e proprio database. Diciamo che dobbiamo sempre renderci conto del posto dove sta girando questo “database”, ovvero un dispositivo mobile, quindi ci sono tutta una serie di funzionalità classiche dei database (quelli con la D maiuscola) che chiaramente qui non troveremo. Leggendo però questo articolo mi sono reso conto di quanto sia interessante e semplice questo “database”. Nel classico metodo di connessione ad un database andrei a prendere le informazioni che mi servono in questo modo


// RDBMS apporach
Person getPersonByName(string lastName) {
Statement stmt = con.createStatement();
stmt.setString(1, lastName);
ResultSet cursor = stmt.executeQuery("SELECT * FROM Person
where lastName like " + lastName + "'%'");
if (!cursor.next()) {
cursor.close();
return null;
}
Person p = new Person();
p.firstName = cursor.getString("firstName");
p.lastName = cursor.getString("lastName");
p.age = cursor.getInt("age");
p.salary = cursor.getLong("salary");
return p;
}

mentre invece utilizzando Perst Embedded Lite il tutto è molto più semplice


// OODB appoach
Person getPersonByName(string lastName)
{
return personIndex.prefixSearch(lastName);
}

Semplice la vita così eh?!

Cinema, trame, trailer su cellulare J2ME

16 October 2007 Leave a comment

ComingSoon è una rete televisiva che parla di cinema, trailer, trame di film, interviste e tutto quello gira intorno al mondo del cinema. E’ possibile vedere questo canale televisivo sul canale 807 di SKY e sul digitale terrestre.

In questi giorni è stata pubblicata da ComingSoon un programma J2ME, Andiamo al cinema, che permette di avere tantissime informazioni a portata di mano. Utilizzando questa applicazione è infatti possibile avere informazioni relative ai vari film che sono attualmente nelle sale italiane, le trame, i trailer e la possibilità di sapere in quali cinema in tutta italia è possibile vedere un determinato film. Davvero un ottimo programma, estremamente utile per gli sprovveduti che voglio andare al cinema all’ultimo minuto e non sanno cosa vedere o dove vederlo.

Chiaramente richiede una connessione dati GPRS/EDGE/UMTS/QUALIASI_ALTRA_COSA dal vostro cellullare, quindi se non avete una flat dati magari evitate di scaricare troppi trailer, visto le tariffe dati in Italia sono ancora troppo care

Qui di seguito qualche screenshot del programma, che ho testato su un Nokia N70 e su un Motorola v3xx

ComingSoon 0ComingSoon 1ComingSoon 2

ComingSoon 3ComingSoon 4ComingSoon 5

ComingSoon 6ComingSoon 7ComingSoon 8

ComingSoon 9ComingSoon 10ComingSoon 13

Tags: ,

JavaME scripting

14 September 2007 Leave a comment

In ogni linguaggio di programmazione si trovano librerie che permettono di gestire le potenzialità del linguaggio attraverso la sintassi di un altro…perchè??

Semplicemente ci sono spesso persone che per motivi lavorativi, per sfizio personale o semplicemente perchè programmano in un linguaggio da molto tempo, preferisco costruirsi un tool che permetta loro di utilizzare la sintassi che più gli aggrada.

Facendo qualche ricerca su Google escono questi interessanti progetti per il mondo J2ME:

CellularBASIC: interprete del linguaggio BASIC che permette di avere accesso a tutte le funzionalità classiche di JavaME, utilizzando la sintassi del vecchio liguaggio BASIC

Hecl: un linguaggio di scripting per JavaME, con una sintassi semplice e potente, come vuole un buon linguaggio di scripting

mProlog: Prolog engine per la piattaforma JavaME

Simkin: un linguaggio di scripting disponibile sia per JavaME, Symbian C++ e .NET

JavaFX Script: il nuovo prodotto di SUN

Dopo aver visto il Prolog sui cellulari posso morire in pace…

L’angolo del mashup: Flickr

21 June 2007 Leave a comment

Quello che vediamo oggi è divertente quanto inutile programmino, che vi permette di effettuare ricerche su Flickrdal vostro cellulare. Esiste già da tempo l’interfaccia WAP di Flickr, ma in questo modo è possibile visualizzare le immagini con le dimensioni giuste per il vostro cellulare. Flickr mette a disposizione degli sviluppatori un API, attraverso la quale è possibile effettuare delle ricerche sulle immagini.

La parte di ricerca verrà fatta utilizzando phpFlickr, una classe PHP scritta da Dan Coulter per poter utilizzare le API di Flickr. Grazie a questa classe possiamo effettuare ricerche molto semplicemente


require_once("phpFlickr.php");
$f = new phpFlickr("CHIAVE_DI_FLICKR");
$text=$_GET['testo'];
$x=$_GET['x'];
$y=$_GET['y'];
$x=$x-10;
$y=$y-10;
$per_page=10;
$page=$_GET['page'];
$photos_list = $f->photos_search(array("text"=>$text,"per_page"=>$per_page,"page"=>$page));
$counter=0;
foreach ($photos_list['photo'] as $photo) { $url="http://www.javastaff.com/flickr/resize.php?x=".$x."&y=".$y."&src=http://static.flickr.com/".$photo['server']."/".$photo['id']."_".$photo['secret']."_m.jpg";
echo "“.$url.”“.$photo[’title’].”“;
}

In questo modo abbiamo effettuato una ricerca, utilizzando un certo testo passato come GET HTTP e le dimensioni dello schermo del nostro cellulare. Questo perchè attraverso una semplice pagina php possiamo ridimensionare l’immagine, utilizzando le librerie GD


$x = $_GET["x"];
$y = $_GET["y"];
$image_URL = $_GET["src"];
$image = imagecreatefromjpeg($image_URL);
list($width, $height) = getimagesize($source_image_URL);
$resizeW = $width / $x;
$resizeH = $height / $y;
$percent = max($resizeW,$resizeH);
$new_height = round($height /$percent);
$new_width = round($width /$percent);
$dest_image = imagecreatetruecolor($new_width, $new_eight);
imagecopyresampled ($dest_image, $source_image, 0, 0, 0, 0,
$new_width, $new_eight, $width, $height);
header("Content-type: image/jpeg");
imagejpeg($dest_image);
imagedestroy($dest_image);
imagedestroy($source_image);

Tutte queste informazioni verranno passate ad un semplice client J2ME, che si occupa di inviare la ricerca, di scaricare tutte le immagini e visualizzarle

Flickete

La cosa che dovrei aggiungere è il salvataggio delle immagini su cellulare, così se uno trova un’immagine carina la può mettere come sfondo o inviarla via MMS.

Follow

Get every new post delivered to your Inbox.