JSConf - Mobile HTML5

  • Published on
    14-Apr-2017

  • View
    1.879

  • Download
    0

Transcript

Maximiliano Firtman @firtmobile+web developerMOBILE HTML5 & THE NEW APISMay, 19th, 2012Buenos Aires, ARMonday, May 21, 12http://qconlondon.com/london-2012/presentation/Mobile,%20HTML5%20and%20the%20cross-platform%20promisehttp://qconlondon.com/london-2012/presentation/Mobile,%20HTML5%20and%20the%20cross-platform%20promisehttp://qconlondon.com/london-2012/presentation/Mobile,%20HTML5%20and%20the%20cross-platform%20promisehttp://qconlondon.com/london-2012/presentation/Mobile,%20HTML5%20and%20the%20cross-platform%20promisehttp://qconlondon.com/london-2012/presentation/Mobile,%20HTML5%20and%20the%20cross-platform%20promisehttp://qconlondon.com/london-2012/presentation/Mobile,%20HTML5%20and%20the%20cross-platform%20promisehttp://qconlondon.com/london-2012/presentation/Mobile,%20HTML5%20and%20the%20cross-platform%20promisehttp://qconlondon.com/london-2012/presentation/Mobile,%20HTML5%20and%20the%20cross-platform%20promisehttp://qconlondon.com/london-2012/presentation/Mobile,%20HTML5%20and%20the%20cross-platform%20promisehttp://qconlondon.com/london-2012/presentation/Mobile,%20HTML5%20and%20the%20cross-platform%20promisehttp://qconlondon.com/london-2012/presentation/Mobile,%20HTML5%20and%20the%20cross-platform%20promisehttp://qconlondon.com/london-2012/presentation/Mobile,%20HTML5%20and%20the%20cross-platform%20promisehttp://qconlondon.com/london-2012/presentation/Mobile,%20HTML5%20and%20the%20cross-platform%20promisemobile+web developermobilexweb.com who am I? @firtMonday, May 21, 12speakerMonday, May 21, 12Monday, May 21, 12Cursos y LibrosHTML5AndroidiOSBlackBerryWindows PhoneITMaster.com.ar @ITMasterCursosMonday, May 21, 12ITMaster.com.ar@ITMasterCursosMonday, May 21, 12Image from my housebooksMonday, May 21, 12Monday, May 21, 12Monday, May 21, 12Monday, May 21, 12Monday, May 21, 12Monday, May 21, 12.comMonday, May 21, 12Monday, May 21, 12mobile...Monday, May 21, 12mobileMonday, May 21, 12mobile absolutely personalMonday, May 21, 12mobile absolutely personal +5 billionsMonday, May 21, 12mobile absolutely personal +5 billions make us focusMonday, May 21, 12mobile absolutely personal +5 billions make us focus read our context...Monday, May 21, 12mobile absolutely personal +5 billions make us focus read our context... ... always...Monday, May 21, 12mobile absolutely personal +5 billions make us focus read our context... ... always... ... and everywhere.Monday, May 21, 12Monday, May 21, 12Monday, May 21, 12everybodywantsmobileMonday, May 21, 12then... what is the problem?Monday, May 21, 12mobile is a minefieldPhoto by World of Good (Flickr) Malvinas / Falklands IslandsMonday, May 21, 12lots of questionsPhoto by wayneandwax (Flickr) Monday, May 21, 12lots of questionswe need to learnMonday, May 21, 12lots of platformsMonday, May 21, 12mobile web appearsMonday, May 21, 12but its differentMonday, May 21, 12but its different slower networksMonday, May 21, 12but its different slower networks higher latencyMonday, May 21, 12but its different slower networks higher latency slower hardwareMonday, May 21, 12but its different slower networks higher latency slower hardware different browsing experienceMonday, May 21, 12but its different slower networks higher latency slower hardware different browsing experience different contextMonday, May 21, 12but its different slower networks higher latency slower hardware different browsing experience different context different behaviorsMonday, May 21, 12but its different slower networks higher latency slower hardware different browsing experience different context different behaviors different possible networksMonday, May 21, 12mobile browsersMonday, May 21, 12mobile browsers too manyMonday, May 21, 12mobile browsers too many (some) too limitedMonday, May 21, 12mobile browsers too many (some) too limited (some) too innovativeMonday, May 21, 12mobile browsers too many (some) too limited (some) too innovative (some) proxy basedMonday, May 21, 12mobile browsers too many (some) too limited (some) too innovative (some) proxy based (most) without documentationMonday, May 21, 12mobile browsers too many (some) too limited (some) too innovative (some) proxy based (most) without documentation (most) without a nameMonday, May 21, 12mobile browsers too many (some) too limited (some) too innovative (some) proxy based (most) without documentation (most) without a name (most) without debugging toolsMonday, May 21, 12mobile browsersMonday, May 21, 12mobile browsers (some) focus-basedMonday, May 21, 12mobile browsers (some) focus-based (some) cursor-basedMonday, May 21, 12mobile browsers (some) focus-based (some) cursor-based (some) touch-basedMonday, May 21, 12mobile browsers (some) focus-based (some) cursor-based (some) touch-based (some) multitouch-basedMonday, May 21, 12mobile browsers (some) focus-based (some) cursor-based (some) touch-based (some) multitouch-based (some) with zooming supportMonday, May 21, 12mobile browsers (some) focus-based (some) cursor-based (some) touch-based (some) multitouch-based (some) with zooming support (most) unknown for web devsMonday, May 21, 12some are knownMonday, May 21, 12some are known Safari (on iOS) Opera Mobile (on Android & Symbian) Firefox (on Android) Chrome (on Android) Internet Explorer (on Windows Phone)Monday, May 21, 12some are unknownMonday, May 21, 12some are unknown Nokia Browser (on Symbian, S40 & Meego 1.2) BlackBerry Browser Android Browser webOS Browser Amazon Silk Bada Browser Opera Mini NetFront Phantom ...Monday, May 21, 12and with different versions...Monday, May 21, 12and we can also create native apps-such as phonegap-Monday, May 21, 12nativevswebMonday, May 21, 12native codevsjavascriptMonday, May 21, 12browservsinstalled apps& storesMonday, May 21, 12what is native?Monday, May 21, 12what is a webapp?Monday, May 21, 12standars?Monday, May 21, 12Photo by Ben Millett (Flickr) Monday, May 21, 12Monday, May 21, 12Are you sure?Photo by Ricky David (Flickr) Monday, May 21, 12What is ?Monday, May 21, 12html5Monday, May 21, 12html5 w3c standards (all in draft)Monday, May 21, 12html5 w3c standards (all in draft) some are other w3c standards Monday, May 21, 12html5 w3c standards (all in draft) some are other w3c standards de-facto standardsMonday, May 21, 12html5 w3c standards (all in draft) some are other w3c standards de-facto standards w3c ex-standardsMonday, May 21, 12html5 w3c standards (all in draft) some are other w3c standards de-facto standards w3c ex-standards everything new on the webMonday, May 21, 12html version 5?Monday, May 21, 12why mobile html5?Monday, May 21, 12typeof html5 != booleanMonday, May 21, 12some features safeMonday, May 21, 12some features only on few platformsMonday, May 21, 12some features experimentalMonday, May 21, 12some features with prefixesMonday, May 21, 12and what aboutcapabilities today?Monday, May 21, 12Monday, May 21, 12vendors hate developersMonday, May 21, 12emulators www.mobilexweb.com/emulatorsMonday, May 21, 12http://www.mobilexweb.com/emulatorshttp://www.mobilexweb.com/emulatorsfriendslots of themand with different devicesMonday, May 21, 12virtual labsreal devices on real networkswww.perfectomobile.com www.deviceanywhere.com Monday, May 21, 12http://www.mobilexweb.com/emulatorshttp://www.mobilexweb.com/emulatorshttp://www.mobilexweb.com/emulatorshttp://www.mobilexweb.com/emulatorsdebugging toolsRemote Web Inspector BlackBerry Smartphones 7 BlackBerry PlayBook Google Chrome for Android 4 Opera MobileMonday, May 21, 12debugging toolsiwebinspector.comMonday, May 21, 12http://www.mobilexweb.com/emulatorshttp://www.mobilexweb.com/emulatorsdebugging toolsadobe.com/go/shadowAdobe ShadowMonday, May 21, 12users hate developersMonday, May 21, 12Monday, May 21, 12Monday, May 21, 12Monday, May 21, 12Monday, May 21, 12Picture from Simon Howden freedigitalphotos.net!mobile webis slowMonday, May 21, 12JS APIs haveevolvedMonday, May 21, 12why?Monday, May 21, 12Monday, May 21, 12mobile html5 capabilitiesoffline & data storagegeolocationhardware: motion, camera, batterydrawing apisanimations and transitionsphone integration: calls, contactstouch and gesture eventsMonday, May 21, 12app.ft.comMonday, May 21, 12native web appsMonday, May 21, 12Boot2Gecko (B2G)Monday, May 21, 12Monday, May 21, 12architectureMonday, May 21, 12Monday, May 21, 12Monday, May 21, 12Monday, May 21, 12Monday, May 21, 12Monday, May 21, 12Monday, May 21, 12Monday, May 21, 12lets see some codeMonday, May 21, 12Monday, May 21, 12offline installationHTML5 3.0+ 2.1+ 6.0+ Mobile 11+ 5.0+Monday, May 21, 12offline installation Install a package on the deviceHTML5 3.0+ 2.1+ 6.0+ Mobile 11+ 5.0+Monday, May 21, 12offline installation Install a package on the device Complex to debug / reloadHTML5 3.0+ 2.1+ 6.0+ Mobile 11+ 5.0+Monday, May 21, 12offline installation Install a package on the device Complex to debug / reload Buggy on some platformsHTML5 3.0+ 2.1+ 6.0+ Mobile 11+ 5.0+Monday, May 21, 12offline installation Install a package on the device Complex to debug / reload Buggy on some platforms online / offline eventsHTML5 3.0+ 2.1+ 6.0+ Mobile 11+ 5.0+Monday, May 21, 12offline installation Install a package on the device Complex to debug / reload Buggy on some platforms online / offline events on iOS can be mixed with icons and full-screen webapp metatagsHTML5 3.0+ 2.1+ 6.0+ Mobile 11+ 5.0+Monday, May 21, 12geolocationGeolocation 2.0+ 2.0+ 6.0+ Mobile 11+ 5.0+9.0+Monday, May 21, 12geolocation GPS, A-GPS, Wi-Fi, cellsGeolocation 2.0+ 2.0+ 6.0+ Mobile 11+ 5.0+9.0+Monday, May 21, 12geolocation GPS, A-GPS, Wi-Fi, cells (some) force GPS highAccuracyGeolocation 2.0+ 2.0+ 6.0+ Mobile 11+ 5.0+9.0+Monday, May 21, 12geolocation GPS, A-GPS, Wi-Fi, cells (some) force GPS highAccuracy (some) headingGeolocation 2.0+ 2.0+ 6.0+ Mobile 11+ 5.0+9.0+Monday, May 21, 12geolocation GPS, A-GPS, Wi-Fi, cells (some) force GPS highAccuracy (some) heading once or movementGeolocation 2.0+ 2.0+ 6.0+ Mobile 11+ 5.0+9.0+Monday, May 21, 12offline web storageWeb Storage 2.0+ 2.0+ 6.0+ Mobile 11+ 5.0+9.0+Monday, May 21, 12offline web storage persistent and session storageWeb Storage 2.0+ 2.0+ 6.0+ Mobile 11+ 5.0+9.0+Monday, May 21, 12offline web storage persistent and session storage key/value (strings)Web Storage 2.0+ 2.0+ 6.0+ Mobile 11+ 5.0+9.0+Monday, May 21, 12offline web storage persistent and session storage key/value (strings) (some) allow object storageWeb Storage 2.0+ 2.0+ 6.0+ Mobile 11+ 5.0+9.0+Monday, May 21, 12offline web storage persistent and session storage key/value (strings) (some) allow object storage limit space, non-standard ~5MbWeb Storage 2.0+ 2.0+ 6.0+ Mobile 11+ 5.0+9.0+Monday, May 21, 12offline web storage persistent and session storage key/value (strings) (some) allow object storage limit space, non-standard ~5Mb be careful with private browsingWeb Storage 2.0+ 2.0+ 6.0+ Mobile 11+ 5.0+9.0+Monday, May 21, 12offline sql storagedeprecated 2.2+ 2.0+ 6.0+ Mobile 11+Monday, May 21, 12offline sql storage persistent and session storagedeprecated 2.2+ 2.0+ 6.0+ Mobile 11+Monday, May 21, 12offline sql storage persistent and session storage key/value (strings)deprecated 2.2+ 2.0+ 6.0+ Mobile 11+Monday, May 21, 12offline sql storage persistent and session storage key/value (strings) (some) allow object storagedeprecated 2.2+ 2.0+ 6.0+ Mobile 11+Monday, May 21, 12offline sql storage persistent and session storage key/value (strings) (some) allow object storage limit space, non-standard ~5Mbdeprecated 2.2+ 2.0+ 6.0+ Mobile 11+Monday, May 21, 12offline sql storage persistent and session storage key/value (strings) (some) allow object storage limit space, non-standard ~5Mb be careful with private browsingdeprecated 2.2+ 2.0+ 6.0+ Mobile 11+Monday, May 21, 12multimedia APIWeb Storage 3.0+ 2.3+ 7.0+ Mobile 11+ 5.0+9.0+Monday, May 21, 12multimedia API audio and video tagsWeb Storage 3.0+ 2.3+ 7.0+ Mobile 11+ 5.0+9.0+Monday, May 21, 12multimedia API audio and video tags javascript api & eventsWeb Storage 3.0+ 2.3+ 7.0+ Mobile 11+ 5.0+9.0+Monday, May 21, 12multimedia API audio and video tags javascript api & events codecs nightmareWeb Storage 3.0+ 2.3+ 7.0+ Mobile 11+ 5.0+9.0+Monday, May 21, 122d drawing api (canvas)HTML5 1.0+ 1.5+ 6.0+ Mob 10+ / Mini 5 4.0+9.0+Monday, May 21, 122d drawing api (canvas) great supportHTML5 1.0+ 1.5+ 6.0+ Mob 10+ / Mini 5 4.0+9.0+Monday, May 21, 122d drawing api (canvas) great support javascript-based drawingHTML5 1.0+ 1.5+ 6.0+ Mob 10+ / Mini 5 4.0+9.0+Monday, May 21, 122d drawing api (canvas) great support javascript-based drawing (some) allows data URI exportHTML5 1.0+ 1.5+ 6.0+ Mob 10+ / Mini 5 4.0+9.0+Monday, May 21, 12svg SVG 2.2+ 3.0+ 4.7+ Mob 10+ / Mini 5 4.0+9.0+Monday, May 21, 12svg old standardSVG 2.2+ 3.0+ 4.7+ Mob 10+ / Mini 5 4.0+9.0+Monday, May 21, 12svg old standard scalable vector graphicsSVG 2.2+ 3.0+ 4.7+ Mob 10+ / Mini 5 4.0+9.0+Monday, May 21, 12svg old standard scalable vector graphics (some) allows inline tagSVG 2.2+ 3.0+ 4.7+ Mob 10+ / Mini 5 4.0+9.0+Monday, May 21, 12svg old standard scalable vector graphics (some) allows inline tag (some) allows svg as backgroundSVG 2.2+ 3.0+ 4.7+ Mob 10+ / Mini 5 4.0+9.0+Monday, May 21, 12svg old standard scalable vector graphics (some) allows inline tag (some) allows svg as background (some) allows svg as fontSVG 2.2+ 3.0+ 4.7+ Mob 10+ / Mini 5 4.0+9.0+Monday, May 21, 12motion sensors DeviceOrientation 4.2+ 3.0+ 6.0+ (moz)4.7+ (basic)Monday, May 21, 12motion sensors accelerometer / gyroscope / magnetometerDeviceOrientation 4.2+ 3.0+ 6.0+ (moz)4.7+ (basic)Monday, May 21, 12motion sensors accelerometer / gyroscope / magnetometer onorientationchangeDeviceOrientation 4.2+ 3.0+ 6.0+ (moz)4.7+ (basic)Monday, May 21, 12motion sensors accelerometer / gyroscope / magnetometer onorientationchange window.orientationDeviceOrientation 4.2+ 3.0+ 6.0+ (moz)4.7+ (basic)Monday, May 21, 12motion sensors accelerometer / gyroscope / magnetometer onorientationchange window.orientation games, visual effects, pressure detection?DeviceOrientation 4.2+ 3.0+ 6.0+ (moz)4.7+ (basic)Monday, May 21, 12motion sensors accelerometer / gyroscope / magnetometer onorientationchange window.orientation games, visual effects, pressure detection?mobilexweb.com/samples/ball.html mobilexweb.com/samples/pressure.htmlDeviceOrientation 4.2+ 3.0+ 6.0+ (moz)4.7+ (basic)Monday, May 21, 12touch events Touch events 3.0+ 2.1+ 6.1+ 6.0+Monday, May 21, 12touch events iOS specificationTouch events 3.0+ 2.1+ 6.1+ 6.0+Monday, May 21, 12touch events iOS specification some differences between implementationsTouch events 3.0+ 2.1+ 6.1+ 6.0+Monday, May 21, 12touch events iOS specification some differences between implementations (some) multi-touchTouch events 3.0+ 2.1+ 6.1+ 6.0+Monday, May 21, 12touch events iOS specification some differences between implementations (some) multi-touch touchstart, touchmove, touchend, touchcancelTouch events 3.0+ 2.1+ 6.1+ 6.0+Monday, May 21, 12touch events iOS specification some differences between implementations (some) multi-touch touchstart, touchmove, touchend, touchcancel (some) touchenter, touchleaveTouch events 3.0+ 2.1+ 6.1+ 6.0+Monday, May 21, 12css3 basicCSS 3 1.0+ 1.0+ 6.0+ 6.0+9.0+ 10+ Anna+Monday, May 21, 12css3 basic basic new stylingCSS 3 1.0+ 1.0+ 6.0+ 6.0+9.0+ 10+ Anna+Monday, May 21, 12css3 basic basic new styling rounded borders, opacityCSS 3 1.0+ 1.0+ 6.0+ 6.0+9.0+ 10+ Anna+Monday, May 21, 12css3 basic basic new styling rounded borders, opacity (some) still requires prefixCSS 3 1.0+ 1.0+ 6.0+ 6.0+9.0+ 10+ Anna+Monday, May 21, 12css3 basic basic new styling rounded borders, opacity (some) still requires prefix -webkit, -o, -moz, -msCSS 3 1.0+ 1.0+ 6.0+ 6.0+9.0+ 10+ Anna+Monday, May 21, 12server-sent eventsServer-Sent events 4.1+ Mobile 11+ 6.0+Monday, May 21, 12server-sent events EventSourceServer-Sent events 4.1+ Mobile 11+ 6.0+Monday, May 21, 12server-sent events EventSource reduce AJAX/Comet solutionsServer-Sent events 4.1+ Mobile 11+ 6.0+Monday, May 21, 12server-sent events EventSource reduce AJAX/Comet solutions be careful with proxies/3g connectionsServer-Sent events 4.1+ Mobile 11+ 6.0+Monday, May 21, 12web socketsweb sockets 4.2+ Mobile 11+ 6.0+6.1+ Monday, May 21, 12web sockets Evolution of bi-directional communicationweb sockets 4.2+ Mobile 11+ 6.0+6.1+ Monday, May 21, 12web sockets Evolution of bi-directional communication reduce AJAX/Comet solutionsweb sockets 4.2+ Mobile 11+ 6.0+6.1+ Monday, May 21, 12web sockets Evolution of bi-directional communication reduce AJAX/Comet solutions be careful with proxies/3g connectionsweb sockets 4.2+ Mobile 11+ 6.0+6.1+ Monday, May 21, 12web sockets Evolution of bi-directional communication reduce AJAX/Comet solutions be careful with proxies/3g connections special serverweb sockets 4.2+ Mobile 11+ 6.0+6.1+ Monday, May 21, 12web sockets Evolution of bi-directional communication reduce AJAX/Comet solutions be careful with proxies/3g connections special server standard changed months agoweb sockets 4.2+ Mobile 11+ 6.0+6.1+ Monday, May 21, 12web workersweb workers Mobile 11+ 6.0+6.0+ Monday, May 21, 12web workers threading in JavaScriptweb workers Mobile 11+ 6.0+6.0+ Monday, May 21, 12web workers threading in JavaScript important for performanceweb workers Mobile 11+ 6.0+6.0+ Monday, May 21, 12web workers threading in JavaScript important for performance worker without DOM manipulationweb workers Mobile 11+ 6.0+6.0+ Monday, May 21, 12what is just starting...?Monday, May 21, 12apis starting to appearMonday, May 21, 12apis starting to appear XMLHttpRequest 2 - Partially on latest versionsMonday, May 21, 12apis starting to appear XMLHttpRequest 2 - Partially on latest versions Web Workers - iOS 5, Chrome, BB 6, Meego, Opera, FirefoxMonday, May 21, 12apis starting to appear XMLHttpRequest 2 - Partially on latest versions Web Workers - iOS 5, Chrome, BB 6, Meego, Opera, Firefox Server-Sent events - iOS 4.2, Chrome, BB 6.1, Opera, FFMonday, May 21, 12apis starting to appear XMLHttpRequest 2 - Partially on latest versions Web Workers - iOS 5, Chrome, BB 6, Meego, Opera, Firefox Server-Sent events - iOS 4.2, Chrome, BB 6.1, Opera, FF Web Sockets - Android 3.0Monday, May 21, 12apis starting to appear XMLHttpRequest 2 - Partially on latest versions Web Workers - iOS 5, Chrome, BB 6, Meego, Opera, Firefox Server-Sent events - iOS 4.2, Chrome, BB 6.1, Opera, FF Web Sockets - Android 3.0 Navigation Timing API - IE 9.0, Android 4, Chrome, FF 7Monday, May 21, 12apis starting to appear XMLHttpRequest 2 - Partially on latest versions Web Workers - iOS 5, Chrome, BB 6, Meego, Opera, Firefox Server-Sent events - iOS 4.2, Chrome, BB 6.1, Opera, FF Web Sockets - Android 3.0 Navigation Timing API - IE 9.0, Android 4, Chrome, FF 7 Notifications API - Firefox 6, PlayBook 2.0Monday, May 21, 12apis starting to appear XMLHttpRequest 2 - Partially on latest versions Web Workers - iOS 5, Chrome, BB 6, Meego, Opera, Firefox Server-Sent events - iOS 4.2, Chrome, BB 6.1, Opera, FF Web Sockets - Android 3.0 Navigation Timing API - IE 9.0, Android 4, Chrome, FF 7 Notifications API - Firefox 6, PlayBook 2.0 IndexedDB - Firefox 6.0, ChromeMonday, May 21, 12Monday, May 21, 12and what to expect in the future?Monday, May 21, 12for the near future...Monday, May 21, 12for the near future... Augmented Reality on the webMonday, May 21, 12for the near future... Augmented Reality on the web Camera APIMonday, May 21, 12for the near future... Augmented Reality on the web Camera API Page Visibility APIMonday, May 21, 12for the near future... Augmented Reality on the web Camera API Page Visibility API Full Screen APIMonday, May 21, 12for the near future... Augmented Reality on the web Camera API Page Visibility API Full Screen API Animation Timing APIMonday, May 21, 12for the near future... Augmented Reality on the web Camera API Page Visibility API Full Screen API Animation Timing API Speech detectionMonday, May 21, 12for the near future... Augmented Reality on the web Camera API Page Visibility API Full Screen API Animation Timing API Speech detection WebNFCMonday, May 21, 12for the near future... Augmented Reality on the web Camera API Page Visibility API Full Screen API Animation Timing API Speech detection WebNFC Native integration APIMonday, May 21, 12for the near future... Augmented Reality on the web Camera API Page Visibility API Full Screen API Animation Timing API Speech detection WebNFC Native integration API Contacts and Calendar APIMonday, May 21, 12for the near future... Augmented Reality on the web Camera API Page Visibility API Full Screen API Animation Timing API Speech detection WebNFC Native integration API Contacts and Calendar API Messaging APIMonday, May 21, 12for the near future... Augmented Reality on the web Camera API Page Visibility API Full Screen API Animation Timing API Speech detection WebNFC Native integration API Contacts and Calendar API Messaging API Orientation LockMonday, May 21, 12some last advicesMonday, May 21, 12Monday, May 21, 12performance, performanceMonday, May 21, 12good practicesMonday, May 21, 12dont be fanaticphoto by Kurt Christensen (flickr)Monday, May 21, 12be multiplatformMonday, May 21, 12befuturefriend.lyMonday, May 21, 12you can reach a good experiencePictures)from)freedigitalphotos.net)thank you!firt.mobifirtman@gmail.comtwitter: @firtwww.mobilexweb.com50% books20% trainingsJust Ask me!Monday, May 21, 12mailto:firtman@gmail.commailto:firtman@gmail.comhttp://www.mobilexweb.comhttp://www.mobilexweb.com