EMBARCADERO EMBARCADERO TECHNOLOGIES TECHNOLOGIES Devs2-palooza Developers and Devices David Intersimone “David I” Vice President of Developer Relations & Chief Evangelist davidi@embarcadero.com EMBARCADERO TECHNOLOGIES About David I. • • • • 44 years since my first program – IBM360/40, Fortran, Prime # Generator First 8 years – real time assembly language programmer 28 years with the developer tools group Responsibilities: – – – – – Global Evangelism Tech Partner Program MVP Program Embarcadero Community Developer Cheerleader EMBARCADERO TECHNOLOGIES Agenda • • • • • • The Changing Client Landscape Devices, Devices, Devices Tool Choices The 5 Mistakes Developers Make in Moving to Mobile Summary Q&A EMBARCADERO TECHNOLOGIES THE CHANGING CLIENT LANDSCAPE EMBARCADERO TECHNOLOGIES 2013: The Client Revolution 1 Billion 65 Million 1 Billion+ Windows Mac Mobile Today’s Unprecedented Multi-Device Landscape EMBARCADERO TECHNOLOGIES 2013+ Client Device Diversity Will Continue to Expand EMBARCADERO TECHNOLOGIES The Client Revolution An Unprecedented Multi-Device Landscape EMBARCADERO TECHNOLOGIES Apple (iOS) vs Samsung (Android) EMBARCADERO TECHNOLOGIES Mobile Platform Market Share EMBARCADERO TECHNOLOGIES Global mobile and PC tablet shipments EMBARCADERO TECHNOLOGIES Global smartphone shipments EMBARCADERO TECHNOLOGIES DEVICES, DEVICES, DEVICES EMBARCADERO TECHNOLOGIES What next-gen devices/gadgets do you have? • • • • • • • Smart phone, Tablet 2-in-1 devices Home Control/Security Automotive Digital Health Wearable Gaming EMBARCADERO TECHNOLOGIES Billions of Audio/Video Devices • • • • • • • Media – audio, video Capture – capturing, stopped Position – unspecified, front, back Flash – auto, off, on Focus – autofocus, continuous autofocus, locked Torch – off, on, auto Video capture quality – photo quality, high, medium, low EMBARCADERO TECHNOLOGIES Trillions of Sensors – Some Categories • • • • • • • • • Location - GPS, Static, Lookup, Triangulation, Broadcast, Dead Reckoning Environmental - Temperature, Pressure, Humidity, Wind Speed, Wind Direction Motion – Accelerometer (1D,2D,3D), Motion Detector, Gyrometer (1D, 2D, 3D), Speed Orientation – Compass (1D, 2D, 3D), Inclinometer (1D, 2D, 3D), Distance (1D, 2D, 3D) Electrical - Voltage, Current, Capacitance, Resistance, Inductance, Power, Potentiometer Mechanical – Boolean (Switch, Array), Multi-Value Switch, Force, Scale, Pressure, Strain Biometric – Human Presence, Human Proximity, Touch Light – Ambient Light Scanner - RFID, Barcode EMBARCADERO TECHNOLOGIES Beyond the SmartPhone/Tablet • Home Control/Automation – – – – Z-Wave - http://www.z-wave.com/ Zigbee - http://www.zigbee.org/ Nest - http://nest.com/ Philips Hue - http://www.meethue.com/ EMBARCADERO TECHNOLOGIES Digital Health – Parks Associates Q2-2013 EMBARCADERO TECHNOLOGIES Sensor Based Solutions Source: Fullpower Technologies - http://www.fullpower.com/?Page=Technology EMBARCADERO TECHNOLOGIES TOOL CHOICES EMBARCADERO TECHNOLOGIES Devices – Choose your Languages & Architectures • Languages – Native Code – C++, C, Delphi, Objective-C – Managed Code – Java, C# – Dynamic/Scripting - PHP, JavaScript, Python, Ruby, Lua • Architectures – Multi-Device / APIs – Multi-Tier – Service Oriented - HTTP/REST/JSON/XML EMBARCADERO TECHNOLOGIES Current Tool Choices Vendor Tools Single Device Multi Device Native Scripted Apple Google Microsoft HTML5 JavaScript Web Tech Based Tools EMBARCADERO TECHNOLOGIES Pros & Cons for Multi-Device Pros Native UX Native performance Secure Vendor Tools Cons Multiple code bases Multiple teams Higher dev cost Single Device Multi Device True Native Scripted Apple Google Microsoft HTML5 JavaScript Web Tech Based Tools EMBARCADERO TECHNOLOGIES Vendor tool approach to multi-device $ $ $ $ Objective-C Java C# or C++ C++ or Obj-C iOS SDK Android SDK .NET or MFC OSX SDK multiple languages, multiple codebases EMBARCADERO TECHNOLOGIES Pros & Cons for Multi-Device Pros Vendor Tools Single Device Multi Device True Native Scripted Apple Google Microsoft HTML5 JavaScript One team Lower dev costs Fast time to market Web Tech Based Tools Cons Script Performance Non-Native UX Unsecure EMBARCADERO TECHNOLOGIES Managed/Script Code Mobile Solutions $ $ $ JavaScript or C# Platform SDK Platform SDK Platform SDK one language, multiple codebases EMBARCADERO TECHNOLOGIES Native Code HTML5, JavaScript, CSS3 Titanium.Geolocation.distanceFilter = .25; Ti.Geolocation.purpose = "Callbacks Are Your Friend”; // make the API call Ti.Geolocation.getCurrentPosition(func tion(e) { // do this stuff when you have a position, OR an error if (e.error) { Ti.API.error('geo - current position' + e.error); return; } // got the location information Ti.App.info('got a location ',JSON.stringify(e)); }); Dalvik (Android/Java) JavaScript Bytecode IL 100100110010 011001001100 100110010011 001001100100 110010 ARM Binary JavaScript Runtime Interpreter Virtual Machine (VM) Runtime Native Scripted VM EMBARCADERO TECHNOLOGIES THE 5 MISTAKES DEVELOPERS MAKE IN MOVING TO MOBILE EMBARCADERO TECHNOLOGIES Mistake #1 Trying to fit a desktop experience onto a mobile device Mobile devices lack the facilities of a PC including • large display for easy viewing • a robust in memory cache for fast data process • external keyboard for easy typing Developers try to build overly complex capabilities into mobile devices: • cluttering the screen • draining device resources • impacting the end user experience How to avoid it • • identify the high value actions within the app that are most likely to be used • design only for these requirements • ensure users can complete them with minimum taps • set a maximum tolerance for the no. of steps a user has to take to complete an action Learn the most common app types and stick to those, until you are really expert EMBARCADERO TECHNOLOGIES Mistake #2 Not making the mobile user experience your top priority • With hundreds of thousands of apps your users have lots of choices • If your app is not easy to use people will avoid it • Users don’t not come back after a poor initial user experience How to avoid it • • • • Focus on a good user experience design Show users prototypes of the app on actual mobile devices for regular feedback Ensure users can complete tasks with minimum taps Ensure that you have satisfied their main requirements before releasing the app EMBARCADERO TECHNOLOGIES Mistake # 3 Too much get between your app, the OS and the Hardware • Shave every possible millisecond off response time • Utilize all relevant capabilities offered by the device • A mobile app dev platform that abstracts away device details delivers only the common denominator of functionality across devices How to avoid it • • • • Build a “True Native App” means your app is optimized for a particular OS “True Native App” is also optimised for the particular hardware Skip wrappers like JVMs that abstract away control of fine grained capabilities Code directly to the device whenever possible EMBARCADERO TECHNOLOGIES Mistake #4 Building separate apps for different platforms Building apps with separate codebases for different platforms can lead to multiple issues • Many of your end users own multiple devices • Your app may perform differently on each device • With separate apps features get released and bugs get fixed at different times • Results in out of sync scenario – confusing to users • Managing multiple codebases results in extra development work an higher overhead How to avoid it Single codebase that is complied and optimized for different platforms and device form factors • You will deliver a more consistent user experience across all devices • Realise significant savings with fewer resources required for development, QA and delivery EMBARCADERO TECHNOLOGIES Mistake # 5 Not doubling down on security Relying on device or network security measures to protect your data can be hazardous • Take active measures to protect data that is resident on the device • Take active measures to protect data passed in communications and service calls • Java, JavaScript and Android are notorious hacker targets How to avoid it • For key interactions code directly to the device • Include your own security precautions to reduce the risk of third party attacks • Encrypt sensitive data stored on the device EMBARCADERO TECHNOLOGIES RAD STUDIO XE5 Delphi – Win/Mac/iOS/Android C++Builder – Win/Mac (ios,Android Winter 2013) EMBARCADERO TECHNOLOGIES Multi-Device True Native Multi-Device True Native Embarcadero Pros Native UX Native performance Secure Single Device Native Apple Google Microsoft Pros One team Lower dev costs Fast time to market Multi Device Scripted HTML5 and JavaScript EMBARCADERO TECHNOLOGIES RAD Studio XE5 – multi-device ready $ Delphi and C++* Future FM Framework One team, One codebase * C++ planned for end of 2013 EMBARCADERO TECHNOLOGIES RAD Studio XE5- Enterprise Ready FM Your App FireDAC InterBase or SQLLite Device DataSnap Server FireDAC Methods Oracle C++ or Delphi MSSQL DB2 Sybase & more... 36 EMBARCADERO TECHNOLOGIES Windows Developer Survey – Dimensional Research • Overwhelming majority of Windows developers must add mobile to their existing app development strategy – 85% of respondents receive requests for mobile apps – 99% say existing apps must continue to be supported • Android is the most requested platform among Windows developers – 83% of the requests for mobile app have Android support as a requirement • HTML5 and JavaScript are not the solution of choice for mobile apps – 85% of respondents say native apps are best for end users – 74% of those who used HTML5 and JavaScript have had challenges Dimensional Research (UK) Q3 2013 Survey – 1,337 Windows Developers http://embt.co/DRSurvey EMBARCADERO TECHNOLOGIES Summary • Most devices (available today) are app ready • Service integrations are standardized on REST/JSON • You (developers) are the center of this Universe and will be for years to come! EMBARCADERO TECHNOLOGIES Q&A EMBARCADERO TECHNOLOGIES Resources • • • • • • • • • • • • • • Apple Developer - http://developer.apple.com/ Android Developers - http://developer.android.com/ Z-Wave Alliance - http://www.z-wavealliance.org/ Zigbee Alliance - http://www.zigbee.org/ VeraLite - http://www.micasaverde.com/ Pebble Watch - http://developer.getpebble.com/ Leap Motion - http://www.leapmotion.com/developers Philips Hue - http://www.meethue.com/ Nest - http://nest.com/ FullPower Technologies - http://www.fullpower.com/ Sphero - http://www.gosphero.com/ Parrot AR Drone - http://ardrone2.parrot.com/ Ford Developer Program - https://developer.ford.com/ GM Developer Program - https://developer.gm.com/ EMBARCADERO TECHNOLOGIES THANK YOU davidi@embarcadero.com @davidi99 blogs.embarcadero.com/davidi/