CERCA

Il Corso

La fine del precedente millennio è stata sicuramente caratterizzata da Internet: una vera e propria rivoluzione non solo tecnologica ma soprattutto culturale. La possibilità aperta a chiunque di pubblicare informazioni accessibili da una qualunque parte del mondo fa consentito una maggiore diffusione della informazione e una migliore distribuzione e condivisione della conoscenza.

Dal punto di vista informatico, Internet ha introdotto un nuovo paradigma per lo sviluppo delle applicazioni, accompagnato da nuove tecnologie e scelte architetturali. Da programmi desktop in esecuzione sui diversi PC siamo passati ad applicazioni web accessibili ovunque attraverso quello che si definisce thin-client, categoria di cui il browser p il principale esponente. Nonostante non sia passato molto tempo dall’avvento di Internet, stiamo ora vivendo una nuova rivoluzione: quella dei dispositivi mobili. Quelle che prima erano informazioni e applicazioni raggiungibili ed eseguibili attraverso un qualunque PC ora sono accessibili attraverso dispositivi sempre più potenti che hanno la fondamentale caratteristica di essere mobili e di dimensioni sempre più ridotte. Ciò che fin ora è stato considerato un Personal Computer sta diventando sempre più personale ma non solo perché utilizzato da un unico utente, ma proprio perché ci accompagna ovunque in ogni momento della giornata. Ciò che prima stava sulla nostra scrivania ora può stare nel nostro taschino.

Stiamo parlando di dispositivi mobili, di ciò che prima indicavamo in modo riduttivo con il termine "cellulare", ma che ora stanno diventando veri e propri PC portatili in cui la funzione di telefono, sebbene fondamentale, è solo una delle tante disponibili.

Per gi sviluppatori si sta aprendo quindi un nuovo orizzonte: quello della creazione e dello sviluppo di applicazioni che sfruttino le caratteristiche di questi dispositivi caratterizzati dall’essere definiti “a risorse limitate”. Ovviamente un PC di media potenza ha caratteristiche software e hardware superiori a quelle di un qualunque dispositivo mobile attuale. Si stima che la potenza di calcolo di un cellulare di nuova generazione sia paragonabile a quella di un PC di 8 o 10 anni fa.

In questo contesto i principali costruttori di cellulari hanno messo a disposizione degli sviluppatori i propri sistemi operativi, ciascuno con il proprio ambiente di sviluppo, i propri tool e il proprio linguaggio di programmazione. Nessuno di questi però si è affermato come standard. Per esempio, per realizzare un’applicazione nativa (quindi non web) per iPhone è necessario disporre di un sistema operativo Mac OS C, su cui i’iPhone si basa, oltre che la conoscenza del linguaggio Objective-C (un’estensione del linguaggio C con caratteristiche Object Oriented) e il nuovo linguaggio Swift. Per lo sviluippo di un’applicazione per un dispositivo Nokia, basata sul sistema operativo Symbian, è necessario utilizzare come linguaggio un dialetto del C++. Altra alternativa è quella di Windows Mobile di Microsoft, per il quale i linguaggi di programmazione possono essere più di uno: dal Visual Basic .net al C#. Non possiamo ovviamente trascurare la piattaforma J2ME e la neonata JavaFX. Oltre a questi vi è un insieme di sistemi operativi proprietari la cui conoscenza è spesso limitata ai soli vendor.

Ciò che si vuole sottolineare è comunque la presenza di diversi ambienti e tecnologie che uno sviluppatore deve conoscere per poter realizzare un’applicazione per un particolare dispositivo mobile. A seconda del tipo di sistema operativo, è necessario acquisire la conoscenza di un ambiente, di una piattaforma e di un linguaggio.