Domenica, Giugno 13, 2010
E’ facile sviluppare software per Windows Mobile?
Dopo anni di fedeltà ai sistemi forniti da Nokia, in particolare a Symbian, ultimamente ho fatto un radicale cambiamento, passando ad un sistema dotato di Windows Mobile!!!
Qualcuno potrà dire, ma come, il software libero? Perchè non Android?
Bene, in questo articolo, oltre a rispondere a queste domande, mostrerò come realizzare, in modo estremamente semplice, un piccolo programma per Windows Mobile.
Ascolta questo articolo : Se trovi troppo lunga ed impegnativa la lettura di questo articolo, puoi ascoltarlo! Ho letto per te questo testo ed ora è disponibile , diviso in 2 parti, direttamente su Youtube :
Sviluppare Applicazioni per Windows Mobile 6.x (1/2)
Sviluppare Applicazioni per Windows Mobile 6.x (2/2)
Sviluppare software per Smartphone
Da molto tempo ho il desiderio di tentare la strada dello sviluppo su smartphone.
Ho provato con Symbian ma, purtroppo, mi è sempre parso troppo ostico. Si può sviluppare con Java o C++. Purtroppo il primo non mi è mai piaciuto, il secondo ha il solito problema di C++, difficile da apprendere, complesso da utilizzare e da debuggare.
Ho poi cercato di documentarmi su altri sistemi, come quelli di Apple, RIM, ed infine Android.
Visto che sarebbe veramente troppo lungo descrivervi nel dettaglio la mia ricerca, cercherò di riassumere come meglio posso.
Scartato Symbian, che reputo troppo complesso, scarterò immediatamente anche il sistema di Apple (Iphone) a causa dell’evidente volontà di intrappolare nelle sue spire, utenti e sviluppatori, cosa che tutti gli altri attori del mercato cercano di fare, ma in modo molto meno rigido, lasciando comunque agli utilizzatori ampi margini di azione.
Per quanto riguarda i BlackBerry (RIM), nonostante li ritenga prodotti eccellenti, mi sembra un mondo un po troppo chiuso, tanto che gli operatori hanno tariffe esclusive per questi smartphone inoltre, cosa forse più importante, mancano modelli touch con tastiera fisica.
Dopo aver provato l’esperienza di una tastiera virtuale touch, credo che non acquisterò mai più uno smartphone senza una tastiera fisica.
Passiamo ora ad Android. Sistema veramente interessante ma, dopo aver guardato e provato l’SDK, con Java e C++ coadiuvati da Eclipse, mi sono parecchio demoralizzato.
Ciò che mi viene da dire è :
Tutto qui?
Insomma, mi aspettavo qualcosa di più. Nulla di particolarmente entusiasmante.
Come ultima piattaforma ho lasciato windows, in quanto ero quasi certo che mi avrebbe deluso. Al contrario mi ha sorpreso.
Mi ha sorpreso sia dal punto di vista delle funzionalità, sia da quello della programmazione. Pensavo che avesse carenze gravi, invece ho trovato tutto ciò che serve per poter lavorare, compreso un “Office Mobile 2010” completamente gratuito.
Comunque, ciò che mi ha più sorpreso è stato il modo di sviluppare software. Per capire meglio, l’ideale è leggere questo piccolo articolo che confronta il programma minimo sviluppabile sulle varie piattaforme :
Hello World: Windows Mobile vs Symbian vs Android vs Iphone
Come potete ben vedere il sistema utilizzato in Windows Mobile è C#, quindi .NET. Anche se non sono un fan di questo sistema certamente semplifica una quantità enorme di aspetti che, altrimenti, sarebbero a carico esclusivo del programmatore.
Lo Smartphone utilizzato
Dopo aver utilizzato con soddisfazione un Nokia e61i e un 5800, il mio attuale smartphone è un Samsung b7610 Omnia Pro dotato di Windows Mobile 6.5.
Il sistema di sviluppo e lo scopo del software
Per sviluppare il nostro primo, banale software, utilizzeremo il linguaggio C# e la versione 2.0 di .NET.
Nonostante sia possibile utilizzare versioni più recenti di .NET, su alcuni dispositivi questo implica l’installazione preventiva dell’apposito runtime. Ho quindi scelto la versione 2.0 in quanto il suo runtime è già preinstallato su tutti i dispositivi dotati della V.6 di Windows Mobile.
Ciò che andremo a realizzare è un semplicissimo software, dotato di un singolo bottone che, una volta premuto mostra la scritta :
“Hello World!”
L’interfaccia di questo software verrà disegnata in maniera visuale, il codice inserito utilizzando un comodo IDE. Infine, il programma, NON necessiterà di alcuna installazione, sarà sufficiente copiarlo sul dispositivo per renderlo immediatamente disponibile.
Cosa serve per sviluppare su Windows Mobile?
Prima di poter realizzare il nostro programma su Windows Mobile è necessario installare i runtime e l’ambiente di sviluppo.
Come già detto in precedenza lavoreremo con .Net V.2.0, il quale garantisce una
maggiore compatibilità e semplicità di distribuzione ed installazione.
Scarichiamo ed installiamo, sul nostro PC (dotato di Windows), nell’ordine :

.Net Framework 3.5. Mi rendo conto che può sembrare strano ma, l’utilizzo di questa versione di .Net garantisce la possibilità di utilizzare SharpDevelop come IDE per lo sviluppo.

PowerToys for .Net Compact Framework 3.5;
Non serve altro per poter iniziare i nostri esperimenti.

Nella pratica, i file da scaricare ed installare saranno :
- dotnetfx35setup.exe;
- netcfv35powertoys.msi;
- netcfsetupv2.msi;
- SharpDevelop_3.2.0.5777_Setup.msi.
Tutto ciò è utilizzabile su qualsiasi sistema Windows a partire dalla versione XP.
Come costruire un progetto per lo sviluppo su Windows Mobile?
Iniziamo.

Completate le 4 installazioni, troveremo sul desktop l’icona di SharpDevelop. Clicchiamoci sopra, ed avviamo l’IDE.

La prima schermata ci consentirà di costruire un nuovo progetto utilizzando il
tasto Nuova Soluzione.

Una volta comparsa la maschera Nuovo Progetto, nella sezione C#->Compact Framework selezioniamo Applicazione Windows, inseriamo il nome del progetto (nel mio caso HelloWorld), infine premiamo Crea.

Fatto ciò, ci troveremo all’interno del codice generato automaticamente da SharpDevelop.

Saremo all’interno del codice relativo alla finestra principale della nostra nuova applicazione, MainForm. Per vedere come apparirà la nostra finestra utilizziamo la pagina, posta in basso, Disegna.
Saremo così di fronte alla nostra nuova finestra HelloWorld.
Bene. In teoria potremo subito eseguire una compilazione senza alcun problema. Purtroppo, cosi facendo, compileremo il nostro software per .Net Framework 3.5 e non per la versione 2.0, inoltre verrebbe generata un’applicazione standard e non specifica per la piattaforma Compact (utilizzata sui dispositivi mobili).
Per compilare utilizzando la modalità Compact Framework 2.0 è necessario intervenire sulle proprietà del progetto appena creato. Clicchiamo con il tasto destro su HelloWorld, nel pannello Progetti (a sinistra), quindi selezioniamo l’opzione Proprietà.

Comparso il pannello di configurazione, apriamo la scheda Compilazione e come Framework di destinazione selezioniamo Compact Framework 2.0.

Fatto ciò, salviamo e procediamo alla compilazione, utilizzando la voce Genera Soluzione, presente nel menu Genera.
Come potremo vedere (in basso), l’operazione è stata completata con successo. In questo momento abbiamo un programma con una semplice finestra, completamente vuota. Praticamente inutile per qualsiasi scopo.
Aggiungiamo ora qualcosa di più significativo. Andremo ad inserire un bottone che, quando cliccato, visualizzerà il messaggio Hello World!.
Procediamo.

Posizioniamoci sul file MainForm.cs nella sezione Disegna, apriamo il pannello Strumenti (sulla sinistra), inseriamo un Button nella nostra dialog. Una volta aggiunto il bottone, questo verrà automaticamente chiamato Button1.

Non ci rimane che fare doppio clic sul pulsante appena inserito, quindi digitare il codice che mostrerà il Nostro messaggio di saluto.
Salviamo.

Proviamo ora a compilare. Sorpresa! Abbiamo Errore!
Questo errore deriva dalla errata generazione automatica del codice relativo alla finestra (colpa di SharpDevelop). La soluzione è molto semplice, ci basterà commentare la linea 49 del file MainFormDesigne.cs. Per trovare tale linea basterà fare doppio clic sul messaggio di errore, in questo modo saremo posizionati esattamente sul codice incriminato.

Non ci rimane che commentare la linea cattiva e ricompilare. Ecco fatto, Compilazione completata con successo.

Per concludere la fase di sviluppo facciamo una prova avviando l’applicazione tramite un semplice clic sulla freccia verde posta nella barra degli strumenti.

Come potremo constatare si aprirà la nostra finestra e, cliccando su Button1, potremo ammirare il nostro Hello World!.
Come installare il nostro software sul dispositivo mobile(smartphone)?
Avendo sviluppato la nostra applicazione con .Net Framework V.2.0 non ci sarà alcuna installazione o verifica da fare prima di poterla utilizzare. Qualsiasi dispositivo dotato di Windows Mobile 6.X sarà in grado di eseguirla senza problemi.
Vediamo come fare.
Colleghiamo il nostro smartphone al PC e copiamo il file eseguibile HelloWorld.exe in una qualsiasi cartella del nostro dispositivo.
Scolleghiamo lo smartphone e, utilizzando il gestore file individuiamo l’eseguibile appena copiato, infine, eseguiamolo!
Ecco fatto! Provare per credere…
Troppo difficile?
Naturalmente quanto mostrato è un microesempio utile soprattutto per comprendere il processo di sviluppo di base.
Lavorando su applicazioni più complesse ci si renderà conto che non sono tutte “rose e fiori” ma, spesso e volentieri, ci si scontrerà con problematiche molto complesse.
Tanto per fare alcuni esempi, lo sviluppo per smartphone richiede un attento uso della memoria al fine di minimizzare qualsiasi spreco (non abbiamo Gb di RAM a disposizione), inoltre una attenzione particolare va posta alle performance, in quanto gli attuali processori per dispositivi mobili non sono certo all’altezza dei cugini per PC.
Avendo a disposizione un .Net Framework di tipo Compact, alcune funzionalità non saranno consentite cosa che, alle volte, costringe ad implementazioni personali di funzioni non supportate.
Infine, bisognerà fare molta attenzione all’interfaccia utente. Come vedrete le risoluzioni utilizzate da Windows Mobile sono diverse e molto differenti tra loro, in molti casi non si può certo dire che lo spazio abbondi, inoltre a seconda del tipo di dispositivo (touch o meno) sarà utile disegnare l’interfaccia per l’utilizzo con le dita o tramite i tasti di un tastierino fisico.
Insomma, per fare le cose per bene è necessaria, come al solito, molta attenzione, uno studio costante e l’esperienza che, nel tempo, si accumulerà.
Buon divertimento a tutti!
Aggiungi un commento
Completa la form sottostante per aggiungere un commento




Scrivimi / Info
R.R. su Google+
Seguimi su Twitter
Feed RSS
Mercoledì, Ottobre 17, 2012 - 16:48:52
Ciao ottima guida però ricevo questo errore:
The “AddHighDPIResource” task failed unexpectedly.
System.ArgumentNullException: Il valore non può essere null.
Nome parametro: path1
in System.IO.Path.Combine(String path1, String path2)
in Microsoft.CompactFramework.Build.Tasks.Utilities.GetFrameworkSdkBinPathForBinary(String binary)
in Microsoft.CompactFramework.Build.Tasks.AddHighDPIResource.Execute()
in Microsoft.Build.BuildEngine.TaskEngine.ExecuteInstantiatedTask(EngineProxy engineProxy, ItemBucket bucket, TaskExecutionMode howToExecuteTask, ITask task, Boolean& taskResult) (MSB4018)
Sono su Windows 7 e ho lanciato l’IDE con privilegi amministrativi, cosa può essere
Mercoledì, Ottobre 17, 2012 - 17:16:56
Sono sempre io ho risolto aggiungendo la seguente stringa nel file .csproj “<HighDPIResAware>1</HighDPIResAware>” La stringa dev’essere aggiunta nel primo propety group. It WORKS!