4. Parleremo di
1. Il progetto
2. L’architettura
3. Tecnologie Google per lo sviluppo
1. Google App Engine
2. Google Web Toolkit
3. Android SDK
4. Sviluppo web oriented
1. Web compliant
2. API REST
3. Formato JSON
4. Autenticazione
5. Modello di sviluppo
13. BACKEND: Google App Engine
Cloud by Google: Platform as a Service
• Piattaforma pronta per la
pubblicazione
14. BACKEND: Google App Engine
Cloud by Google: Platform as a Service
• Piattaforma pronta per la
pubblicazione
• Autoscaling delle applicazioni
15. BACKEND: Google App Engine
Cloud by Google: Platform as a Service
• Piattaforma pronta per la
pubblicazione
• Autoscaling delle applicazioni
Offre account gratuiti limitati
16. BACKEND: Google App Engine
Cloud by Google: Platform as a Service
• Piattaforma pronta per la
pubblicazione
• Autoscaling delle applicazioni
Offre account gratuiti limitati
• Limiti giornalieri sulle risorse
17. BACKEND: Google App Engine
Cloud by Google: Platform as a Service
• Piattaforma pronta per la
pubblicazione
• Autoscaling delle applicazioni
Offre account gratuiti limitati
• Limiti giornalieri sulle risorse
• Pagamento a consumo
19. App Engine - Features
Ricca offerta di API e tecnologie
20. App Engine - Features
Ricca offerta di API e tecnologie
• Linguaggi supportati: Java, Python
21. App Engine - Features
Ricca offerta di API e tecnologie
• Linguaggi supportati: Java, Python
• Supporto a diverse tecnologie out-of-the-box
22. App Engine - Features
Ricca offerta di API e tecnologie
• Linguaggi supportati: Java, Python
• Supporto a diverse tecnologie out-of-the-box
• Datastore
23. App Engine - Features
Ricca offerta di API e tecnologie
• Linguaggi supportati: Java, Python
• Supporto a diverse tecnologie out-of-the-box
• Datastore
• Memcache
24. App Engine - Features
Ricca offerta di API e tecnologie
• Linguaggi supportati: Java, Python
• Supporto a diverse tecnologie out-of-the-box
• Datastore
• Memcache
• XMPP server
25. App Engine - Features
Ricca offerta di API e tecnologie
• Linguaggi supportati: Java, Python
• Supporto a diverse tecnologie out-of-the-box
• Datastore
• Memcache
• XMPP server
• Task Queue
26. App Engine - Features
Ricca offerta di API e tecnologie
• Linguaggi supportati: Java, Python
• Supporto a diverse tecnologie out-of-the-box
• Datastore
• Memcache
• XMPP server
• Task Queue
• Accesso a API Google (autenticazione)
28. App Engine - Features
Ambiente completo per lo sviluppo
29. App Engine - Features
Ambiente completo per lo sviluppo
• SDK per i linguaggi supportati ufficialmente Java, Python
30. App Engine - Features
Ambiente completo per lo sviluppo
• SDK per i linguaggi supportati ufficialmente Java, Python
• Replica locale dei servizi disponibili in produzione
31. App Engine - Features
Ambiente completo per lo sviluppo
• SDK per i linguaggi supportati ufficialmente Java, Python
• Replica locale dei servizi disponibili in produzione
• Software CLI per la pubblicazione
32. App Engine - Features
Ambiente completo per lo sviluppo
• SDK per i linguaggi supportati ufficialmente Java, Python
• Replica locale dei servizi disponibili in produzione
• Software CLI per la pubblicazione
• Forte integrazione con Eclipse tramite plugin ufficiali
33. App Engine - Features
Ambiente completo per lo sviluppo
• SDK per i linguaggi supportati ufficialmente Java, Python
• Replica locale dei servizi disponibili in produzione
• Software CLI per la pubblicazione
• Forte integrazione con Eclipse tramite plugin ufficiali
Limiti della piattaforma
34. App Engine - Features
Ambiente completo per lo sviluppo
• SDK per i linguaggi supportati ufficialmente Java, Python
• Replica locale dei servizi disponibili in produzione
• Software CLI per la pubblicazione
• Forte integrazione con Eclipse tramite plugin ufficiali
Limiti della piattaforma
• No threads
35. App Engine - Features
Ambiente completo per lo sviluppo
• SDK per i linguaggi supportati ufficialmente Java, Python
• Replica locale dei servizi disponibili in produzione
• Software CLI per la pubblicazione
• Forte integrazione con Eclipse tramite plugin ufficiali
Limiti della piattaforma
• No threads
• No database SQL
36. App Engine - Features
Ambiente completo per lo sviluppo
• SDK per i linguaggi supportati ufficialmente Java, Python
• Replica locale dei servizi disponibili in produzione
• Software CLI per la pubblicazione
• Forte integrazione con Eclipse tramite plugin ufficiali
Limiti della piattaforma
• No threads
• No database SQL
• No accesso al filesystem
37. App Engine - Features
Ambiente completo per lo sviluppo
• SDK per i linguaggi supportati ufficialmente Java, Python
• Replica locale dei servizi disponibili in produzione
• Software CLI per la pubblicazione
• Forte integrazione con Eclipse tramite plugin ufficiali
Limiti della piattaforma
• No threads
• No database SQL
• No accesso al filesystem
• Tutti i task hanno un tempo limite
45. GWT - Features
Plain Old Java: ambiente di sviluppo familiare (oggetti, test...)
46. GWT - Features
Plain Old Java: ambiente di sviluppo familiare (oggetti, test...)
Utilizza servlet per comunicazioni RPC client/server
47. GWT - Features
Plain Old Java: ambiente di sviluppo familiare (oggetti, test...)
Utilizza servlet per comunicazioni RPC client/server
Permette l’utilizzo di interfacce condivise tra client e server
48. GWT - Features
Plain Old Java: ambiente di sviluppo familiare (oggetti, test...)
Utilizza servlet per comunicazioni RPC client/server
Permette l’utilizzo di interfacce condivise tra client e server
Molti widget già pronti (tabelle, popup ...)
49. GWT - Features
Plain Old Java: ambiente di sviluppo familiare (oggetti, test...)
Utilizza servlet per comunicazioni RPC client/server
Permette l’utilizzo di interfacce condivise tra client e server
Molti widget già pronti (tabelle, popup ...)
Integrazione Eclipse - Browser per debugging
54. MOBILE DEVICE: Android
Open-source
Disponibile per molti device
Sviluppo e distribuzione gratuita
55. MOBILE DEVICE: Android
Open-source
Disponibile per molti device
Sviluppo e distribuzione gratuita
Grande visibilità nel Market
56. MOBILE DEVICE: Android
Open-source
Disponibile per molti device
Sviluppo e distribuzione gratuita
Grande visibilità nel Market
Poca qualità della concorrenza
61. Android - Features
Sviluppo in Java
SDK ufficiale con estensioni delle classi
JVM dalvik depotenziata (classi in blacklist)
62. Android - Features
Sviluppo in Java
SDK ufficiale con estensioni delle classi
JVM dalvik depotenziata (classi in blacklist)
Necessario Eclipse con l’emulatore (ottima integrazione!)
63. Android - Features
Sviluppo in Java
SDK ufficiale con estensioni delle classi
JVM dalvik depotenziata (classi in blacklist)
Necessario Eclipse con l’emulatore (ottima integrazione!)
UIDesigner povero (per ora), necessario XML a mano
64. Android - Features
Sviluppo in Java
SDK ufficiale con estensioni delle classi
JVM dalvik depotenziata (classi in blacklist)
Necessario Eclipse con l’emulatore (ottima integrazione!)
UIDesigner povero (per ora), necessario XML a mano
Viste utente diventano “Activities”
74. FRONTEND: HTML (area utente)
Standard e compatibile con ogni device
75. FRONTEND: HTML (area utente)
Standard e compatibile con ogni device
Personalizza la UX per i diversi media
76. FRONTEND: HTML (area utente)
Standard e compatibile con ogni device
Personalizza la UX per i diversi media
Leggero da scaricare dal browser
77. FRONTEND: HTML (area utente)
Standard e compatibile con ogni device
Personalizza la UX per i diversi media
Leggero da scaricare dal browser
Veloce da sviluppare
100. Modello di sviluppo
Analisi [30 ore a persona]
Progettazione [40 ore a persona]
Progettazione di Dettaglio [30 ore a persona]
101. Modello di sviluppo
Analisi [30 ore a persona]
Progettazione [40 ore a persona]
Progettazione di Dettaglio [30 ore a persona]
Codifica [50 ore a persona]
102. Modello di sviluppo
Analisi [30 ore a persona]
Progettazione [40 ore a persona]
Progettazione di Dettaglio [30 ore a persona]
Codifica [50 ore a persona]
Verifica [25 ore a persona]
113. Contro
1)Verbosità linguaggio Java e suoi framework
2)Programmazione mobile non cross-platform
3)Molte ore dedicate alla documentazione
114. Contro
1)Verbosità linguaggio Java e suoi framework
2)Programmazione mobile non cross-platform
3)Molte ore dedicate alla documentazione
4)Google App Engine non configurabile