Developing a Modern Mobile App Strategy

8,904 views

Published on

Mobile apps are important. There is little debate of that. But how you build, maintain, and deploy mobile apps remains the source of great debate for CIOs and developers alike. Unfortunately, there is no "one size fits all" mobile app strategy, so it is critical to understand how to choose the right technology for the right app. In this session, we will explore the four key approaches for building mobile apps, and establish a framework that will help you develop a mobile app strategy guaranteed to help you select the right technology for your next project.

Published in: Technology
1 Comment
18 Likes
Statistics
Notes
  • At the end of your presentation, I instantly said, amazing guy.
    You have packed a punch in this ppt. I got to know a lot about the technologies required behind each option, something which I found very useful. Thanks for sharing your understanding and knowledge.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
8,904
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
384
Comments
1
Likes
18
Embeds 0
No embeds

No notes for slide
  • Developing a Modern Mobile App StrategyMobile apps are important. There is little debate of that. But how you build, maintain, and deploy mobile apps remains the source of great debate for CIOs and developers alike. Unfortunately, there is no "one size fits all" mobile app strategy, so it is critical to understand how to choose the right technology for the right app. In this session, we will explore the four key approaches for building mobile apps, and establish a framework that will help you develop a mobile app strategy guaranteed to help you select the right technology for your next project. You will learn: Learn about the four key approaches for building mobile apps: Native, Cross Compile, Hybrid, and Web Understand the pros and cons for each technology approachGain best practice advice for developing an effective mobile app strategy
  • Clarify for the audience that I'm not implying "Modern Apps" in the Microsoft sense of the word.
  • Mobile is disrupting software development.In fact, mobile is disrupting everything from the way we socialize to the way we work, but its impact on software development is monumental. It is challenging everything we thought we knew about how to build, test, and deliver software.
  • For the last 20 or 30 years we’ve been building software for one form factor and one platform: the Windows PC. Our entire software development process has been built around this assumption.TODAY- not tomorrow- today the landscape is much different. With the arrival of mobile devices, you’re faced with many different form factors running many different operating systems. From phones to tablets to the billions of laptop and desktop computers, you’re software landscape is much more complex. And there’s still more platforms and form factors emerging every day.
  • Developers before mobile
  • Developers after mobile
  • Source: SAPhttp://fm.sap.com/data/UPLOAD/files/Mobile%20in%20the%20Enterprise%20The%20Gap%20Between%20Expectations%20and%20Expertise%20.pdf
  • POINT: People are still confused and making imperfect decisions when starting mobile projects. In other words: YOU ARE NOT ALONE. It's just time to fix the problem and get some strategy.
  • The question is then, of course, How do you deal with this disruption?Or said another way, how do you change the way you build software to deal with this multi-platform mobile and desktop world? What are your choices, your options?
  • Developing a Modern Mobile App StrategyMobile apps are important. There is little debate of that. But how you build, maintain, and deploy mobile apps remains the source of great debate for CIOs and developers alike. Unfortunately, there is no "one size fits all" mobile app strategy, so it is critical to understand how to choose the right technology for the right app. In this session, we will explore the four key approaches for building mobile apps, and establish a framework that will help you develop a mobile app strategy guaranteed to help you select the right technology for your next project. You will learn: Learn about the four key approaches for building mobile apps: Native, Cross Compile, Hybrid, and Web Understand the pros and cons for each technology approachGain best practice advice for developing an effective mobile app strategy
  • The question is then, of course, How do you deal with this disruption?Or said another way, how do you change the way you build software to deal with this multi-platform mobile and desktop world? What are your choices, your options?
  • Multiple skill sets
  • Before mobile devices, building app required lots of investment in "backend code" (business logic, data persistence, etc) and then comparatively little investment in the UI (since you only had to target one platform, one form factor)
  • After mobile, you STILL have to invest in that backend code, but now you ALSO have to invest significantly more time in the UI. You've got to think about tablets, phones, and desktop screens.Same app, but UI is harder than ever.
  • Source: http://insights.wired.com/profiles/blogs/enterprise-mobile-apps-old-school-new-rules#axzz2l3o6tr5mSame time, users expectations have changed thanks to explosion of consumer-focused mobile apps. Internal apps can no longer be ugly, like…[Next]
  • UX and UI must be at the center of the modern app development process!
  • This picture pretty much sums-up the situation.Mobile devices have made testing much more difficult.
  • Why? These reasons. AND…[next]
  • In 2012, 4000 unique devicesIn 2013, 12000 unique devicesUnique devices == screen size + OS version + other specsSource: http://opensignal.com/reports/fragmentation-2013/
  • Slide shows how quickly the leaders in mobile changed from 2005 (pre-iPhone) to 2011 (post-Android). Major players that no one thought vulnerable have quickly faded (BlackBerry, Microsoft, Palm!).POINT: There is still a lot of change happening. New devices. New platforms (Chrome OS, Sailfish, Tizen, Firefox OS, etc). New form factors (Glass, Pebble, Car), etc.YOU NEED A STRATEGY PREPARED FOR CHANGE.
  • If you think you can avoid mobile complexity by a command and control device policy, you're probably out of luck at most companies today. BYOD is real.
  • And they expected that number to grow.The enterprise is now multi-platform. Pandora's box has been opened. Rather than trying to deny the change, it's time to embrace it and figure-out how to deal with it.
  • Nearly 80% of companies have or will have a formal BYOD policy.
  • And this is why they have a BYOD policy.Last on the list: "Easier to manage."  Companies are clearly not doing this because it's easy. Unavoidable force driven by employees.
  • If all this mobile complexity makes you consider a "toaster moment," let me stop you. There is a way to deal with all of this and still keep your sanity.
  • You simply need to ask and answer this question.
  • In a perfect world, all software could have unlimited reach and unlimited richness.In the real world, we are forced to make choices about how we build software. We can choose the REACH of the WEB or the RICHNESS of NATIVE.The best strategy for dealing with a multi-platform and multi-device world marries the approach that is optimized for an application's requirements. For instance, choosing WEB to quickly deliver applications that reach all users on all mobile and desktop devices, or choosing NATIVE to take gain maximum access to hardware capabilities. A third option, HYBRID, has also emerged that blends the reach of web with the richness of native to efficiently bridge the gap between to the two extremes, giving you one more option for best optimizing the cost and time of an app.These are the options, and they should be familiar. Unfortunately, some have started to suggest you only need ONE of these options for ALL of your software development…
  • Today's mobile conversation is BROKEN!There is too much focus on "HOW" before ever thinking about "WHAT" an application needs to do. It's time to fix that.You should ALWAYS focus first on "WHAT" your app needs to do. That will directly guide the eventual decision of "HOW" to build it.EXAMPLE: Does your app need access to device sensors and APIs? No? Then WEB is probably still a great option for your app.Does your app need to do some very intense, custom animations? Yes? Then NATIVE might be the best choice.LET THE REQUIREMENTS DRIVE THE CONVERSATION.
  • The technology you need to build THIS is very different from the tools you might need to build…
  • THIS.Every app is unique. Know your app. Know your requirements.
  • And when you don't know what you're doing…
  • Three approaches: Native, Web, HybridLet requirements drive the decisionPick the approach that best marries to the requirements, team skills, platform reach, etcNow that you know the approaches, how do you know when to use them?
  • Definition
  • “Let’s build a native app…”Native app dev forces:Repetitive engineeringDevice specific developer skillsOn-going maintenance headachesComplicated dev environmentFrom major Android developer in HK:3 weeks to optimize with cross-compiled apps*Eclipse, but not exclusively (other options: Netbeans, IntelliJ, etc.)*Blackberry supports multiple app models – Native HTML5, Native Code (NDK), Blackberry Java SDK, Android Java SDK, Adobe AIRhttps://bdsc.webapps.blackberry.com/devzone/
  • Stackoverflow discussion: http://stackoverflow.com/questions/209170/how-much-does-it-cost-to-develop-an-iphone-applicationVery rough math based on values shared by Twitterificdev team. Every project will vary by complexity, time, server-side requirements, etc.KEY POINT: Not only is there a cost to design and build each native mobile app, there is also a higher MAINTENANCE cost. And it's an n+1 problem (more expensive with every added platform).
  • Unlimited Time & Unlimited Money, Build Native Apps for All Platforms
  • More explanation:http://phonegap.com/2012/05/02/phonegap-explained-visually/
  • A quick note on a variant of native app development: Multi-platform native (sometimes called "cross-compile")
  • But before you rush to build a native app, keep in mind that choosing an "installed app" approach (hybrid or native) has MANY more implications than simply how you develop your app.If you're used to doing web development especially, these are extra factors you need to seriously consider…
  • Installed apps challenge and change the way you handle app DEPLOYMENT, UPDATES, ANALYTICS, and SECURITY.You will likely need new ways of doing these things that are tailored for mobile. It's not as easy as publish a web app or even deploying a Windows desktop app.
  • A sampling of the various issues that must be considered in each area.
  • Two primary approaches to the webSingle responsive code base that spans screens (desktop/mobile)Mobile-specific code base targeted at mobile experience (often a Mobile SPA)
  • Example of Responsive
  • Example of mobile targeted
  • Show: http://cuteness.io for mobile targeted
  • More explanation:http://phonegap.com/2012/05/02/phonegap-explained-visually/
  • More explanation:http://phonegap.com/2012/05/02/phonegap-explained-visually/
  • More explanation:http://phonegap.com/2012/05/02/phonegap-explained-visually/
  • Build an app with HTML5Simplifies the funnel
  • There are many great hybrid apps in the app stores today. Done well, you'll never know. And that's the point.Users want a great experience that is easy or fun to use. Do that and they don't care how the app is built.PhoneGap gallery has many examples of apps.
  • More explanation:http://phonegap.com/2012/05/02/phonegap-explained-visually/
  • Three approaches: Native, Web, HybridLet requirements drive the decisionPick the approach that best marries to the requirements, team skills, platform reach, etcNow that you know the approaches, how do you know when to use them?
  • Can't emphasize this enough.Don't even start trying to figure-out Native/Web/Hybrid until you know your requirements.
  • In reality, your software development will be a mix of these three approaches.Every application is unique, and a smart, efficient development strategy should use the development approach best suited for the app.In fact, generally speaking, the majority of your business apps will be PERFECTLY served by WEB and HYBRID development, with a much smaller, BUT critically important portion, built NATIVELY.WEB and the related HYBRID will serve a lion's share of your app needs
  • Source: Forrester Researchhttp://www.forrester.com/Building+Mobile+Apps+Start+With+Web+Move+To+Hybrid/fulltext/-/E-RES61154?objectid=RES61154(Summary + original chart: http://www.readwriteweb.com/mobile/2012/01/hybrid-html5-apps-are-more-les.php)
  • Let's wrap-up with a look at what the analysts think about mobile strategy in 2014
  • VST13 Developing a Modern Mobile App StrategyMobile apps are important. There is little debate of that. But how you build, maintain, and deploy mobile apps remains the source of great debate for CIOs and developers alike. Unfortunately, there is no "one size fits all" mobile app strategy, so it is critical to understand how to choose the right technology for the right app. In this session, we will explore the four key approaches for building mobile apps, and establish a framework that will help you develop a mobile app strategy guaranteed to help you select the right technology for your next project. You will learn: Learn about the four key approaches for building mobile apps: Native, Cross Compile, Hybrid, and Web Understand the pros and cons for each technology approachGain best practice advice for developing an effective mobile app strategy
  • Developing a Modern Mobile App Strategy

    1. 1. Developing a Modern Mobile App Strategy Todd Anglin EVP Product Strategy, Telerik
    2. 2. What Why When How Strategy Execution
    3. 3. Mobile is disrupting software development.
    4. 4. Yesterday Today X
    5. 5. #winning BEFORE
    6. 6. AFTER
    7. 7. 82%COMPANIES WITHOUT A MOBILE STRATEGY (YET) Source: SAP, 2012
    8. 8. 40%DEVELOPERS STARTING A NATIVE APP THAT SHOULD HAVE BEEN BUILT WITH HTML5 Source: Kendo UI Global Developer Survey, 2013 31%DEVELOPERS STARTING A HTML5 APP THAT SHOULD HAVE BEEN BUILT WITH HTML5
    9. 9. You need a strategy to deal with this disruption.
    10. 10. @toddanglin EVP Product Strategy
    11. 11. Define the disruption Define the approaches Define the strategy
    12. 12. How do you deal with this disruption? Why does this disruption matter?
    13. 13. UI is harder than ever. Testing is harder than ever. Change is happening faster than ever.
    14. 14. UI is harder than ever. Multiple skillsets Many platforms Many SDKs Wildly different UX Unpredictable screens More time consuming Indirect debugging Rapidly changing
    15. 15. Business logic Data layer Data validation Service API Windows or Web UI
    16. 16. Business logic Data layer Data validation Service API Desktop UI Phone UI Tablet UI [Multi-platform]
    17. 17. Simplicity Speed User Experience MOBILE EXPECTATIONS
    18. 18. UGLY ENTERPRISE APPS DON’T CUT IT ON MOBILE
    19. 19. Testing is harder than ever.
    20. 20. ①Simulators are insufficient ②App performance varies GREATLY per device ③More devices, platforms still arriving
    21. 21. Android fragmentation
    22. 22. Change is happening faster than ever. Source: Gartner, 2012
    23. 23. I'll just tell my users what device to use." " -said nobody
    24. 24. On average, CIOs report that they support 3.5 mobile platforms in 2012 Source: Gartner, 2012
    25. 25. Assessing or Implementing 60% Implemented 19% No plans 21% 79% BYOD Source: Cisco/PC Connection BYOD Survey, 2013
    26. 26. 49% 45% 41% 40% 40% 22% Improved mobility for the workforce Employees preferred own devices Secure company data on personal devices Cost savings Improved productivity Easier to manage Source: Cisco/PC Connection BYOD Survey, 2013
    27. 27. UI is harder than ever. Testing is harder than ever. Change is happening faster than ever.
    28. 28. How do you deal with this disruption? What's the right way to target mobile?
    29. 29. Reach of Web Richness of Native Efficiency of Hybrid $ $$$
    30. 30. The Approaches Hybrid Web Native
    31. 31. Understanding when to apply each approach is the key to a successful mobile strategy.
    32. 32. How do you know which approach is right for your next app?
    33. 33. Know what you’re building! (in a word: requirements)
    34. 34. NATIVE WEB HYBRID
    35. 35. NATIVE
    36. 36. Use platform-specific APIs and SDKs to build and package apps.
    37. 37. Essential Skills Objective-C, Java, .NET, HTML/JavaScript Essential Tools XCode (for iOS), Eclipse (for Android), Visual Studio (for WinPhone) Platform Reach Each app only reaches one platform Sharable Code 0% (No UI, No logic)
    38. 38. Xcode UIKit ObjC Eclipse* XML Java Eclipse* Poly* Poly*
    39. 39. Code: $150/hr * 1,500hrs ~ $225k x (Number of Platforms) Design: $150/hr * 225hrs ~ $34k Other: $100/hr * 150hrs ~ $15k Cost: $275,000 + Maintanence (~$60k)
    40. 40. NATIVE PROS CONS Complete access to device hardware, APIs Multiple implementations required to reach multiple platforms Installable, Can be app store deployed Multiple skill sets and programming languages required Maximum control over performance Requires installation (and device provisioning if private deployment desired) Powerful platform-specific development & debugging tools direct from platform vendors New tools needed to manage app security, enforce data security policies
    41. 41. (MULTI-PLATFORM) NATIVE Use a single language to develop applications that targeting an abstraction layer to access native device APIs and SDKs across platforms. Common Examples: Xamarin, Appcelerator
    42. 42. Essential Skills Depends on the multi-platform solution (examples: C#, JavaScript) Essential Tools Usually a custom development environment Platform Reach Limited to platforms supported by underlying compiler Sharable Code Partial (UI is generally not sharable)
    43. 43. INSTALLED APPS Deployment Updates Analytics Security
    44. 44. DEPLOYMENT MANAGEMENT ANALYTICS SECURITY Private app stores Beta test user deployment Publishing & approval Offline metrics Cross-platform view Crash reports Device management Updating apps User access to apps Revoking access Securing data on device
    45. 45. WEB
    46. 46. Use web standards to create applications and the browser to deploy
    47. 47. Essential Skills HTML, JavaScript, CSS Essential Tools Anything capable of developing web apps Platform Reach iOS, Android, Windows Phone, or any HTML5 capable mobile browser Sharable Code 100% (UI + Logic)
    48. 48. RESPONSIVE WEB DESIGN MOBILE WEB APPS
    49. 49. DEMO MOBILE WEB APPS
    50. 50. WEB PROS CONS Familiar, very low developer learning curve Limited access to device hardware, APIs Easy to deploy, No software installs Poor offline support, requires "always on" Internet connection Easy to share code with desktop websites Unable to "install" on a device or publish via an app store Maximum reach Unable to match native performance for rich, animated interfaces* Reuse existing security and software management solutions Open standards-based platform (no vender lock-in)
    51. 51. HYBRID
    52. 52. Use web standards to create applications and native “wrappers” to package and enrich.
    53. 53. Native Shell + SDK Proxy Native App HTML/JS/CSS App
    54. 54. Any IDE HTML JS
    55. 55. Essential Skills HTML, JavaScript, CSS, Hybrid container (such as Apache Cordova) Essential Tools Anything used for web development* + hybrid SDKs Platform Reach Limited to reach of hybrid container, but most reach all major platforms Sharable Code Almost 100% (Some platform specific UI may be desired)
    56. 56. DEMO HYBRID MOBILE APPS
    57. 57. HYBRID PROS CONS Low learning curve for web developers Performance limited to WebView perf Installed, can be app store deployed Requires installation (and device provisioning if private deployment desired) One code base for all platforms New tools needed to manage app security, enforce data security policies Easy to transition from web to hybrid development, reuse code Extensive access to device hardware, APIs
    58. 58. NATIVE WEB HYBRID
    59. 59. TIEING IT ALL TOGETHER THE STRATEGY MODERN MOBILE STRATEGY DEFINED
    60. 60. Know your app requirements.
    61. 61. You could... Choose a "one-size-fits-all" solution Bolt-on a "mobile only" solution Create a "mix-and-match" patchwork solution Inefficient. Unoptimized. Incomplete.
    62. 62. Reach of Web Richness of Native Efficiency of HybridWeb Hybrid Native
    63. 63. Web • No device access needed • Rapidly changing requirements Hybrid • Need basic device hardware or API access • Need to reach many platforms Native • Need maximum hardware access • Limited platform targets
    64. 64. Hybrid Middleware Native Web Experience Cost AgilityPerformance [Forrester]
    65. 65. ` http://bit.ly/mobileapproachstrategy
    66. 66. "Through 2014, JavaScript performance will push HTML5 and the browser as a mainstream application developer environment. There will be long shift to HTML5 from native apps as HTML5 becomes more capable. But native apps won’t disappear, and will always offer best experiences." -Garnter, 2013
    67. 67. A smart mobile strategy uses a mix of web, hybrid, and native development to optimize the time and cost of delivering and maintaining an app to each app's requirements. -Me
    68. 68. @toddanglin name twitter @telerik.com employer email Thanks!

    ×