SlideShare une entreprise Scribd logo
1  sur  57
Future platforms: iPhone, Android, Windows Phone, Nokia, Blackberry Lo sviluppo di applicazioni mobili: linguaggi, strumenti e potenzialità Twitter @qmatteoq Blog http://qmatteoq.tostring.it E-mail [email_address] Matteo Pagani Alfredo Morresi Twitter @rainbowbreeze Blog http://www.rainbowbreeze.it E-mail [email_address] Mobile Software Engineers
Linguaggi
iPhone ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
La curva di apprendimento ,[object Object],[object Object],[object Object],[object Object]
Windows Phone 7 ,[object Object],[object Object],[object Object]
La curva di apprendimento ,[object Object],[object Object],[object Object],[object Object]
Android Java 1.5, C/C++ Activity, Service, Broacast Receiver, Content Provider Intent Filters Porting librerie gia' esistenti XML per la grafica e l'animazione Risorse parametrizzabili Library project Junit e AndroidTestCase OpenGL Screen density/orientation
Nokia C'era una volta Symbian S40 ed S60: J2ME, C++  :°( Poi venne QT: Symbian S60, Windows CE, Maemo, Symbian^3, Linux X11, Windows, Mac OS. Android (unofficial) Si sviluppa in C++ QT Mobility API: contatti, location, multimedia Prossima release QT 4.8 (Q2 2011) In: QT Mobility API 1.1, QT Quick (QML), supporto MeeGo Out: supporto Windows CE, S60, Maemo 5
BlackBerry Si sviluppa in J2ME con supporto a: Connected Limited Device Configuration (CLDC) 1.1 Mobile Information Device Profile (MIDP) 2.0 RIM UI Library per keyboard, trackball e touchscreen
MonoTouch allows developers to create C# and .NET based applications that run on Apple's iPhone, iPad, and iPod, reusing both code and libraries that have been built for .NET. MonoTouch e MonoDroid
MonoDroid is a development stack for using C# and core .NET APIs to develop Android-based applications. MonoTouch e MonoDroid
PhoneGap The PhoneGap mission is to Web-enable native device functionality with open standards like HTML, CSS and JavaScript so that you can focus on the app you're building, not on authoring complex platform compatibility layers.
Appcelerator Titanium Mobile HTML, Javascript, [PHP, Ruby & Python for Desktop apps]
Ambienti e strumenti di sviluppo
iPhone ,[object Object],[object Object],[object Object],[object Object],[object Object]
XCode
Interface Builder
L’emulatore
Windows Phone 7 ,[object Object],[object Object],[object Object],[object Object]
Visual Studio 2010
Blend
L’emulatore
Android Eclipse + Android plugin -> ufficialmente supportato da Google NetBeans o altro editor preferito Multipiattaforma (Lin / Win / Mac) Google App Inventor – http://appinventor.googlelabs.com
IDE - Eclipse
Emulatore (e non solo) Mock per GPS, chiamate, batteria, SMS ecc... Si installa Android e si prova su altro hardware
Lot of Free software inside, powered by MIT ;) Google App Inventor
Nokia QT Creator Multipiattaforma (Lin / Win / Mac), ma no Mac per Maemo
QT Creator
Qt Simulator
Blackberry BlackBerry Java Development Environment aka JDE (Windows) Eclipse plugin (Windows) BlackBerry Smartphone Themes and Animated Graphics - crea SVG, importando anche da Adobe Flash e Photoshop BlackBerry Web Plug-in per Visual Studio ed Eclipse – crea browser based app e widget, con debug e deploy
BlackBerry
Sviluppo di applicazioni tradizionali
iPhone ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Windows Phone 7 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Android E' come sviluppare un'applicazione Java, con qualche accortezza Tutta la UI e' gestita per mezzo di file XML o via codice Supporto nativo alla localizzazione, diverse risoluzioni schermo e orientamento del device E' possibile usare librerie esterne e progetti libreria Supporto ai test automatici per la Business Logic e per la UI
Sviluppo di videogames
iPhone ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Windows Phone 7 ,[object Object],[object Object],[object Object],[object Object],[object Object]
Android Nessun supporto particolare alla grafica 2D avanzata Occorre ricorrere al C++ per le performance API Open GL ES (per device mobili) Scarseggiano le librerie di supporto (Rokon) Frammentarieta' delle caratteristiche hw/schermo della piattaforma rendono impegnativo uno sviluppo diffuso
Framework specializzati Unity3D, supporta iPhone, iPad e Android (in beta nella nuova release)
Il device e l'interazione con l'hardware
iPhone ,[object Object],[object Object],[object Object],[object Object],[object Object]
iPhone 2G e 3G ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
iPhone 3GS ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
iPhone 4 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Windows Phone 7 ,[object Object],[object Object],[object Object],[object Object]
Le caratteristiche hardware ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Android Molti tipi di device supportati: smartphone, tablet, setup-box, netbook, hardware specifico. API a supporto di: accelerometro, giroscopio, luce, campo magnetico, temperatura, pressione, prossimita' Posso montare Android sul mio hardware e creare i driver necessari per supportarlo (kernel GNU/Linux) Posso specificare nel Manifest dell'app quale hardware deve essere presente nel dispositivo e il Market lo usa come filtro Grande flessibilita' della piattaforma, problemi di frammentarieta'
Memorizzare i dati
iPhone ,[object Object],[object Object],[object Object],[object Object]
Windows Phone 7 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Android Shared Preferences : valori primitivi in key-value. Internal Storage : file privati all'app nella memoria del device o in memoria esterna External Storage : file pubblici nella memoria esterna SQLite Databases : dati relazionali memorizzati in un database privato, acesso SQL. Content Provider : dati pubblici accessibili per mezzo di un provider (Contatti, Calendario ecc)
Distribuzione delle applicazioni
App Store ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Marketplace ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Android Market Market ufficiale dei device Android, gestito da Google. Le applicazioni sono disponibili non appena vengono pubblicate, senza processi di approvazione Non ci sono limiti al numero di applicazioni pubblicabili Fee one-time di $25 per pubblicare applicazioni Revenue 70/30 Si possono filtrare le applicazioni per tipo di device, lingua, stato Non e' l'unico market disponibile : ce ne sono per produttori di device, di generalisti alternativi, per adulti e per molte altre esigenze specifiche
Nokia OVI Market ufficiale dei device Nokia, gestito da Nokia stessa. Le applicazioni sono disponibili dopo l'approvazione. Fee one-time di 1€ Revenue 70/30

Contenu connexe

Tendances

Introduction to iOS development with Xamarin
Introduction to iOS development with XamarinIntroduction to iOS development with Xamarin
Introduction to iOS development with XamarinRaffaele Fanizzi
 
Reportage "RAD Studio XE2 World Tour"
Reportage "RAD Studio XE2 World Tour"Reportage "RAD Studio XE2 World Tour"
Reportage "RAD Studio XE2 World Tour"Marco Breveglieri
 
Introduzione alla programmazione Java
Introduzione alla programmazione JavaIntroduzione alla programmazione Java
Introduzione alla programmazione JavaMassimiliano Brolli
 
Android Code Camp for Beginners - Ecosistema Android (IT)
Android Code Camp for Beginners - Ecosistema Android (IT)Android Code Camp for Beginners - Ecosistema Android (IT)
Android Code Camp for Beginners - Ecosistema Android (IT)Alessandro Bogliolo
 
Flutter: Google alla conquista del mobile multi piattaforma
Flutter: Google alla conquista del mobile multi piattaformaFlutter: Google alla conquista del mobile multi piattaforma
Flutter: Google alla conquista del mobile multi piattaformaCommit University
 
Sviluppo di applicazioni mobile con PhoneGap
Sviluppo di applicazioni mobile con PhoneGapSviluppo di applicazioni mobile con PhoneGap
Sviluppo di applicazioni mobile con PhoneGapDotNetMarche
 
Evoluzione degli strumenti di sviluppo Microsoft
Evoluzione degli strumenti di sviluppo MicrosoftEvoluzione degli strumenti di sviluppo Microsoft
Evoluzione degli strumenti di sviluppo MicrosoftMassimo Bonanni
 

Tendances (10)

Introduction to iOS development with Xamarin
Introduction to iOS development with XamarinIntroduction to iOS development with Xamarin
Introduction to iOS development with Xamarin
 
Intel AppUp Webinar Italiano html5
Intel AppUp Webinar Italiano html5Intel AppUp Webinar Italiano html5
Intel AppUp Webinar Italiano html5
 
Reportage "RAD Studio XE2 World Tour"
Reportage "RAD Studio XE2 World Tour"Reportage "RAD Studio XE2 World Tour"
Reportage "RAD Studio XE2 World Tour"
 
Introduzione alla programmazione Java
Introduzione alla programmazione JavaIntroduzione alla programmazione Java
Introduzione alla programmazione Java
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented Programming
 
Android Code Camp for Beginners - Ecosistema Android (IT)
Android Code Camp for Beginners - Ecosistema Android (IT)Android Code Camp for Beginners - Ecosistema Android (IT)
Android Code Camp for Beginners - Ecosistema Android (IT)
 
Flutter: Google alla conquista del mobile multi piattaforma
Flutter: Google alla conquista del mobile multi piattaformaFlutter: Google alla conquista del mobile multi piattaforma
Flutter: Google alla conquista del mobile multi piattaforma
 
Sviluppo di applicazioni mobile con PhoneGap
Sviluppo di applicazioni mobile con PhoneGapSviluppo di applicazioni mobile con PhoneGap
Sviluppo di applicazioni mobile con PhoneGap
 
Evoluzione degli strumenti di sviluppo Microsoft
Evoluzione degli strumenti di sviluppo MicrosoftEvoluzione degli strumenti di sviluppo Microsoft
Evoluzione degli strumenti di sviluppo Microsoft
 
Corso Android
Corso AndroidCorso Android
Corso Android
 

Similaire à Mobile platforms development overview

MobileDevCamp2012 - Android
MobileDevCamp2012 - AndroidMobileDevCamp2012 - Android
MobileDevCamp2012 - Androidmobiledevcamp
 
Android, panoramica e sviluppo
Android, panoramica e sviluppoAndroid, panoramica e sviluppo
Android, panoramica e sviluppoLorenzo Braghetto
 
Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto
 Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto
Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progettoMicrosoft Mobile Developer
 
Sviluppo apps multipiattaforma con visual studio e xamarin
Sviluppo apps multipiattaforma con visual studio e xamarinSviluppo apps multipiattaforma con visual studio e xamarin
Sviluppo apps multipiattaforma con visual studio e xamarinFabio Cozzolino
 
Presentazione+Android
Presentazione+AndroidPresentazione+Android
Presentazione+AndroidNicola Pedot
 
Meego Italian Day 2011 - Francesco Baldassarri (1)
Meego Italian Day 2011 - Francesco Baldassarri (1)Meego Italian Day 2011 - Francesco Baldassarri (1)
Meego Italian Day 2011 - Francesco Baldassarri (1)Francesco Baldassarri
 
Tech webinar: iOS Get Started
Tech webinar: iOS Get StartedTech webinar: iOS Get Started
Tech webinar: iOS Get StartedCodemotion
 
L'EVOLUZIONE E LE NOVITÀ DI WINDOWS PHONE 8.1
L'EVOLUZIONE E LE NOVITÀ DI WINDOWS PHONE 8.1L'EVOLUZIONE E LE NOVITÀ DI WINDOWS PHONE 8.1
L'EVOLUZIONE E LE NOVITÀ DI WINDOWS PHONE 8.1codeblock
 
Italian C++ MeetUp - 24/10/2015
Italian C++ MeetUp - 24/10/2015Italian C++ MeetUp - 24/10/2015
Italian C++ MeetUp - 24/10/2015Gaetano Paternò
 
Touch&play framework
Touch&play frameworkTouch&play framework
Touch&play frameworkCSP Scarl
 
Sviluppo di contenuti Flash Platform su iOS e Android
Sviluppo di contenuti Flash Platform su iOS e AndroidSviluppo di contenuti Flash Platform su iOS e Android
Sviluppo di contenuti Flash Platform su iOS e Androidluca mezzalira
 
Improve mobile development with Visual Studio 2017 for Mac & Visual Studio Te...
Improve mobile development with Visual Studio 2017 for Mac & Visual Studio Te...Improve mobile development with Visual Studio 2017 for Mac & Visual Studio Te...
Improve mobile development with Visual Studio 2017 for Mac & Visual Studio Te...Gaetano Paternò
 
Introduzione alle app Windows Universal
Introduzione alle app Windows UniversalIntroduzione alle app Windows Universal
Introduzione alle app Windows UniversalAlessandro Scardova
 
Sistemi operativi proprietari
Sistemi operativi proprietariSistemi operativi proprietari
Sistemi operativi proprietariGiadarossi
 

Similaire à Mobile platforms development overview (20)

MobileDevCamp2012 - Android
MobileDevCamp2012 - AndroidMobileDevCamp2012 - Android
MobileDevCamp2012 - Android
 
Android
AndroidAndroid
Android
 
Android Workshop
Android WorkshopAndroid Workshop
Android Workshop
 
Android, panoramica e sviluppo
Android, panoramica e sviluppoAndroid, panoramica e sviluppo
Android, panoramica e sviluppo
 
Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto
 Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto
Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto
 
Sviluppo apps multipiattaforma con visual studio e xamarin
Sviluppo apps multipiattaforma con visual studio e xamarinSviluppo apps multipiattaforma con visual studio e xamarin
Sviluppo apps multipiattaforma con visual studio e xamarin
 
Reportage Delphi Day 2012
Reportage Delphi Day 2012Reportage Delphi Day 2012
Reportage Delphi Day 2012
 
Presentazione+Android
Presentazione+AndroidPresentazione+Android
Presentazione+Android
 
Meego Italian Day 2011 - Francesco Baldassarri (1)
Meego Italian Day 2011 - Francesco Baldassarri (1)Meego Italian Day 2011 - Francesco Baldassarri (1)
Meego Italian Day 2011 - Francesco Baldassarri (1)
 
Tech webinar: iOS Get Started
Tech webinar: iOS Get StartedTech webinar: iOS Get Started
Tech webinar: iOS Get Started
 
Conferenza Pymaemo
Conferenza PymaemoConferenza Pymaemo
Conferenza Pymaemo
 
L'EVOLUZIONE E LE NOVITÀ DI WINDOWS PHONE 8.1
L'EVOLUZIONE E LE NOVITÀ DI WINDOWS PHONE 8.1L'EVOLUZIONE E LE NOVITÀ DI WINDOWS PHONE 8.1
L'EVOLUZIONE E LE NOVITÀ DI WINDOWS PHONE 8.1
 
Italian C++ MeetUp - 24/10/2015
Italian C++ MeetUp - 24/10/2015Italian C++ MeetUp - 24/10/2015
Italian C++ MeetUp - 24/10/2015
 
Touch&play framework
Touch&play frameworkTouch&play framework
Touch&play framework
 
Micro Applicazioni Mobile
Micro Applicazioni MobileMicro Applicazioni Mobile
Micro Applicazioni Mobile
 
Sviluppo di contenuti Flash Platform su iOS e Android
Sviluppo di contenuti Flash Platform su iOS e AndroidSviluppo di contenuti Flash Platform su iOS e Android
Sviluppo di contenuti Flash Platform su iOS e Android
 
Improve mobile development with Visual Studio 2017 for Mac & Visual Studio Te...
Improve mobile development with Visual Studio 2017 for Mac & Visual Studio Te...Improve mobile development with Visual Studio 2017 for Mac & Visual Studio Te...
Improve mobile development with Visual Studio 2017 for Mac & Visual Studio Te...
 
Android vs iOS
Android vs iOSAndroid vs iOS
Android vs iOS
 
Introduzione alle app Windows Universal
Introduzione alle app Windows UniversalIntroduzione alle app Windows Universal
Introduzione alle app Windows Universal
 
Sistemi operativi proprietari
Sistemi operativi proprietariSistemi operativi proprietari
Sistemi operativi proprietari
 

Plus de Alfredo Morresi

Slightly Advanced Android Wear ;)
Slightly Advanced Android Wear ;)Slightly Advanced Android Wear ;)
Slightly Advanced Android Wear ;)Alfredo Morresi
 
Android Survival Guide - Two years of software development
Android Survival Guide - Two years of software developmentAndroid Survival Guide - Two years of software development
Android Survival Guide - Two years of software developmentAlfredo Morresi
 
Testing in Android: automatici, di integrazione, TDD e scenari avanzati
Testing in Android: automatici, di integrazione, TDD e scenari avanzatiTesting in Android: automatici, di integrazione, TDD e scenari avanzati
Testing in Android: automatici, di integrazione, TDD e scenari avanzatiAlfredo Morresi
 
Advanced Android Development
Advanced Android DevelopmentAdvanced Android Development
Advanced Android DevelopmentAlfredo Morresi
 
Nativa Android Applications development
Nativa Android Applications developmentNativa Android Applications development
Nativa Android Applications developmentAlfredo Morresi
 
Funambol Code Sniper - Avatargrabber
Funambol Code Sniper - AvatargrabberFunambol Code Sniper - Avatargrabber
Funambol Code Sniper - AvatargrabberAlfredo Morresi
 
Mobile security & privacy - Paranoia in movimento
Mobile security & privacy - Paranoia in movimentoMobile security & privacy - Paranoia in movimento
Mobile security & privacy - Paranoia in movimentoAlfredo Morresi
 
Tesi cartoni animati e modelli culturali
Tesi cartoni animati e modelli culturaliTesi cartoni animati e modelli culturali
Tesi cartoni animati e modelli culturaliAlfredo Morresi
 
(in)Sicurezze delle reti wireless 802.11b
(in)Sicurezze delle reti wireless 802.11b(in)Sicurezze delle reti wireless 802.11b
(in)Sicurezze delle reti wireless 802.11bAlfredo Morresi
 
BlueSecurity: quando il dente fa male!
BlueSecurity: quando il dente fa male!BlueSecurity: quando il dente fa male!
BlueSecurity: quando il dente fa male!Alfredo Morresi
 
2(.0) passi nel mondo mobile - Alfredo Morresi
2(.0) passi nel mondo mobile - Alfredo Morresi2(.0) passi nel mondo mobile - Alfredo Morresi
2(.0) passi nel mondo mobile - Alfredo MorresiAlfredo Morresi
 
QR code - Alfredo Morresi
QR code - Alfredo MorresiQR code - Alfredo Morresi
QR code - Alfredo MorresiAlfredo Morresi
 

Plus de Alfredo Morresi (13)

Slightly Advanced Android Wear ;)
Slightly Advanced Android Wear ;)Slightly Advanced Android Wear ;)
Slightly Advanced Android Wear ;)
 
Android Survival Guide - Two years of software development
Android Survival Guide - Two years of software developmentAndroid Survival Guide - Two years of software development
Android Survival Guide - Two years of software development
 
Testing in Android: automatici, di integrazione, TDD e scenari avanzati
Testing in Android: automatici, di integrazione, TDD e scenari avanzatiTesting in Android: automatici, di integrazione, TDD e scenari avanzati
Testing in Android: automatici, di integrazione, TDD e scenari avanzati
 
Advanced Android Development
Advanced Android DevelopmentAdvanced Android Development
Advanced Android Development
 
Nativa Android Applications development
Nativa Android Applications developmentNativa Android Applications development
Nativa Android Applications development
 
Refactoring 2 The Max
Refactoring 2 The MaxRefactoring 2 The Max
Refactoring 2 The Max
 
Funambol Code Sniper - Avatargrabber
Funambol Code Sniper - AvatargrabberFunambol Code Sniper - Avatargrabber
Funambol Code Sniper - Avatargrabber
 
Mobile security & privacy - Paranoia in movimento
Mobile security & privacy - Paranoia in movimentoMobile security & privacy - Paranoia in movimento
Mobile security & privacy - Paranoia in movimento
 
Tesi cartoni animati e modelli culturali
Tesi cartoni animati e modelli culturaliTesi cartoni animati e modelli culturali
Tesi cartoni animati e modelli culturali
 
(in)Sicurezze delle reti wireless 802.11b
(in)Sicurezze delle reti wireless 802.11b(in)Sicurezze delle reti wireless 802.11b
(in)Sicurezze delle reti wireless 802.11b
 
BlueSecurity: quando il dente fa male!
BlueSecurity: quando il dente fa male!BlueSecurity: quando il dente fa male!
BlueSecurity: quando il dente fa male!
 
2(.0) passi nel mondo mobile - Alfredo Morresi
2(.0) passi nel mondo mobile - Alfredo Morresi2(.0) passi nel mondo mobile - Alfredo Morresi
2(.0) passi nel mondo mobile - Alfredo Morresi
 
QR code - Alfredo Morresi
QR code - Alfredo MorresiQR code - Alfredo Morresi
QR code - Alfredo Morresi
 

Mobile platforms development overview

  • 1. Future platforms: iPhone, Android, Windows Phone, Nokia, Blackberry Lo sviluppo di applicazioni mobili: linguaggi, strumenti e potenzialità Twitter @qmatteoq Blog http://qmatteoq.tostring.it E-mail [email_address] Matteo Pagani Alfredo Morresi Twitter @rainbowbreeze Blog http://www.rainbowbreeze.it E-mail [email_address] Mobile Software Engineers
  • 3.
  • 4.
  • 5.
  • 6.
  • 7. Android Java 1.5, C/C++ Activity, Service, Broacast Receiver, Content Provider Intent Filters Porting librerie gia' esistenti XML per la grafica e l'animazione Risorse parametrizzabili Library project Junit e AndroidTestCase OpenGL Screen density/orientation
  • 8. Nokia C'era una volta Symbian S40 ed S60: J2ME, C++ :°( Poi venne QT: Symbian S60, Windows CE, Maemo, Symbian^3, Linux X11, Windows, Mac OS. Android (unofficial) Si sviluppa in C++ QT Mobility API: contatti, location, multimedia Prossima release QT 4.8 (Q2 2011) In: QT Mobility API 1.1, QT Quick (QML), supporto MeeGo Out: supporto Windows CE, S60, Maemo 5
  • 9. BlackBerry Si sviluppa in J2ME con supporto a: Connected Limited Device Configuration (CLDC) 1.1 Mobile Information Device Profile (MIDP) 2.0 RIM UI Library per keyboard, trackball e touchscreen
  • 10. MonoTouch allows developers to create C# and .NET based applications that run on Apple's iPhone, iPad, and iPod, reusing both code and libraries that have been built for .NET. MonoTouch e MonoDroid
  • 11. MonoDroid is a development stack for using C# and core .NET APIs to develop Android-based applications. MonoTouch e MonoDroid
  • 12. PhoneGap The PhoneGap mission is to Web-enable native device functionality with open standards like HTML, CSS and JavaScript so that you can focus on the app you're building, not on authoring complex platform compatibility layers.
  • 13. Appcelerator Titanium Mobile HTML, Javascript, [PHP, Ruby & Python for Desktop apps]
  • 14. Ambienti e strumenti di sviluppo
  • 15.
  • 16. XCode
  • 19.
  • 21. Blend
  • 23. Android Eclipse + Android plugin -> ufficialmente supportato da Google NetBeans o altro editor preferito Multipiattaforma (Lin / Win / Mac) Google App Inventor – http://appinventor.googlelabs.com
  • 25. Emulatore (e non solo) Mock per GPS, chiamate, batteria, SMS ecc... Si installa Android e si prova su altro hardware
  • 26. Lot of Free software inside, powered by MIT ;) Google App Inventor
  • 27. Nokia QT Creator Multipiattaforma (Lin / Win / Mac), ma no Mac per Maemo
  • 30. Blackberry BlackBerry Java Development Environment aka JDE (Windows) Eclipse plugin (Windows) BlackBerry Smartphone Themes and Animated Graphics - crea SVG, importando anche da Adobe Flash e Photoshop BlackBerry Web Plug-in per Visual Studio ed Eclipse – crea browser based app e widget, con debug e deploy
  • 32. Sviluppo di applicazioni tradizionali
  • 33.
  • 34.
  • 35. Android E' come sviluppare un'applicazione Java, con qualche accortezza Tutta la UI e' gestita per mezzo di file XML o via codice Supporto nativo alla localizzazione, diverse risoluzioni schermo e orientamento del device E' possibile usare librerie esterne e progetti libreria Supporto ai test automatici per la Business Logic e per la UI
  • 37.
  • 38.
  • 39. Android Nessun supporto particolare alla grafica 2D avanzata Occorre ricorrere al C++ per le performance API Open GL ES (per device mobili) Scarseggiano le librerie di supporto (Rokon) Frammentarieta' delle caratteristiche hw/schermo della piattaforma rendono impegnativo uno sviluppo diffuso
  • 40. Framework specializzati Unity3D, supporta iPhone, iPad e Android (in beta nella nuova release)
  • 41. Il device e l'interazione con l'hardware
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48. Android Molti tipi di device supportati: smartphone, tablet, setup-box, netbook, hardware specifico. API a supporto di: accelerometro, giroscopio, luce, campo magnetico, temperatura, pressione, prossimita' Posso montare Android sul mio hardware e creare i driver necessari per supportarlo (kernel GNU/Linux) Posso specificare nel Manifest dell'app quale hardware deve essere presente nel dispositivo e il Market lo usa come filtro Grande flessibilita' della piattaforma, problemi di frammentarieta'
  • 50.
  • 51.
  • 52. Android Shared Preferences : valori primitivi in key-value. Internal Storage : file privati all'app nella memoria del device o in memoria esterna External Storage : file pubblici nella memoria esterna SQLite Databases : dati relazionali memorizzati in un database privato, acesso SQL. Content Provider : dati pubblici accessibili per mezzo di un provider (Contatti, Calendario ecc)
  • 54.
  • 55.
  • 56. Android Market Market ufficiale dei device Android, gestito da Google. Le applicazioni sono disponibili non appena vengono pubblicate, senza processi di approvazione Non ci sono limiti al numero di applicazioni pubblicabili Fee one-time di $25 per pubblicare applicazioni Revenue 70/30 Si possono filtrare le applicazioni per tipo di device, lingua, stato Non e' l'unico market disponibile : ce ne sono per produttori di device, di generalisti alternativi, per adulti e per molte altre esigenze specifiche
  • 57. Nokia OVI Market ufficiale dei device Nokia, gestito da Nokia stessa. Le applicazioni sono disponibili dopo l'approvazione. Fee one-time di 1€ Revenue 70/30

Notes de l'éditeur

  1. C# è il linguaggio di sviluppo «ufficiale» di WP7: meno di un mese fa è stato introdotto il supporto a VB.NET, ma per ora è ancora in versione CTP. Non è ancora possibile perciò fare il submit sul Marketplace di applicazioni sviluppate in VB.NET. E’ un linguaggio ad alto livello, giunto attualmente alla release 4.0.
  2. Visual Studio 2010 è l’ambiente di sviluppo per le applicazioni WP7: il focus è sulla logica e sul codice, ma integra anche gli strumenti per la UI. Blend invece è lo strumento dedicato ai designer per la creazione delle UI.
  3. Visual Studio 2010 è l’ambiente di sviluppo per le applicazioni WP7: il focus è sulla logica e sul codice, ma integra anche gli strumenti per la UI. Blend invece è lo strumento dedicato ai designer per la creazione delle UI.
  4. Visual Studio 2010 è l’ambiente di sviluppo per le applicazioni WP7: il focus è sulla logica e sul codice, ma integra anche gli strumenti per la UI. Blend invece è lo strumento dedicato ai designer per la creazione delle UI.
  5. Visual Studio 2010 è l’ambiente di sviluppo per le applicazioni WP7: il focus è sulla logica e sul codice, ma integra anche gli strumenti per la UI. Blend invece è lo strumento dedicato ai designer per la creazione delle UI.
  6. Xcode è l’ambiente di sviluppo ufficiale per quanto riguarda il mondo iPhone e iPad. Consta di una serie di strumenti e applicazioni separati: oltre a tool di profiling, i due programmi principali sono Xcode (per la scrittura di codice e la parte di logica di un’applicazione) e Interface Builder (per la progettazione delle interfacce grafiche). La versione attuale è la 3.2.4, che permette di compilare applicazioni fino ad iOS 4.1 ed è disponibile gratuitamente, previa registrazione all’iPhone Developer Program (anche con un account gratuito). Esistono poi due versioni beta, riservate a chi ha un account a pagamento (quello che permette di pubblicare applicazioni sull’App Store): la 3.2.5 (che permette di compilare applicazioni per iOS di 4.2 di prossima uscita) e la 4, che è la prossima major release dell’IDE che introduce sostanziose novità (come l’integrazione di Interface Builder in Xcode).
  7. La struttura di un progetto iPhone è grossomodo la seguente: I file .h identificano l’interfaccia di una classe: definisce le proprietà e i metodi che saranno implementate. I file .m identificano la classe vera e propria: definisce la logica dei metodi e implementa i vari delegate che servono per interfacciarsi con il device. I file .xib identificano l’interfaccia grafica di una classe e sono prodotti da Interface Builder.
  8. Interface Builder permette di inserire i vari controlli all’interno dell’interfaccia grafica, che però sono concettualmente separati dal codice. Il collegamento tra oggetti nell’interfaccia e la relativa definizione nel codice non è automatico: va opportunamente impostato tramite la definizione di outlet (gli elementi nell’interfaccia) e actions (i metodi che si scatenano in seguito all’interazione con l’interfaccia grafica).
  9. L’emulatore consente di testare applicazioni con un device reale: Contiene un set minimo di applicazioni (Contacts, Safari, Pictures, Settings) Permette di simulare la rotazione del device e alcune gestures (ad esempio zoom) Non è possibile testare accelerometro, GPS e, in generale, tutti i sensori del device
  10. Visual Studio 2010 è l’ambiente di sviluppo per le applicazioni WP7: il focus è sulla logica e sul codice, ma integra anche gli strumenti per la UI. Blend invece è lo strumento dedicato ai designer per la creazione delle UI.
  11. Un progetto Windows Phone è caratterizzato dai file XAML, che corrispondono alle varie view della nostra applicazione. Ad ogni XAML corrisponde un file di code-behind, che è il codice che gestisce la view: gli eventi, le proprietà, i metodi. Sono supportati però anche approcci (come MVVM) che permettono di avere una completa separazione tra logica e interfaccia grafica.
  12. Lo XAML è un linguaggio di markup che permette la definizione dell’interfaccia grafica: Blend permette di farlo in maniera visuale e offre supporto a molte feature che facilitano la vita del designer (importazione di file grafici dai prodotti Adobe, generazione di dati fittizzi, ecc.)
  13. L’emulatore di WP7 non è un emulatore ma una vera e propria virtual machine: il vantaggio è che in questo modo l’emulatore può direttamente interfacciarsi con l’hardware del proprio computer (ad esempio, il microfono per la registrazione vocale, un monitor multitouch per simulare lo schermo, ecc.). Lo svantaggio è che non è possibile utilizzarlo in un ambiente virtuale.
  14. Visual Studio 2010 è l’ambiente di sviluppo per le applicazioni WP7: il focus è sulla logica e sul codice, ma integra anche gli strumenti per la UI. Blend invece è lo strumento dedicato ai designer per la creazione delle UI.
  15. Visual Studio 2010 è l’ambiente di sviluppo per le applicazioni WP7: il focus è sulla logica e sul codice, ma integra anche gli strumenti per la UI. Blend invece è lo strumento dedicato ai designer per la creazione delle UI.
  16. Visual Studio 2010 è l’ambiente di sviluppo per le applicazioni WP7: il focus è sulla logica e sul codice, ma integra anche gli strumenti per la UI. Blend invece è lo strumento dedicato ai designer per la creazione delle UI.
  17. Visual Studio 2010 è l’ambiente di sviluppo per le applicazioni WP7: il focus è sulla logica e sul codice, ma integra anche gli strumenti per la UI. Blend invece è lo strumento dedicato ai designer per la creazione delle UI.
  18. Visual Studio 2010 è l’ambiente di sviluppo per le applicazioni WP7: il focus è sulla logica e sul codice, ma integra anche gli strumenti per la UI. Blend invece è lo strumento dedicato ai designer per la creazione delle UI.
  19. CocoaTouch, un derivato di Cocoa, è l’ambiente utilizzato per la programazione di iOS e fornisce accesso a tutta una serie di classi e oggetti per lavorare ad alto livello e manipolare stringhe, oggetti e quan’altro. CocoaTouch introduce, rispetto a Cocoa, il supporto a tutti gli oggetti e i delegate legati al device: utilizzo dei sensori, gestione delle gestures, ecc. Cocoa si occupa della gestione della memoria, anche se purtroppo questo aspetto è assente su iOS: non esiste garbage collector, è nostro incarico gestire l’allocazione e la deallocazione degli oggetti che usiamo. Si tratta di uno dei punti più «critici» nello sviluppo di apps per iOS: non è banale infatti maneggiarlo (soprattutto se arrivate da ambienti come .NET dove viene tutto gestito in automatico dal garbage collector), ma è indispensabile farlo per realizzare applicazioni performanti e che, soprattutto, non vadano in crash.
  20. Silvelright è un ambiente di sviluppo ad alto livello, che rispetto ad altri linguaggi (anche di Microsoft stessa) permette una netta distinizione tra i ruoli di developer e designer, in particolar modo se si adotta un pattern come MVVM. L’interfaccia grafica è definitia dallo XAML, che è un linguaggio di markup molto potente e permette non solo di definire come visualizzare i dati ma anche quali sono i dati da mostrare (binding). Silverlight per Windows Phone è basato su Silverlight 3 e offre le stesse feature della versione dedicata al mondo web: Windows Phone ha in più alcune feature esclusive legate al device, come la gestione dei sensori o del ciclo di vita di un’applicazione.
  21. XNA è un ambiente per lo sviluppo dedicato ai videogiochi che si appoggia alle DirectX come librerie grafiche. E’ lo stesso ambiente utilizzato per lo sviluppo di giochi Xbox: Visual Studio permette di definire più target per lo stesso progetto, creando dei duplicati che vengono mantenuti in sincrono. Per uno sviluppatore Xbox è facile fare il porting dei proprio giochi su Windows Phone: l’unica parte da adattare è quella degli input di controllo, che variano da tastiera su PC al joypad su Xbox al touch screen su WP7. Windows Phone 7 integra Xbox Live, permettendo di condividere avatar, achievements e multiplayer con la console «maggiore».
  22. Fino ad iPhone 3G lo sviluppo di applicazioni per iOS poteva contare su un unico ambiente di test: le caratteristiche hardware erano infatti le medesime, unica differenza era l’estetica e il supporto alla connettività 3G. Le cose sono cambiate con l’uscita di iPhone 3GS e iPhone 4, che hanno introdotto nuovi sensori e differenze nel processore e nella RAM disponibile.