Lo sviluppo su mobile si arricchisce ogni anno di nuove piattaforme e linguaggi di programmazione. Attraverso un excursus storico verrà analizzata l'evoluzione del settore mobile cercando di chiarire meglio per gli sviluppatori quali sono oggi i linguaggi, i sistemi operativi e i tool utilizzati per lo sviluppo sulle diverse piattaforme. Condiamo il tutto con una serie di consigli pratici sullo sviluppo mobile cercando di prevedere l'evoluzione a venire del settore.
1. Welcome to the mobile galaxy!
Maurizio Moriconi
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
2. Un pò di storia...
• Prima chiamata a St. Louis nel Missouri
(USA) il 7 Giugno 1946 da un sistema di
telefonia sviluppato dai Bell Laboratories.
• Prima chiamata da un dispositivo mobile
fatta con un Motorola nel 3 Aprile del1973
da Martin Cooper (considerato l’inventore
della telefonia mobile)
• Ispirazione da Star Trek :)
Maurizio Moriconi 2
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
3. Primo sms della storia...
• Vodafone GSM Network, UK
• 3 Dicembre 1992
• Il testo del messaggio era:
“Merry Christmas”
Maurizio Moriconi 3
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
4. Evoluzione tecnologica
1993 Primo smartphone (IBM Simon)
1994 Bluetooth (Ericsson)
1998 Primo schermo a colori
2000 Primo sistema operativo per smartphone (Symbian su Ericsson R380)
2001 Primo touch screen ‘evoluto’
2006 Primo device con Wi-fi (Samsung SGH-P200)
2007 Primi dispositivi con GPS integrato
2011 Primo smartphone FullHD
Maurizio Moriconi 4
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
5. Timeline OS per smartphone
1996 Palm lancia Palm OS 1.0
1997 Palm OS 2.0
1998 Palm OS 3.0
2000 Pocket PC 2000
2001 Palm OS 4.0 e Pocket PC 2002
Symbian 6.0, 6.1
Maurizio Moriconi 5
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
6. Gli anni di windows mobile...
2003 Windows Mobile 2003
2003 Windows Mobile 2003 SE, Palm OS Cobalt
2005 Windows Mobile 5, BlackBerry OS 4.1
Google compra Android Inc
2007 Windows Mobile 6, BlackBerry OS 4.2
Maurizio Moriconi 6
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
7. Arrivano iPhone OS ed Android!
2007 iPhone OS 1.0
2008 iPhone OS 2.0
Android 1.0
Symbian^1 (Series 60 5th Edition)
BlackBerry OS 4.5, Windows Mobile 6.1
Maurizio Moriconi 7
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
8. 2009: OS World war :)
BlackBerry OS 5.0, Windows Mobile 6.5
Android 1.1
1.5 (Cupcake) 1.6 (Donut) 2.0 / 2.1 (Eclair)
Samsung Bada 1.0
iPhone OS 3.0
Web OS 1.0
Maurizio Moriconi 8
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
9. 2010: torna Windows Phone...
iOS 4.0
BlackBerry OS 6
BlackBerry Tablet OS
Windows Phone 7
Android 2.2 (Froyo) 2.3 (GingerBread)
Symbian^2 e Symbian^3
Web OS 2.0
Meego
Maurizio Moriconi 9
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
10. 2011: L’anno dei tablet
iOS 5.0
Android 3.0 (HoneyComb), 3.1, 3.2
Android 4.0 (Ice Cream Sandwich)
Web OS 3.0
Symbian Anna e Belle
Blackberry OS 7
Blackberry Tablet (Playbook) OS 2.0
Maurizio Moriconi 10
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
11. Sviluppo su Mobile
Mobile != Desktop
Mobile Web != Desktop Web
Rispetto al passato non ci sono più limitazioni hardware!!!
Bisogna focalizzarsi principalmente su:
- quantità di dati scaricati
- uso della batteria
- schermo
- nuove possibilità: multi-touch, gps, fotocamera, accellerometro, realtà aumentata
Maurizio Moriconi 11
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
12. Come sviluppiamo su mobile?
✓App native
✓Widgets
✓App cross-platform
Maurizio Moriconi 12
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
13. Sviluppo di app Native
✓ Diversi linguaggi di programmazione
✓ Diversi tool di sviluppo
✓ Diversa esperienza d’uso (UX = User eXperience)
Applicazioni ottimizzate per la piattaforma!
Maurizio Moriconi 13
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
14. JavaME
Write once, run anywhere??
No!
Write once, port everywhere :(
Maurizio Moriconi 14
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
15. JavaME: IDE ed SDK
• Sviluppo su: Windows, Mac OS X, Linux
• Eclipse Pulsar
• NetBeans
• SDK: J2ME Wireless Toolkit 3.0.5
Maurizio Moriconi 15
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
16. The next billion...
• Nokia Series 40
• 1.5 miliardi di device
• Nokia SDK 1.1 for Java
– In-App purchase API
– Nokia Touch and Type Gesture API
– Nokia Touch and Type Animator API
– Nokia UI API
Maurizio Moriconi 16
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
18. Blackberry OS
• 2 possibilità:
• Blackberry Java (JavaME)
• WebWorks (HTML 5)
• Sviluppo su:
• Windows
• Mac OS X (no simulatore)
Maurizio Moriconi 18
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
19. Blackberry OS
• SDK per JavaME
– BlackBerry Java Plug-in for Eclipse v 1.5
• WebWorks
– HTML 5
– Ripple Emulator 0.9.1 beta
Maurizio Moriconi 19
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
20. Blackberry Tablet OS / BB 10
• CC ++ Native SDK 2.0
• HTML 5 WebWorks
• Blackberry Java
• Java Android Runtime
• Adobe AIR (Blackberry TabletOS SDK for Abode AIR 2.0)
• Open Source Components
(OpenAL, boost, Box2d, Bullet Physics, Cocos2d-X, Lua, Qt, SDL)
Maurizio Moriconi 20
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
24. Bada
• Sviluppo solo su Windows
• bada SDK 2.0.5
– basato su Eclipse CDT e JSDT
• Linguaggio: C/C ++ con delle eccezioni
• Supporta Flash (Flash Lite 4 e ActionScript 3.0)
• Supporta WAC widgets (HTML, Javascript, CSS)
Maurizio Moriconi 24
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
26. iOS
• Sviluppo solo su Mac OS X (Intel-based)
• iOS SDK 5.1
• Linguaggio: Objective-C, C
• IDE: Xcode 4.x
• Possibilità di usare HTML5
Maurizio Moriconi 26
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
27. Terze Parti
• Unreal Development Toolkit (Epic) http://www.udk.com
• MonoTouch (C# e .NET) http://www.xamarin.com/monotouch
• DragonFire SDK (Visual Studio C/C++) http://www.dragonfiresdk.com
• Unity 3 http://unity3d.com
• Corona SDK http://www.anscamobile.com/corona
• Marmalade SDK 5.2 http://www.madewithmarmalade.com/
• ...
Maurizio Moriconi 27
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
28. Frammentazione
• Risoluzioni
– iPhone/iPod Touch (320x480 vs 480x960)
– iPad (768x1024 vs 1536x2048)
• Versioni del sistema operativo
– i device vengono aggiornati dagli utenti
• 1 settimana per aggiornare il 25%
• < 6 settimane per aggiornare il 50%
– pochi device obsoleti (iPhone 2 e 3G)
Maurizio Moriconi 28
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
30. Android
• Sviluppo su Windows, Mac OS X, Linux
• Android SDK 4.0.x
• IDE: Eclipse
• Linguaggio: Java
Maurizio Moriconi 30
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
31. NDK
• Possibilità di sviluppare in C,C++
• Tra le API nativi stabili supportate troviamo:
– libc e libm headers
– JNI headers
– libz headers
– OpenGL ES 1.1 e 2.0 (da Android 2.0)
Maurizio Moriconi 31
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
36. Windows Phone
• Sviluppo su Windows
• Windows Phone 7.1 SDK
• IDE: Microsoft Visual Studio, Expression Blend
• Linguaggio: C# o VB.NET
• Applicazioni
– Silverlight
– XNA (anche per Xbox 360)
– HTML5 (con PhoneGap)
Maurizio Moriconi 36
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
37. Frammentazione
• 2 versioni: Windows Phone 7.0 e 7.5
• Hardware obbligatorio:
– 3 bottoni (Start, Back, Search (invoca sempre Bing))
– WVGA (480x800) display capacitivo (4 touch)
– connessione Wi-fi o dati cellulare
– 256 Mb o più di Ram , 8 GB o più di flash storage
– A-GPS ed accellerometro
• Hardware facoltativo:
– Compass e giroscopio
– Camera (frontale e/o posteriore)
Maurizio Moriconi 37
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
39. Mobile Widgets
• Piccolo sito web installato su device
• Più veloci delle web-app
• Somigliano ad app native
• Possono girare sulla home del device
• Scritti in Html/Javascript/Css (un html solo index.htm)
• Framework utilizzabili:
– JQuery, MooTools, YUI, Dojo, Guarana
Maurizio Moriconi 39
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
41. App Cross-Platform
• 120 app store differenti!!
Linguaggio Piattaforme
Actionscript Blackberry Playbook OS, dispositivi con FlashLite
C / C++ Bada, Symbian, Windows Phone, iOS, Android (NDK)...
C# Windows Phone
Objective-C iOS
Java Android,
JavaME Blackberry, Symbian, dispositivi meno recenti
Javascript Blackberry, webOS, Mozilla Boot-to-Gecko
Maurizio Moriconi 41
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
42. App Cross-Platform
• Varie possibilità:
– Web technologies
• web-view incorporate in app native
– Interpretation
• collegamento con API reali ma linguaggio nativo diverso
– Cross compilation
• scrivi in un linguaggio, compili su più piattaforme
Maurizio Moriconi 42
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
43. Web Technologies
Maurizio Moriconi 43
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
45. Quale scegliere? In Europa...
20,7%
Android
iOS
Symbian
RIM
Microsoft 31,3%
Altri 30,0%
Market Share Mobile Europa Dic 2011 (dati comScore) 3,4%
5,2%
9,4%
Maurizio Moriconi 45
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
46. Quale scegliere? In Italia...
Android 15,8%
iOS 52,8%
Symbian
RIM
Microsoft
Altri 17,9%
1,6%
Market Share Mobile Italia Dic 2011 (dati comScore) 7,0%
4,9%
Maurizio Moriconi 46
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
47. Uso su web in Italia nel 2012...
48,4%
Android
iOS
Symbian
Microsoft 30,5%
Altri
Stat Counter (gs.statcounter.com) Italia 2012 6,0%
1,2%
13,9%
Maurizio Moriconi 47
maurizio.moriconi@mobilesoft.it - Mobilesoft
domenica 25 marzo 12
48. Quale scegliere??
Piattaforma mesi ttm Piattaforma % developer
Android 5.7 Android 67%
Blackberry 6.1 iOS 59%
iOS 6.8 mobile web 56%
mobile web 8.7
Java ME 46%
Symbian 9.8
Blackberry 45%
Java ME 10.6
www.DeveloperEconomics.com (2011 Vision Mobile)
Maurizio Moriconi
maurizio.moriconi@mobilesoft.it - Mobilesoft
48
domenica 25 marzo 12