260 likes | 410 Views
HOW DO DEVELOPERS TAKE CONTROL OF THEIR DESTINY IN A CROSS-PLATFORM WORLD?. Mobile Computing: a disruptive spreading trend Session 2: business models & technologies. Emiliano Del Fiume, Business Development Manager, Unisys emiliano.delfiume@unisys.com Trento, 12 dec 2012. A genda.
E N D
HOW DO DEVELOPERSTAKE CONTROL OF THEIR DESTINY IN A CROSS-PLATFORM WORLD? Mobile Computing: a disruptive spreading trend Session 2: business models & technologies Emiliano Del Fiume, Business Development Manager, Unisys emiliano.delfiume@unisys.com Trento, 12 dec 2012
Agenda Session 1 • Consumerization of IT • Whatwe do in mobility • Organizations’ Point of View • Let’snotreinvent the wheel… • A practical way to approach the topic Session 2 • A new model to develop SW • Native Apps vs Web Apps • Developers’ toughchoices • Let’s put alltogheter • Recap
A new model to develop software Develop vs Aggregate: two approaches, two biz models • To get things done we can • Build all from scratch (this includes also buying snippets to integrate) • Aggregate services • Leveraging services is the new paradigm for tech and business reasons • XaaS means: pay per use, scale-up, granularity, standardization • A service is like OO: functionality comes from a black-box, it’s not my problem to let it work properly, any issue links to SLAs not to direct fix from my team • Services = plug-ins: if I need to change I can, quickly and transparently • I can mix complex stuff even if I do not have the specific skills • Dramatically reduced “time to market” and… • …I can experiment with low budget • Support iterative development: try aggregating then, ifneeded, grab specific pieces inside my core app
A new model to develop software Develop vs Aggregate: two approaches, two biz models Most of key things are already here: It’s a good idea to create something new just aggregating them… Amazon MechanicalTurk http://www.wsindex.org/ http://www.programmableweb.com/apis/directory http://www.service-repository.com/
A new model to develop software Develop vs Aggregate: two approaches, two biz models The XaaS model applies also to you, as a provider • We can (we should) replicate the model when we offer something, especially if we’re talking about mobile applications… • We have no chances to improve SLAs for our clients if we didn’t buy proper SLAs • We can gain offering different, even customized, levels of functionalities, availability, scalability, quantity (but not quality & UI: it has to be there always…) • Users are now accustomed to pay per use • Users are now accustomed to pay cheap prices ‘cause huge competition on Apps • WW we face tough economy issues therefore budgets shrink so “granularity” is appreciated by everyone! Keep in mind the Store model to distribute your Apps: in some environments (ie: Apple) you cannot avoid it…
Many players build and offer free added-value services to drive people to buy something related to the compelling topic…
A new model to develop softwareWhat characteristics we should mind • Geolocalization is a key feature • Intuitive, simple, gesture-based UIs • Device integration (GPS, agenda, contacts…) • Simplified application workflows (bear in mind if you modernize legacies) • Single Page Application (SPA) approach rather than multi-page • Do not tight data to device: cloud is something already in end-users’ minds • Through stores you can multiply gains: do not be avid on price, look at potential total sales (and remember users are accustomed to pay cheap prices and also business organizations are learning this lesson…) • Integration with social networks has two advantages: • brings a huge number to potential “clients” to you • is something people really really like. Really. Be ready to leverage/support mobile payments keeping in mind Apple’s move (no support for NFC) splits the path…
Native Apps vs Web Apps The never ending debate
Native Apps vs Web Apps: The never ending debate Choosing right kind of “App” Scenario is varied… • Native appsCoded with a specific language • Hybrid appsRely on development frameworksleveraging Web techs & standards • Dedicated web appMobile web site tailored to a specific platform or form factor • Generic mobile appMobile web sites designed to match every web-enabled phone
Native Apps vs Web Apps: The never ending debate Choosing right kind of “App”: Tradeoffs Source: DeveloperForce (http://wiki.developerforce.com)
Native Apps vs Web Apps: The never ending debate Let’s not simplify the reality! Source: www.asymco.com
Native Apps vs Web Apps: The never ending debate How IT players act • Few players are offering converging platforms to manage the entire “Mobile lifecycle” (build & distribute + manage devices) • SAP • Antenna Software • Syclo (now SAP) • Key players are converging to Web standards: mainly HTML5 + Javascript: • MS, IBM, Google, Facebook and others agree on overall approach • Strangely, Gartner doesn’t agree… • Proliferation of (Web) frameworks: they can be an alternative to the above or can integrate • MDM platforms will become “commodity” in thefuture (according to SAP and others) • Store model is helpful for small developers but large companies often doesn’t like it (see FT…) Gartner Magic Quadrant for MADP
Native Apps vs Web Apps: The never ending debate Web technologies and the skills… • HTML5 is already a standard de facto with interesting capabilities • Native video playback • New tags to supportSemantic Web, Media, etc. • Offline & Storage • Bi-directionaloptimiziedconnectivity (throughWebsockets) • Native drag & drop • Device access (GPS, phone) • 2D, 3D, Graphics & Effects • Advanced CSS • Proposedextensionsallow management of peculiardevices’ characteristics • Javascript is not the JS we used to know: now it’s a real A-grade language with advanced features • Pros • We can do real sophisticated things just with JS (including graphics) • We can use JS also on server side (=simplify skill sets in project team) • Cons • Legacy use of JS is not enough: developers have to update their skills Source: Gartner, august 2012
Native Apps vs Web Apps: The never ending debate Web technologies and the skills… • With HTML5+Javascript+Json+XML+frameworks today we can achieve: • Asyncronous programming model • Loosely coupled layers • Two-way optimized communications (with WebSockets) • Data persistence • Disconnected working even with Web App/Sites • Moreover: • Security is already guaranteed by SSL • Web services are well know to de-couple layers • OpenID allows authentication through external authorities (FB) • OAuth supports cross-domains authorization • Round-trip avoidance was already possible with AJAX+Comet • It’s already possible to build complex applications for mobile using the above technologies and standards (ie: LinkedIn app for mobile is 95% based on HTML5) Use of Javascript on server side is becoming a common approach, mainly leveraging the Google V8 engine + framework
Native Apps vs Web Apps: The never ending debate How to choose the best tech approach • If you want to choose the right approach for you, mind this questions: • How many platforms do we want/need to support? • How important is the user experience (and what do we mean with UX)? • How important is performance? • What language(s) our team know? • What’s about our budget? • Do we already have tech platforms in-house capable to support mobile development (i.e.: SAP SUP)? • But note that • Most of recent tools and major players support HTML+Javascript: IBM Worklight, MS VisualStudio… • For internal Apps maybe your company picks up one standard therefore a multi-platform development could be just an excessive zeal…
The Developer’s tough choices…
The Developer’s tough choices User Interface: one for all, customized, standard… • Multiple OSes and multiplce devices can suggestto • Create one UI for all • Be consistent with standard OS UIs • Create customized UIs to fit layouts, dimensions, etc.
The Developer’s tough choices User Interface: one for all, customized, standard… Source: Microsoft’s free book “Developing Modern Mobile Web Apps”
The Developer’s tough choices Performances & UX • If you develop Web App or Hybrid App avoid the fatal error to think like for usual Web Applications for desktops! • Average payload for a modern page is 1MB: it’s too much for mobile devices • Multipage approach is really boring for users and wastes bandwidth • New development paradigms imposed by OSes (iOS, Windows 8) do not allow you to waste time, to hang the device, etc. • Users are virtually always connected, their devices not surely!! • Solutions • Websocket (replaces AJAX+Comet) and optimize a lot the channel avoiding HTTP headers • Leverage CSS sprites • Compress data (JSonvs XML) • Do graphics on client, not images from server • SPA model • Leverage offline capabilities through local storage (user/session/DB) • Preload data in async (during pauses) • Rethink the application workflow: “mobilizing” rigidly the legacy application is too simplistic
The Developer’s tough choices How to mobilize the existing solutions • Mobile is not just about the device: don’t simplify! • Virtual Desktops (just if you’re desperate! Doesn’t work to convince client to go to mobile!) • For specific functionalities, leverage products’ capabilities (i.e.: BI dashboards) • Rethink, in this order, • Process/procedure • Application workflow • User interaction • If you already have a Web Application you can reuse skills with • Web App (great reuse maybe 95%, some compromises) • Hybrid App (better UX and performances, less reuse) • Proxy solutions (especially for terminal-based applications) • Scout specialized products according to your needs (i.e.: content delivery & management) • Have a look at “Stores”: likely your needs are not so unique! Your users already know. • The ecosystem of independent developers is huge: de-coupling layers you can let others to develop your app while you update your back-end • Openly look at external (cloud) services instead of re-writing functionalities.
Let’s go beyond… • JQuery Mobile • PhoneGap • Modernizr Local Storage Websocket Web App to Hybrid Amazon API(Rest WS) OpenID
Final Recap • Mobile computing is not a matter of the device • Cloud philosophy is key (quite mandatory) • Social computing is a strong plus • Maps are heavily used by users / Geolocalization is really useful • Market is fragmented: 3 players doesn’t mean 3 devices • You have freedom and flexibility to reuse existing skills, updating them • Gaming & Mobile TV are the new frontier in mobile business • Mobile payments are just around the corner: do not miss it! • Users want ubiquity for their data (cloud, again) • Security is not an obstacle, is just something to manage • Mobile devices can help to improve security on legacy tasks • Technologies, products & standards are already here: do not wait! • In businesses, Windows 8 will play the major role • Try Web Apps to modernize existing applications • Go Hybrid until you need native Apps for clear reasons
Thank you Q & A Docs & slides for you: http://emiliano.delfiume.it/TR