Linguaggio Java e Android Il web e Java dal 95 ad oggi Da j2me ad Android Html javascript css Applicazioni web e dispositivi mobili Linguaggio Java ● creato da James Gosling nel 1995 ● Sun microsytem, 2007 licenza GPL ● Oracle acquista java nel 2010 ● deriva dal c++ ● simile a C#, J++, J# (microsoft .NET) ● Object Oriented (ereditarietà singola, polimorfismo, fortemente tipizzato) ● compatibilità diverse piattaforme le versioni di Java 1.0 Oak, anno 1996 1.2 Playground, anno 1998 1.3 Kestrel, anno 2000 1.4 Merlin, anno 2002 1.5 Tiger, anno 2004 1.6 Mustang, anno 2006 1.7 Dolphin, anno 2011 1.8 Spider, anno 2014 Nota: spessi si dice solo il secondo numero es: java 8 java 5 ● ● ● ● ● annotazioni generics autoboxing enumeration varargs java 7 ● ● ● ● ● costrutto switch con stringhe nuovo costutto catch (con catch multipli) gestione file (try-with-resources) Diamond syntax (sintassi del diamante) utilizzo underscore nei letterali numerici Java 8 ● espressioni lamba ● integrazione con javascript ● nuove api per data e ora Le nuove caratteristiche renderanno java un po meno “verboso”. Sarà inoltre possibile creare dei pacchetti di installazione più compatti. Piattaforme e sigle JDK: Java Development Kit JRE: Java Runtime Environment JVM: Java Virtual Machine JSE: Standard Edition JEE: Enterprise Edition JME: Java Mobile Edition o Micro Edition HTML ● Hyper Text Markup Language ● creato da Tim Berners-Lee, nel 1989 al CERN di ginevra ● non è un linguaggio di programmazione, ma di contrassegno ● utilizzato da un Browser Versioni HTML ● ● ● ● ● ● ● ● ● ● 1991 Mosaic (NCSA) il primo browser 1993 HTML (link ipertestuali) 1995 HTML 2 (immagini, attrib. carattere) 1996 CSS1 W3C 1997 HTML 3.2 (table, frame) 1999 HTML 4 (fogli di stile,scripting) 2000 XHTML (html + xml) 2004 CSS2 2011 HTML 5 (???) CSS3 Javascript ● sviluppato da Brendan Elch della Netscape Comunication, 1994 ● primi standard 1997 e 1999 Ecmascript ● ultimo standard 2008 Ecmascript v5 ● linguaggio di scripting, integrato in un altro programma ● utilizzato pagine web, flash, pdf, ecc. Android ● sviluppato da google nel 2007, per dispositivi mobili ● HTC Dream, primo dispositivo con Android, 2008 ● Android è basata su un kernel linux ● le app sono normalmente distribuite come pacchetti apk e derivano da programmi scritti in java Caratteristiche Android ● Accesso multitouch (strisciate, tocchi e pizzichi) ● sensori hardware: telecamere, giroscopi, accellerometri, sensori di prossimità, microfoni ● integrazione con reti wi-fi, bluetooth e telefoniche ● applicazioni girano nella Dalwik Virtual Machine Versioni di Android 1.0, htc dream, 2008 2.0, eclair, 2009 2.2, froyo, 2010 2.3, gingerbread, 2011 3.0, honeycomb, 2011 4.0, ice cream sandwich, 2011 4.1, 4.2, 4.3 jelly bean, 2012-3 4.4 kitKat, 2014 giugno 2014: 4.4.4 file apk ● pacchetto autoinstallante ● file compresso (.zip) contiene: ○ ○ ○ ○ ○ cartella META-INF cartella res file classes.dex file resources.arsc file AndroidManifest.xml sicurezza su android ● ogni applicazione deve dichiarare i permessi di cui ha bisogno per funzionare (es: accesso rubrica, accesso rete, ecc.) ● le app su google play sono automaticamente testate ● antivirus per android ● ambienti di emulazione (es: bluestack) iPhone e iOS 2007 Steve Jobs presenta iPhone 2008 iPhone 3G 2008 iPhone 3GS 2010 iPhone 4 2011 iPhone 4S 2012 iPhone 5 2013 iPhone 5S e 5C Sistema opertaivo iOS, variante de MAC OS X Symbian ● derivato da EPOC, s.o. utilizzato dai palmari Psion (fine anni ’90) ● utilizzato da sony ericson e nokia fino al 2011 ● nel 2013 nokia passa definitivamente a windows phone ● attualmente non è supportato da alcun hw recente Whidows phone 7 ● presentato nel 2010 ● deriva, ma non è compatibile col precedente windows mobile ● nel 2011 è stato introdotto dai cell Nokia Lumia ● versione 7.5 Mango (fine 2011) ● versione 7.8 (2013) Creare applicazioni per smartphone ● creare applicazione “native” ○ alta complessità ○ problemi di compatibilità e portabilità dell’ applicazione ○ linguaggio Java (eclipse + plugin android) ● creare pagine web ○ html, css, javascript ○ complessità media (phonegap) ○ possibilità di utilizzo strumenti visuali (jquery mobile, Buzztouch e Sencha Touch, d) Craere contenuti per smartphone ● esistono vari metodi del tutto visuali per creare pagine web (es: jimdo, joomla, wordpress, ecc.) ● ugualmente esistono modi per creare contenuti per gli smartphone (es: GoodBarber, AppInventor, AppMakr, ShoutEm, Mippin, Genwi, BuildAnApp, Apps Builder, MoFuse, Wapple) Le app ● su appstore (iphone) 900’000 apps ● su google play ci sono più di un milione di apps! ● una nuova app: ○ ○ ○ ○ ○ ○ progetto (indagine di mercato, benchmarketing) sviluppo testing pubblicazione manutenzione (patch, nuove release) pubblicità Schermo schermo dispositivi android: l’80% dei dispositivi ha una dimensione dai 3.5 ai 7 pollici (da 7 a 17cm) Densità dello schermo ● non è facile progettare applicazioni che si vedano “bene” su qualsiasi dispositivo ● è conveniente mantenere le proporzioni ● concetto di densità: Density-Independent Pixel (dp) è equivalente ad 1px su uno schermo da 160dpi; il s.o. in automatico calcola i pixel effettivi Tipi di interfaccia Esistono varie possibilità per mostrare le informazioni. ● tabs ● paginazione a link ● scorrimento della pagina Esistono tecniche di caricamento sincrono (tutti i dati vengono caricati in un’unico istante) e asincrono (i dati vengono caricati su richiesta) Tipi di applicazioni Portable: non ha bisogno di installazione Standalone: non ha bisogno di altri supporti (es rete) Web Application: l’applicazione gira su un server web ed è utilizzata dai utenti (client) tramite un browser Per far girare una web application occorre creare un server web locale, utilizzando ad esempio wamp, server2go , WOS, ecc. Tecnologia AJAX ● Asynchronous JavaScript and XML ● Tecnologia che permette di aggiornare solo alcune parti della pagina, rendendo molto più veloce la fruizione del contenuto da parte dell’utente. ● Molto utilizzata, utilizza necessariamente un web server ● Viene solitamente utilizzata all’interno di pagine html tramite codici javascript Tecnologia client server ● il Client chiede, il Server risponde ● è la tecnologia di base delle pagine web: ○ il client preme un link sulla pagina web e il browser invia una nuova richiesta al server ○ il server elabora la richiesta e trasmette al client (al browser) il contenuto richiesto ○ il browser (client) riceve le informazioni e le visualizza Streaming ● Tecnologia utilizzata per la fruizione di flussi molto grandi di dati ● I dati vengono elaborati dal client man mano che arrivano ● Non è necessario scaricare l’intero flusso per poterlo visualizzare ● Il server deve essere predisposto per l’ erogazione di contenuti in streaming (protocollo rtp: o rtsp:)