Alessandro Forte - Piattaforma Android

586 views

Published on

Alessandro Forte, co-fondatore di DotNetCampania, illustra ai soci dell’associazione la piattaforma Android e come sviluppare applicazioni per tale piattaforma.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
586
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Alessandro Forte - Piattaforma Android

  1. 1. Android<br />Forte Alessandro – DotNetCampania Team<br />
  2. 2. SPEAKER<br /> Alessandro ForteProject Lead @ MerqurioPharma<br />Contatti : <br />WebSite : http://www.alessandroforte.it/<br />E-Mail : informazioni@alessandroforte.it<br />MSN : forte_alessandro@hotmail.com<br />
  3. 3. AGENDA<br />Agenda della giornata:<br /><ul><li>Cos’è Android?
  4. 4. Perché Android?
  5. 5. SDK e Tools
  6. 6. UI e Widgets
  7. 7. Resources e animazioni
  8. 8. Debugging e Packaging
  9. 9. Market
  10. 10. Demo Applicazione</li></li></ul><li>COSA E’ ANDROID<br />Sistema operativo mobile “open-source”<br />Software stack completo<br />Linux kernel 2.6<br />Java middleware e framework<br />coreapplications<br />Google & OHA<br />
  11. 11. PERCHE’ ANDROID<br />Open-Source<br />Costa 0<br />Libertà di sviluppo e nessun Dev-Cost-Startup<br />Base solida: Linux kernel<br />Framework basatosu Java<br />Aumenta la produttività degli utenti<br />Sostituzione delle CoreApps<br />Notevole personalizzazione<br />In fondo è realizzato da Google<br />Non solo destinato agli smartphone<br />
  12. 12. ARCHITETTURA<br />
  13. 13. APPLICATION FRAMEWORK<br />
  14. 14. FRAMEWORK JAVA<br />Java: Tutto sommato una scelta ragionevole<br />Mainstreamlanguage<br />millionsofdevelopers<br />Dalvik VM: Una VM veloce<br />Architetturamodularedell’App<br />Viste e servizi, non black-boxes monolitiche<br />Looselycoupled<br />Ogni applicazione lancia un processo<br />Multitasking e Background Processing<br />
  15. 15. QUICKSTART<br />Installare JDK 1.5<br />Installare Android SDK<br />Installare eclipse<br />Leggere la documentezione dell’SDK<br />Guardaregliesempi e le demo<br />Leggeresusitispecializzati per gli advanced stuff<br />Testaresu un dispositivo G1 o un DevPhone<br />Pubblicare l’app sul Market<br />
  16. 16. SDK E TOOLS<br />Tutte le piattaformesonosupportate: Linux, Windows e Mac<br />Nessuna installazione, solo Unzip<br />Pulito e Compatto<br />81.4MB - ver1.1<br />Ottima documentazione<br />
  17. 17. EDITOR ECLIPSE<br />IDE Java piùpopolare<br />Tantissime features di base<br />Estendibile con plugins<br />Refactoring integrato<br />Debugging integrato<br />Documentazione integrata<br />ADT: Android Development Tools plugin<br />
  18. 18. EMULATORE<br />Basatosul QEMU per iprocessori ARM<br />Esegueilbootupdi un kernel linuxvero<br />Permette di utilizzare la Camera<br />Permette un semplice utilizzo della retenetworking<br />Permette la registrazione audio <br />Cambia l’orientamento dello schermo con: CTRL+F12<br />Installa le apps tramite browser o adb<br />quindi…SE POTETE USATE IL DEV-PHONE !!!<br />
  19. 19. STRUMENTI DELL’SDK<br />Tutti gli strumenti sono disponibile dalla cmdline<br />Eclipse è raccomandato, ma non obbligatorio<br />ADB - Android Debug Bridge<br />adb push - transfer files from/to emulator<br />adbinstall - installapp<br />adblogcat - view debug log<br />adb shell - linux shell access<br />ddms - DalvikDebug Monitor Server<br />aapt - Android Asset Packaging Tool<br />Draw9patch <br />mksdcard<br />hierarchyviewer<br />sqlite<br />
  20. 20. ADB SHELL<br />
  21. 21. STRUMENTI DI 3° PARTI- SENSORI<br />
  22. 22. UI<br />Tutto bello ma la grafica ???<br />
  23. 23. STRUMENTI DI 3° PARTI- UI BUILDER<br />
  24. 24. ARCHITETTURA DI UN APP<br />Activity<br />View visualizzate<br />Service<br />Servizi in background<br />Content Provider<br />Condivisione dei dati tra le applicazioni<br />Broadcast receivers<br />Ricezione e reazione ad eventi broadcasted<br />Intent<br />Attivazione delle componenti<br />
  25. 25. UI E WIDGETS<br />Ricca API Java per la gestionedella UI<br />layouts e widgets<br />Programmazione dichiarativa – XML<br />Customizzazionedelle features<br />Ereditarietà e Override di un base widget<br />Possibilità di combinare tra di loro widgets esistenti<br />Totalmente personalizzabile nelle view - View::onDraw(Canvas canvas)<br />Apertura del menu contestuale con un “long touch”<br />OpenGL<br />Allostatoattuale non batteiPhone, ma pone delleottimebasi per ilfuturo<br />
  26. 26. UI E WIDGETS<br />Layouts<br />Container per i widgets<br />“XML party” – Simile al XHTML del Web<br />Riferimentodalcodiceai widgets tramite IDs<br />RelativeLayout, siadatta a varischermi e risoluzioni<br />AbsoluteLayout “discouraged”<br />
  27. 27. WIDGETS – LIST VIEW<br />Funzionalità :<br />Scroll e Fling<br />Fading a fine lista<br />Scrollbar automatica<br />Ottimizzazione in cache<br />Customizzabile graficamente<br />
  28. 28. WIDGETS – WEBKIT<br />Funzionalità :<br /><ul><li>Browser embedded
  29. 29. Contenuto locale o remoto
  30. 30. Supporto Javascript e AJAX
  31. 31. Ottimizzazione in cache
  32. 32. “Ponte” per la comunicazione Java/Javascript</li></li></ul><li>WIDGETS – MAPVIEW<br />Funzionalità :<br /><ul><li>Applicazioni location-based
  33. 33. Mappe built-in tramite MapView
  34. 34. Mappe basate sul servizio Google Maps</li></li></ul><li>RESOURCES E ANIMAZIONI<br />Immagini, audio, video, stringhe, layouts, temi … tutto<br />Divisionedelle directory in un alberogerarchico<br />Recupero delle risorse da codice molto semplice: <br />drawables: Resources.getDrawable()<br />XML: Resources.getXML()<br />strings: Resources.getString()<br />raw: Resources.openRawResource()<br />Matching delle risorse “intelligente”<br />values-en/, values-fr/<br />drawable-land/<br />drawable-nokeys/<br />drawable-en-finger/<br />XML onnipresente<br />
  35. 35. RESOURCES E ANIMAZIONI – 9PATCH BITMAPS<br />Stretching delle immagini per i widgets<br />Misurazione del paddingembedded<br />
  36. 36. RESOURCES E ANIMAZIONI<br />Framework per le animazioni built-in<br />Tutte le view animabili semplicemente richiamando View.StartAnimation()<br />Qualsiasitipodianimazionepossibile scale, alpha, transition, rotation<br />Frame-by-Frame<br />Lista sequenziale di immagini<br />
  37. 37. DATABASE<br />Sandboxed file system <br />adbpush<br />adb pull <br />adbdelete<br />SQLite<br />SDcardforbiggerfiles<br />
  38. 38. DEBUGGING e PACKAGING<br />Eclipse & DDMS<br />breakpoints e watches<br />Debug su dispositivo via USB<br />
  39. 39. SICUREZZA<br />Linux user account per App<br />Sicurezza basata sulle AppPermissions<br />Apps firmatedaunaChiavePrivata del Dev<br />Nessuna Central Authority (come iPhone)<br />
  40. 40. DELIVERY APK<br />Zip file<br />XML-files compressi in forma binaria<br />File di Manifest per le AppPermissions<br />Signing con Dev Private Key<br />Dev Public Key inclusa nel package<br />Inclusione automatica degli Assets<br />
  41. 41. MARKET<br />Fino ad Ottobre 2008 eranoammessesolo Apps Free<br />Canone di circa 25$ per licenza dev<br />Percentuale Dev del 70% sulla vendita<br />“Price Range” da $0.99 - $200<br />Abilitazione alla vendita dai 13 anni in su<br />Money-back in 24h<br />Contenuti espliciti non ammessi <br />Upgrade “logico” delle applicazioni gratuito<br />Commenti e ratings degli utenti<br />Percentuale di installazioni/disinstallazioni<br />
  42. 42. FUTURO<br />Nuove versioni dell’SDK<br />Nuovi telefoni e dispositivi supportati<br />Nuove applicazioni interessanti<br />Nuovi giochi “miliardari”<br />e poi …. ???<br />Semplice…COMPRATE e SCARICATE LE MIE APPoppure <br /><ul><li>REALIZZIAMO INSIEME NUOVE APP</li></li></ul><li>DEMO<br />
  43. 43. DEMO<br />
  44. 44. CONCLUSIONE<br />FINEVisita www.alessandroforte.it per visualizzare il mio Portfolio<br />

×