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.
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. You need a strategy to deal
with this disruption.
12. How do you deal with this disruption?
Why does this disruption matter?
13. UI is harder than ever.
Testing is harder than ever.
Change is happening faster than ever.
14. UI is harder than ever.
Multiple skillsets
Many platforms
Many SDKs
Wildly different UX
Unpredictable screens
More time consuming
Indirect debugging
Rapidly changing
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. UI is harder than ever.
Testing is harder than ever.
Change is happening faster than ever.
28.
29. How do you deal with this disruption?
What's the right way to target mobile?
45. 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
46. (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
47. 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)
58. 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)
63. 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)
66. 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
72. 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
75. "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
76. 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
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.
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