welcome to the mobile galaxy!
DESCRIPTION
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.TRANSCRIPT
Maurizio [email protected] - Mobilesoft
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 :)
2
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
Primo sms della storia...• Vodafone GSM Network, UK• 3 Dicembre 1992• Il testo del messaggio era:
“Merry Christmas”
3
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
Evoluzione tecnologica
1993 Primo smartphone (IBM Simon)1994 Bluetooth (Ericsson)1998 Primo schermo a colori2000 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 integrato2011 Primo smartphone FullHD
4
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
Timeline OS per smartphone
1996 Palm lancia Palm OS 1.01997 Palm OS 2.01998 Palm OS 3.02000 Pocket PC 20002001 Palm OS 4.0 e Pocket PC 2002 Symbian 6.0, 6.1
5
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
Gli anni di windows mobile...2003 Windows Mobile 20032003 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
6
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
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
7
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
2009: OS World war :)BlackBerry OS 5.0, Windows Mobile 6.5Android 1.1
1.5 (Cupcake) 1.6 (Donut) 2.0 / 2.1 (Eclair)
Samsung Bada 1.0iPhone OS 3.0Web OS 1.0
8
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
2010: torna Windows Phone...
iOS 4.0BlackBerry OS 6BlackBerry Tablet OSWindows Phone 7Android 2.2 (Froyo) 2.3 (GingerBread)Symbian^2 e Symbian^3Web OS 2.0Meego
9
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
2011: L’anno dei tabletiOS 5.0Android 3.0 (HoneyComb), 3.1, 3.2 Android 4.0 (Ice Cream Sandwich)Web OS 3.0Symbian Anna e BelleBlackberry OS 7Blackberry Tablet (Playbook) OS 2.0
10
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
Sviluppo su MobileMobile != 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
11
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
Come sviluppiamo su mobile?
✓App native
✓Widgets
✓App cross-platform
12
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
Sviluppo di app Native
✓ Diversi linguaggi di programmazione✓ Diversi tool di sviluppo✓ Diversa esperienza d’uso (UX = User eXperience)
Applicazioni ottimizzate per la piattaforma!
13
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
JavaME
Write once, run anywhere??
No!
Write once, port everywhere :(
14
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
JavaME: IDE ed SDK
• Sviluppo su: Windows, Mac OS X, Linux
• Eclipse Pulsar• NetBeans
• SDK: J2ME Wireless Toolkit 3.0.5
15
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
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
16
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
http://www.developer.nokia.com/Develop/Series_40
17
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
Blackberry OS
• 2 possibilità:• Blackberry Java (JavaME)• WebWorks (HTML 5)
• Sviluppo su: • Windows• Mac OS X (no simulatore)
18
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
Blackberry OS
• SDK per JavaME– BlackBerry Java Plug-in for Eclipse v 1.5
• WebWorks– HTML 5– Ripple Emulator 0.9.1 beta
19
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
Blackberry Tablet OS / BB 10• C\C ++ 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)
20
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
Symbian / Meego
• Sviluppo su: Windows, Mac OS X, Linux• Qt SDK 1.2• Qt si pronuncia “cute”• Linguaggio C/C++ facilitato dalle Qt• QML (Qt Quick)
22
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
http://www.developer.nokia.com/Develop/Qt
23
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
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)
24
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
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
26
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
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/• ...
27
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
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)
28
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
Android
• Sviluppo su Windows, Mac OS X, Linux• Android SDK 4.0.x• IDE: Eclipse • Linguaggio: Java
30
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
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)
31
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
Frammentazione delle versioni
32
Platform Codename API Level DistributionAndroid 1.5 CupCake 3 0.4%Android 1.6 Donut 4 0.8%Android 2.1 Eclair 7 6.6%Android 2.2 Froyo 8 25.3%Android 2.3.x Gingerbread 9 - 10 62.0%Android 3.x Honeycomb 11 - 13 3.3%Android 4.0.x Ice Cream Sandwich 14 - 15 1.6%
Dati aggiornati al 13/03/2012 (Fonte http://developer.android.com)
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
Frammentazione risoluzioni
33
ldpi mdpi hdpi xhdpi
small
normal
large
xlarge
1.7% 2.4%
0.7% 18.5% 66.3% 2.5%
0.2% 2.8%
4.9%
Dati aggiornati al 13/03/2012 (Fonte http://developer.android.com)
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
Frammentazione risoluzioni
34
ldpi (120) mdpi (160) hdpi (240) xhdpi (320)
Small screen
Normal screen
Large screen
Extra Large Screen
QVGA (240x320) 480x640
WQVGA400 (240x400)
WQVGA432 (240x432)
HVGA (320x480) WVGA800 (480x800)
WVGA854 (480x854) 600x1024
640x960
WVGA800 (480x800)
WVGA854 (480x854)
WVGA800* (480x800)
WVGA854* (480x854) 600x1024
1024x600 WXGA (1280x800)
1024x768
1280x768
1536x1152
1920x1152
1920x1200
2048x1536
2560x1536
2560x1600
Dati aggiornati al 13/03/2012 (Fonte http://developer.android.com)
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
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)
36
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
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)
37
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
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
39
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
Widgets Standards
• W3C– http://www.w3.org/TR/widgets
• JIL / WAC (Wholesale Applications Community)• Nokia WRT (Widgets Run Time)• BlackBerry WebWorks• Vodafone 360
40
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
App Cross-Platform• 120 app store differenti!!
41
Linguaggio PiattaformeActionscript Blackberry Playbook OS, dispositivi con FlashLiteC / C++ Bada, Symbian, Windows Phone, iOS, Android (NDK)...C# Windows PhoneObjective-C iOSJava Android, JavaME Blackberry, Symbian, dispositivi meno recentiJavascript Blackberry, webOS, Mozilla Boot-to-Gecko
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
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
42
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
Interpretation & Cross-compilation• Appcelerator Titanium• PhoneGap (Javascript)• Rhodes 3.0 (Ruby)• Corona• Marmelade• MoSync• appMobi
44
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
Quale scegliere? In Europa...
45
31,3%
20,7%
30,0%
9,4%5,2%3,4%
AndroidiOSSymbianRIMMicrosoftAltri
Market Share Mobile Europa Dic 2011 (dati comScore)
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
Quale scegliere? In Italia...
46
17,9%
15,8%52,8%
4,9%7,0%
1,6%
AndroidiOSSymbianRIMMicrosoftAltri
Market Share Mobile Italia Dic 2011 (dati comScore)
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
Uso su web in Italia nel 2012...
47
30,5%
48,4%
13,9%1,2%
6,0%
AndroidiOSSymbianMicrosoftAltri
Stat Counter (gs.statcounter.com) Italia 2012
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
Quale scegliere??
48
Piattaforma mesi ttm
Android 5.7
Blackberry 6.1
iOS 6.8
mobile web 8.7
Symbian 9.8
Java ME 10.6
Piattaforma % developer
Android 67%
iOS 59%
mobile web 56%
Java ME 46%
Blackberry 45%
www.DeveloperEconomics.com (2011 Vision Mobile)
domenica 25 marzo 12
Maurizio [email protected] - Mobilesoft
50
Grazie!
• CTO presso Mobilesoft• Mobile Developer
• Co-founder• Main Developer
http://www.facebook.com/maurizio.moriconi
http://www.linkedin.com/in/bugman @bugman79
Maurizio Moriconi
domenica 25 marzo 12