HTML 5 & JS per le Mobile Apps

Html5 & Mobile AppOrmai l’HTML 5 è una realtà di fatto. Si aprono dunque nuove possibilità di sviluppo, l’HTML5 supporta una serie di nuove funzionalità che l’ormai collaudato e conosciutissimo HTML 4.x non può avere.
HTML 5 è dunque, di fatto, un linguaggio nuovo; sorge spontanea a questo punto una domanda: è possibile sviluppare applicazioni e siti web compatibili per smartphone e tablet usando l’HTML5?

 

In effetti se si prova a fare un breve quadro generale, vediamo che nel mondo degli Smartphone e dei Tablet il predominio si divide in soli due sistemi operativi iOS (per iPhone & iPad) ed Android. Come forse alcuni di voi gia’ sanno, sviluppare una App per iPhone/iPad richiede la conoscenza dell’Objective C++, mentre per Android serve avere una qual certa conoscenza di Java. Seppure Java e l’Objective C++ siano parenti, i metodi di programmazione sono sostanzialmente diversi. Quindi se la nostra esigenza è quella di sviluppare un’ applicazione per entrambi i sistemi operativi, perchè c’interessa coprire il 90% del mercato, saremmo costretti a programmare due differenti apps: questo vorra’ dire impiegare il doppio del tempo nello sviluppo, doppia manutenzione ed altre problematiche che non affronteremo adesso.

E’ a questo punto che l’HTML5 ci puo’ venire prontamente in aiuto: ossia perchè sviluppare due interfacce grafiche quando invece possiamo realizzarne una in HTML5 e javascript e ridurre cosi’ il core (o la Business Logic) dell’ applicazione a poche “righe di codice”? Se infatti un’ app per smartphone, non fa nient’altro che interrogare una base di dati (magari su XML) e visualizzare i vari risultati delle interrogazioni, l’HTML5 e Javascript saranno più che sufficienti per tutti i nostri scopi.

Lo sviluppo per HTML5+Javscript per dispositivi mobile è già una realtà e, a tale proposito, vi vorrei indicare due interessanti framework adatti anche allo sviluppo per mobile:

Jquery Mobile

Ext Js Touch

Se decidete di provare le demo di questi due framework javascript, ricordatevi di utilizzare un dispositivo Touch, altrimenti non funzionerà quasi nulla! Come potrete vedere dalle demo dei due framework le interfacce realizzate non hanno nulla da invidiare a quelle delle app programmate con Objective C++ e Java.

Nel caso in cui dobbiate installare un webserver sul vostro Android, vi consiglio di provare il seguente prodotto:

i-jetty

In questo modo potrete fare girare la vostra app in HTML 5 + Javascript senza dover essere collegati ad Internet.

Buon divertimento !

Programmare pensando da Sistemista

 

linux-python-logoUna domanda che mi faccio da quando lavoro come sistemista e’ : “quale linguaggio di programmazione dovrei imparare ??“; e’ una domanda facile da formulare, che dovrebbe presupporre un’altrettanto facile risposta, ma ahimè non é così semplice, perlomeno non nel mio caso. Certo, i linguaggi di programmazione non mancano ed in giro ci sono dozzine di fonti di ottima qualità, ma penso comunque che per poter fornire un consiglio si dovrebbe sempre poter conoscere bene chi pone la domanda, ossia:

 

  • il suo background è scientifico o umanistico?
  • conosci bene l’inglese? (poiche’ la maggior parte delle fonti che consiglierei sono in inglese)
  • qual’è la tua età? ecc…!

…..insomma sono tanti i fattori da considerare e tutti hanno il loro peso da non sottovalutare.
In tempi non troppo lontani programmare significava conoscere il funzionamento dei computer a basso livello, comprendere a fondo la loro teoria e la loro struttura. Ma oggi è molto diverso. La gran parte dei programmatori (web 3.0) sono orientati alle applicazioni web/cloud ed i vecchi linguaggi macchina, tipo Assembly, li ha solo sentiti nominare a scuola. Questo anche perche’ i linguaggi ad alto livello (Java, Python…) ci permettono di concentrarci sulla soluzione dei problemi (gli algoritmi) delegando al compilatore la creazione delle istruzioni di basso livello.

Certo questa e’ una buona notizia ma, partendo da me stesso, se non fai il programmatore ed un linguaggio di programmazione ti serve per crearti scripts di ottimizzazione dei sistemi , non e’ pensabile dover conoscere 5/6 linguaggi diversi ecco perche’ in campo sistemistico resistono gli ottimi script Bash oppure l’ardimentoso Perl.

Se mi avete seguito e siete almeno parzialmente d’accordo con l’analisi fatta vi ricompenso con lo stesso consiglio che mi sono dato qualche settimana fa: Python.

Non mi voglio dilungare nella presentazione di questo linguaggio di cui credo abbiate per lo meno sentito nominare, le cui caratteristiche principali di funzionalita’, operabilita’, performance ecc… lo rendono tra i migliori da imparare anche per usi che esulano dalla programmazione allo stato puro; per altri dettagli od info potete leggere l’articolo dal seguente URL “caratteristiche del linguaggio Python“.

Quello che voglio segnalare e’ che molto spesso nella grande, a volte troppa, quantita’ di materiale recuperabile, spesso non si trova qualcosa adatto davvero alle nostre esigenze e che renda l’avvicinamento e la comprensione di un nuovo linguaggio facile, senza annoiare.

Pensare da Informatico e’ un libro che svolge bene il suo compito avvicinando i nuovi utenti a questo ottimo linguaggio in modo guidato e lineare proprio perche’ frutto delle esigenze di un’insegnante che voleva spiegare ai propri alunni un nuovo modo di programmare. Il libro originale e’ in inglese ma ne esiste un’ottima versione PDF tradotta in Italiano, questo e’ il link per il download PDF , mentre questo e’ il link per la versione WEB .

La versione originale “How to Think a Computer Scientist ” sottotitolo (Learning with Python) 3rd edizione e’ scritta da [Peter Wentworth, Jeffrey Elkner, Allen B. Downey, and Chris Meyers ] .

Buona lettura !