SlideShare a Scribd company logo
1 of 15
Download to read offline
The Business of IT®
www.parivedasolutions.com
Cross Platform Mobile Application Architecture
September 2013
Provo, UT
Our consulting strategy is built around developing our people into “Trusted Advisors”
2
Quality
of
Life
Variety of
Projects
Unmatched
Career
Development
Relationship
Driven
Sales
Collaborative
Environment
Limited
Travel
Transparency
Trusted
Advisors
Small
Teams
Pariveda is different from other consulting firms in the talent that we provide
We grow smart people who can combine knowledge across
functional boundaries
• We bridge the gap between business and technology
• Develop talent first, focused on your career development
Generalist instead of Specialist
• Our consultants are not deep in one subject and then flown across
the country chasing niche opportunities
• Your skills will not become obsolete or silo’d in a single technology
Relationship-driven sales
• Find business through networking
• Build our presence in the local market
Small teams to deliver complete solutions
• We strive to build small teams to take complete ownership of a
project and successfully deliver it
• Success is driven by responsibilities at all levels of the team
Earn trust of clients through successful delivery
• “Seller-doer” model
• Repeat clients are our biggest source of revenue
Clearly defined career path
• Developer → Architect → Trusted Advisor
• Judged against own merit, not percent promoted at each level
3
ASSIGNMENTDIFFICULTY
TIME
Boredom Growth Burn Out
Our people choose Pariveda because of the rewarding lifestyle
4
Pariveda
Stats
315 employees
273 consultants
9 offices
10 years old
20.3% headcount
growth in 2012
7.5% headcount
growth in 2013 so
far
24% revenue
growth in 2012
The Mobile App Developer's Dilemma
There are lots of cool mobile devices
You want to get your content onto as many as possible (or you don’t want to exclude any users)
Native Development
• Expensive (time, $$$ and support)
• High Quality user experience
• Full API support
• High cost per platform
Mobile Web App
• Restricted feature set
• Limited offline capabilities
• Missing app store marketing pull
• Supported by most if not all mobile devices
Cross-Platform Frameworks
• “Native” apps
• Lower cost per platform
• Lowest-Common API support
• App may not follow conventions of the platform
• Uncanny Valley
5
Getting the UI to “almost” match can be a very bad thing
Uncanny Valley
• Concept from robotics/AI design
• Differences that seem small add up to create subconscious dissonance
• In mobile development
- The screenshots look good but it doesn’t feel the same to use
- Usually caused by Web Views
6
See http://en.wikipedia.org/wiki/Uncanny_valley
Is the app a product in its own right, or just one of many channels by which the user
consumes your services?
The decision of which architecture strategy to use largely depends on the tradeoff between User
Experience/functionality and development cost. Two common categories of mobile apps fall on either side of
this spectrum.
Product
• The mobile application is the main product that customers use to interface with the company/system
• Improved User Experience/functionality is more likely to be worth the cost of separate native applications
• User discovery happens by word of mouth, app store search, social media ratings
• Example: Mobile game, media consumption app, specialized utility app (Speedometer, Instagram, Augmented
Reality)
Channel
• The mobile application is not the main product for customers, but rather one of many ways to interface with the
company/system
• Want to be able to reach more customers for a lower cost, no matter their mobile platform choice
• Discovery driven by other channels
• Example: Mobile ready shopping website, banking app, airline check-in/flight status app
How do you feel when you follow a link to a news site/blog and a pop-up encourages you to download their
app?
See http://martinfowler.com/articles/multiMobile/#product-or-channel
7
Architecture Layers in Mobile Apps
Partially connected mobile applications can be separated into six architectural layers
Server
Data
Client
Domain
Server
Domain
(Web Services)
Sync
8
Architecture Layers in Mobile Apps … continued
Native mobile development only shares the two server layers
Most cross-platform Mobile Enterprise Application Platforms (MEAPs), such as RhoMobile, PhoneGap and
Kony share all 6 layers, but can result in the "Uncanny Valley"
Some frameworks (Xamarin) allow us to share the 5 application layers, while writing separate user
interfaces, but they can be more toolsets/adapters than full frameworks
User-Client Layer
Client Domain
Client-Server Layer
Server Domain
Server Data
Application Presenters
SQLite DB
Client-side Value Objects
Web
Services
Adapter
Authentication
Adapter
REST Services
Content DB /
Source of Truth
User Interface
Native UI
(Android, IOS, Wi
ndows
Mobile, Blackberr
y, Website, etc)
HTML 5
RhoSync Server
UI BODY SERVER
9
Separate Native Apps for Each Platform
Pros
• Simple for IT and business to understand
• Best possible User Experience
• Less expensive when only requiring 1 or 2 platforms
• Can be listed in application store for the platform
Cons
• Each additional platform requires a lot of effort
• Many applications to maintain
• Need expertise in the native development
environment of each platform
Notes
• Need a separate strategy/framework for server-side
components. If you don’t already have a Services
Oriented Architecture this can be a major challenge
to implementation.
UI Body
UI Body
UI Body
10
Full Cross Platform Framework (Most MEAPs)
Pros
• A single application to maintain
• Each additional platform does not require much additional effort
• Can be listed in application store for the platform
• A number of platform choices available
• Simple Business/CRUD applications can be built rapidly
• Many MEAPS include server-side/sync components
Cons
• Uncanny Valley (UI feels slow/wrong on every device)
- Often achieve cross platform UI by using HTML views, in effect making your native app actually a web app in disguise
- “UI-Translation leads to fatal compromises in user-experience” – Martin Fowler
• Requires expertise in the particular Cross Platform framework of choice, and results in framework lock-in
• Restricted feature set (Lowest Common Denominator)
• Full cross-platform application development failed on the desktop (Java Swing) and is unlikely to become
mainstream in the mobile space for the same reasons
• Not ideal for applications that are graphically intensive (fine for graphs/simple animations, not for games)
Examples
• RhoMobile (Motorola Solutions)
• Titanium Appcelerator
• Kony (does allow better per platform customizations
than some others)
• Antenna AMPchroma
• PhoneGap/Cordova
• JQuery Mobile/Sencha/Dojo
• Verivo (Pyxis)
• IBM Worklight
• http://en.wikipedia.org/wiki/Multiple_phone_web_bas
ed_application_framework
UI Body
11
All but the UI Cross Platform Toolkits (AKA Separated Presentation/Portable Body)
Pros
• Allow reuse of much client code while still allowing the use of true
native controls
• Can design UI to match standards of the platform
• Can be listed in application store for the platform
• Can write unit tests for shared libraries
• Valuable when library (shared) code is likely to be extensive
Cons
• Often more of a platform rather than a full framework
(May have to write your own MVC framework, DB layer, etc)
• Require expertise in the particular toolkit chosen
• If library (shared) code is small, this strategy may introduce
unneeded overhead
• May not include server-side/sync components
Examples
• Xamarin
• Kony with Native/Hybrid views that use per platform
customization
• Calatrava
• Custom webview wrapper for each platform, libraries for business
logic/authentication/webservices written in javascript and shared.
• Mix of native and webview controls within an application (AKA
Native Veneer)
UI
UI Body
UI
12
Full Mobile Web Application (separate mobile site, or responsive design)
Pros
• Easy to access on any mobile device
• Expected functionality/look and feel is lower than a native application
• Web programming experience is common – small ramp up to transition desktop web developer to mobile web
• Some experiences are better suited to the web browser, even on mobile devices (news browsing, blog
reading, window shopping, etc.)
Cons
• Restricted feature set (not all sensors are available to a web application)
• Not able to list application in the application store for the platform
• Reduced ability to save state between sessions
Note
• Some gestures are ok, but don’t try to make a web application feel like a native application – that puts you back in
Uncanny Valley. Instead focus on following the principles of responsive web design.
13
Q&A
Questions?
14
References
Martin Fowler “Patterns of Enterprise Application Architecture”
http://www.gartner.com/technology/reprints.do?id=1-1I8627T&ct=130807&st=sb
http://xamarin.com/
http://martinfowler.com/bliki/CrossPlatformMobile.html
http://martinfowler.com/articles/multiMobile/
http://en.wikipedia.org/wiki/Multiple_phone_web_based_application_framework
http://martinfowler.com/articles/mobileImplStrategy.html
http://calatrava.github.com/
15

More Related Content

What's hot

Mobile architecture options
Mobile architecture optionsMobile architecture options
Mobile architecture optionsjohnsprunger
 
Introduction to Hybrid Application Development
Introduction to Hybrid Application DevelopmentIntroduction to Hybrid Application Development
Introduction to Hybrid Application DevelopmentDotitude
 
Introduction to Cross-Platform Hybrid Mobile App Development
Introduction to Cross-Platform Hybrid Mobile App DevelopmentIntroduction to Cross-Platform Hybrid Mobile App Development
Introduction to Cross-Platform Hybrid Mobile App DevelopmentÖzcan Zafer AYAN
 
Top 4 Cross Platform tools for Mobile App Development
Top 4 Cross Platform tools for Mobile App DevelopmentTop 4 Cross Platform tools for Mobile App Development
Top 4 Cross Platform tools for Mobile App Developmenttechugo
 
Hybrid vs Native Mobile App. Decide in 5 minutes!
Hybrid vs Native Mobile App. Decide in 5 minutes!Hybrid vs Native Mobile App. Decide in 5 minutes!
Hybrid vs Native Mobile App. Decide in 5 minutes!July Systems
 
Hybrid mobile app development
Hybrid mobile app developmentHybrid mobile app development
Hybrid mobile app developmentChamil Madusanka
 
Mobile application development strategy and execution
Mobile application development   strategy and executionMobile application development   strategy and execution
Mobile application development strategy and executionInnoTech
 
Hybrid vs Native vs Web Apps
Hybrid vs Native vs Web AppsHybrid vs Native vs Web Apps
Hybrid vs Native vs Web AppsPoluru S
 
Native vs Hybrid - Demystifying the Technology Dilemma
Native vs Hybrid - Demystifying the Technology Dilemma Native vs Hybrid - Demystifying the Technology Dilemma
Native vs Hybrid - Demystifying the Technology Dilemma RST-IT
 
Web App VS. Hybrid App VS. Native App?
Web App VS. Hybrid App VS. Native App?Web App VS. Hybrid App VS. Native App?
Web App VS. Hybrid App VS. Native App?Justin O'Neill
 
Intro to tech stacks bonny
Intro to tech stacks bonnyIntro to tech stacks bonny
Intro to tech stacks bonnyLama K Banna
 
The Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App DevelopmentThe Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App DevelopmentNick Landry
 
Cross Platform Mobile App Development
Cross Platform Mobile App DevelopmentCross Platform Mobile App Development
Cross Platform Mobile App DevelopmentAnnmarie Lanesey
 
Mobile App Development and Xamarin as a Complete Mobile Solution
Mobile App Development and Xamarin as a Complete Mobile SolutionMobile App Development and Xamarin as a Complete Mobile Solution
Mobile App Development and Xamarin as a Complete Mobile SolutionMukteswar Patnaik
 
Consider Starting Small
Consider Starting SmallConsider Starting Small
Consider Starting SmallAndrew Smith
 
IBM MobileFirst - Agile Application Infrastructure New Paradigm for new Workl...
IBM MobileFirst - Agile Application Infrastructure New Paradigm for new Workl...IBM MobileFirst - Agile Application Infrastructure New Paradigm for new Workl...
IBM MobileFirst - Agile Application Infrastructure New Paradigm for new Workl...Nitin Gaur
 
Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?Sura Gonzalez
 

What's hot (20)

Mobile architecture options
Mobile architecture optionsMobile architecture options
Mobile architecture options
 
Introduction to Hybrid Application Development
Introduction to Hybrid Application DevelopmentIntroduction to Hybrid Application Development
Introduction to Hybrid Application Development
 
Introduction to Cross-Platform Hybrid Mobile App Development
Introduction to Cross-Platform Hybrid Mobile App DevelopmentIntroduction to Cross-Platform Hybrid Mobile App Development
Introduction to Cross-Platform Hybrid Mobile App Development
 
Top 4 Cross Platform tools for Mobile App Development
Top 4 Cross Platform tools for Mobile App DevelopmentTop 4 Cross Platform tools for Mobile App Development
Top 4 Cross Platform tools for Mobile App Development
 
Hybrid vs Native Mobile App. Decide in 5 minutes!
Hybrid vs Native Mobile App. Decide in 5 minutes!Hybrid vs Native Mobile App. Decide in 5 minutes!
Hybrid vs Native Mobile App. Decide in 5 minutes!
 
Hybrid mobile app development
Hybrid mobile app developmentHybrid mobile app development
Hybrid mobile app development
 
Native vs. Hybrid Apps
Native vs. Hybrid AppsNative vs. Hybrid Apps
Native vs. Hybrid Apps
 
Mobile application development strategy and execution
Mobile application development   strategy and executionMobile application development   strategy and execution
Mobile application development strategy and execution
 
Hybrid vs Native vs Web Apps
Hybrid vs Native vs Web AppsHybrid vs Native vs Web Apps
Hybrid vs Native vs Web Apps
 
Native vs Hybrid - Demystifying the Technology Dilemma
Native vs Hybrid - Demystifying the Technology Dilemma Native vs Hybrid - Demystifying the Technology Dilemma
Native vs Hybrid - Demystifying the Technology Dilemma
 
On Mobile- Product Strategy
On Mobile- Product StrategyOn Mobile- Product Strategy
On Mobile- Product Strategy
 
Web App VS. Hybrid App VS. Native App?
Web App VS. Hybrid App VS. Native App?Web App VS. Hybrid App VS. Native App?
Web App VS. Hybrid App VS. Native App?
 
Intro to tech stacks bonny
Intro to tech stacks bonnyIntro to tech stacks bonny
Intro to tech stacks bonny
 
Hybrid Mobile App
Hybrid Mobile AppHybrid Mobile App
Hybrid Mobile App
 
The Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App DevelopmentThe Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App Development
 
Cross Platform Mobile App Development
Cross Platform Mobile App DevelopmentCross Platform Mobile App Development
Cross Platform Mobile App Development
 
Mobile App Development and Xamarin as a Complete Mobile Solution
Mobile App Development and Xamarin as a Complete Mobile SolutionMobile App Development and Xamarin as a Complete Mobile Solution
Mobile App Development and Xamarin as a Complete Mobile Solution
 
Consider Starting Small
Consider Starting SmallConsider Starting Small
Consider Starting Small
 
IBM MobileFirst - Agile Application Infrastructure New Paradigm for new Workl...
IBM MobileFirst - Agile Application Infrastructure New Paradigm for new Workl...IBM MobileFirst - Agile Application Infrastructure New Paradigm for new Workl...
IBM MobileFirst - Agile Application Infrastructure New Paradigm for new Workl...
 
Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?
 

Viewers also liked

2015 XFINITY Journey CMO Council 10 23 15
2015 XFINITY Journey CMO Council 10 23 152015 XFINITY Journey CMO Council 10 23 15
2015 XFINITY Journey CMO Council 10 23 15Chris Helle
 
Designing API Platforms that Developers Love - New York Life Build Blue May 2017
Designing API Platforms that Developers Love - New York Life Build Blue May 2017Designing API Platforms that Developers Love - New York Life Build Blue May 2017
Designing API Platforms that Developers Love - New York Life Build Blue May 2017Deepak Nadig
 
Comcast Codebig: An API Platform & Program [my speech at the AADI conference]
Comcast Codebig: An API Platform & Program [my speech at the AADI conference]Comcast Codebig: An API Platform & Program [my speech at the AADI conference]
Comcast Codebig: An API Platform & Program [my speech at the AADI conference]Comcast
 
Real-time systems at Twitter (Velocity 2012)
Real-time systems at Twitter (Velocity 2012)Real-time systems at Twitter (Velocity 2012)
Real-time systems at Twitter (Velocity 2012)Raffi Krikorian
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App DevelopmentChris Morrell
 
Mobile Application Architecture Strategy
Mobile Application Architecture StrategyMobile Application Architecture Strategy
Mobile Application Architecture StrategyGary Wong
 
Mobile architecture overview
Mobile architecture overviewMobile architecture overview
Mobile architecture overviewDavid Scruggs
 
Mobile Application Development
Mobile Application DevelopmentMobile Application Development
Mobile Application Developmentjini james
 
architecture of mobile software applications
architecture of mobile software applicationsarchitecture of mobile software applications
architecture of mobile software applicationsHassan Dar
 
Mobile Application Design & Development
Mobile Application Design & DevelopmentMobile Application Design & Development
Mobile Application Design & DevelopmentRonnie Liew
 
Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907NodejsFoundation
 

Viewers also liked (13)

2015 XFINITY Journey CMO Council 10 23 15
2015 XFINITY Journey CMO Council 10 23 152015 XFINITY Journey CMO Council 10 23 15
2015 XFINITY Journey CMO Council 10 23 15
 
Designing API Platforms that Developers Love - New York Life Build Blue May 2017
Designing API Platforms that Developers Love - New York Life Build Blue May 2017Designing API Platforms that Developers Love - New York Life Build Blue May 2017
Designing API Platforms that Developers Love - New York Life Build Blue May 2017
 
Comcast Codebig: An API Platform & Program [my speech at the AADI conference]
Comcast Codebig: An API Platform & Program [my speech at the AADI conference]Comcast Codebig: An API Platform & Program [my speech at the AADI conference]
Comcast Codebig: An API Platform & Program [my speech at the AADI conference]
 
Real-time systems at Twitter (Velocity 2012)
Real-time systems at Twitter (Velocity 2012)Real-time systems at Twitter (Velocity 2012)
Real-time systems at Twitter (Velocity 2012)
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App Development
 
Mobile apps marketing
Mobile apps marketingMobile apps marketing
Mobile apps marketing
 
Mobile Application Architecture Strategy
Mobile Application Architecture StrategyMobile Application Architecture Strategy
Mobile Application Architecture Strategy
 
Mobile architecture overview
Mobile architecture overviewMobile architecture overview
Mobile architecture overview
 
Mobile Application Development
Mobile Application DevelopmentMobile Application Development
Mobile Application Development
 
architecture of mobile software applications
architecture of mobile software applicationsarchitecture of mobile software applications
architecture of mobile software applications
 
Mobile Application Design & Development
Mobile Application Design & DevelopmentMobile Application Design & Development
Mobile Application Design & Development
 
Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907
 
The AI Rush
The AI RushThe AI Rush
The AI Rush
 

Similar to Cross Platform Mobile Application Architecture

What Mobile Development Approach Makes Sense
What Mobile Development Approach Makes SenseWhat Mobile Development Approach Makes Sense
What Mobile Development Approach Makes SenseDipesh Mukerji
 
Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app Ivano Malavolta
 
Mobile App Development: Off the-Shelf vs Platform
Mobile App Development: Off the-Shelf vs PlatformMobile App Development: Off the-Shelf vs Platform
Mobile App Development: Off the-Shelf vs PlatformDipesh Mukerji
 
Platform vs. Native vs. HTML5: Which mobile development makes sense for your ...
Platform vs. Native vs. HTML5: Which mobile development makes sense for your ...Platform vs. Native vs. HTML5: Which mobile development makes sense for your ...
Platform vs. Native vs. HTML5: Which mobile development makes sense for your ...Kony, Inc.
 
Whitepaper: Dealing with the Dilemma: Mobile App Development Approach & Decis...
Whitepaper: Dealing with the Dilemma: Mobile App Development Approach & Decis...Whitepaper: Dealing with the Dilemma: Mobile App Development Approach & Decis...
Whitepaper: Dealing with the Dilemma: Mobile App Development Approach & Decis...Happiest Minds Technologies
 
Kevin Whinnery: Best Practices for Cross-Platform Mobile Development
Kevin Whinnery: Best Practices for Cross-Platform Mobile DevelopmentKevin Whinnery: Best Practices for Cross-Platform Mobile Development
Kevin Whinnery: Best Practices for Cross-Platform Mobile DevelopmentAxway Appcelerator
 
Creating Effective Mobile Applications with IBM Bluemix
Creating Effective Mobile Applications with IBM BluemixCreating Effective Mobile Applications with IBM Bluemix
Creating Effective Mobile Applications with IBM BluemixAndrew Ferrier
 
HTML5: Next Generation Web Development
HTML5: Next Generation Web DevelopmentHTML5: Next Generation Web Development
HTML5: Next Generation Web DevelopmentDipesh Mukerji
 
Deal with the dilemma of hybrid and native
Deal with the dilemma of hybrid and nativeDeal with the dilemma of hybrid and native
Deal with the dilemma of hybrid and nativeswamileo1
 
Latest Trends in Mobile App Development
Latest Trends in Mobile App DevelopmentLatest Trends in Mobile App Development
Latest Trends in Mobile App DevelopmentDipesh Mukerji
 
Mobinius : Mobile Native vs Cross Platform
Mobinius : Mobile Native vs Cross PlatformMobinius : Mobile Native vs Cross Platform
Mobinius : Mobile Native vs Cross PlatformDamodar Puthiya
 
Xamarin COE by Mukteswar Patnaik
Xamarin COE by Mukteswar PatnaikXamarin COE by Mukteswar Patnaik
Xamarin COE by Mukteswar PatnaikMukteswar Patnaik
 
LATEST_TRENDS_IN_WEBSITE_DEVELOPMENT.pptx
LATEST_TRENDS_IN_WEBSITE_DEVELOPMENT.pptxLATEST_TRENDS_IN_WEBSITE_DEVELOPMENT.pptx
LATEST_TRENDS_IN_WEBSITE_DEVELOPMENT.pptxchitrachauhan21
 
Building software using Rich Clients Platforms Rikard Thulin
Building software using Rich Clients Platforms Rikard ThulinBuilding software using Rich Clients Platforms Rikard Thulin
Building software using Rich Clients Platforms Rikard ThulinRikard Thulin
 
Introduction to hybrid application development
Introduction to hybrid application developmentIntroduction to hybrid application development
Introduction to hybrid application developmentKunjan Thakkar
 
Soa architect summit mobile 2013_mar [compatibility mode]
Soa architect summit mobile 2013_mar [compatibility mode]Soa architect summit mobile 2013_mar [compatibility mode]
Soa architect summit mobile 2013_mar [compatibility mode]Sreeni Pamidala
 
Navigating the Mobile maze
Navigating the Mobile mazeNavigating the Mobile maze
Navigating the Mobile mazePraveen Bohra
 

Similar to Cross Platform Mobile Application Architecture (20)

What Mobile Development Approach Makes Sense
What Mobile Development Approach Makes SenseWhat Mobile Development Approach Makes Sense
What Mobile Development Approach Makes Sense
 
Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app
 
Mobile App Development: Off the-Shelf vs Platform
Mobile App Development: Off the-Shelf vs PlatformMobile App Development: Off the-Shelf vs Platform
Mobile App Development: Off the-Shelf vs Platform
 
Platform vs. Native vs. HTML5: Which mobile development makes sense for your ...
Platform vs. Native vs. HTML5: Which mobile development makes sense for your ...Platform vs. Native vs. HTML5: Which mobile development makes sense for your ...
Platform vs. Native vs. HTML5: Which mobile development makes sense for your ...
 
Whitepaper: Dealing with the Dilemma: Mobile App Development Approach & Decis...
Whitepaper: Dealing with the Dilemma: Mobile App Development Approach & Decis...Whitepaper: Dealing with the Dilemma: Mobile App Development Approach & Decis...
Whitepaper: Dealing with the Dilemma: Mobile App Development Approach & Decis...
 
Kevin Whinnery: Best Practices for Cross-Platform Mobile Development
Kevin Whinnery: Best Practices for Cross-Platform Mobile DevelopmentKevin Whinnery: Best Practices for Cross-Platform Mobile Development
Kevin Whinnery: Best Practices for Cross-Platform Mobile Development
 
Creating Effective Mobile Applications with IBM Bluemix
Creating Effective Mobile Applications with IBM BluemixCreating Effective Mobile Applications with IBM Bluemix
Creating Effective Mobile Applications with IBM Bluemix
 
HTML5: Next Generation Web Development
HTML5: Next Generation Web DevelopmentHTML5: Next Generation Web Development
HTML5: Next Generation Web Development
 
Deal with the dilemma of hybrid and native
Deal with the dilemma of hybrid and nativeDeal with the dilemma of hybrid and native
Deal with the dilemma of hybrid and native
 
Mobile web development
Mobile web development Mobile web development
Mobile web development
 
Latest Trends in Mobile App Development
Latest Trends in Mobile App DevelopmentLatest Trends in Mobile App Development
Latest Trends in Mobile App Development
 
Mobinius : Mobile Native vs Cross Platform
Mobinius : Mobile Native vs Cross PlatformMobinius : Mobile Native vs Cross Platform
Mobinius : Mobile Native vs Cross Platform
 
Dmdh workshop #6
Dmdh workshop #6Dmdh workshop #6
Dmdh workshop #6
 
Xamarin COE by Mukteswar Patnaik
Xamarin COE by Mukteswar PatnaikXamarin COE by Mukteswar Patnaik
Xamarin COE by Mukteswar Patnaik
 
Dealing with-the-dilemma-mob-app-dev-approaches
Dealing with-the-dilemma-mob-app-dev-approachesDealing with-the-dilemma-mob-app-dev-approaches
Dealing with-the-dilemma-mob-app-dev-approaches
 
LATEST_TRENDS_IN_WEBSITE_DEVELOPMENT.pptx
LATEST_TRENDS_IN_WEBSITE_DEVELOPMENT.pptxLATEST_TRENDS_IN_WEBSITE_DEVELOPMENT.pptx
LATEST_TRENDS_IN_WEBSITE_DEVELOPMENT.pptx
 
Building software using Rich Clients Platforms Rikard Thulin
Building software using Rich Clients Platforms Rikard ThulinBuilding software using Rich Clients Platforms Rikard Thulin
Building software using Rich Clients Platforms Rikard Thulin
 
Introduction to hybrid application development
Introduction to hybrid application developmentIntroduction to hybrid application development
Introduction to hybrid application development
 
Soa architect summit mobile 2013_mar [compatibility mode]
Soa architect summit mobile 2013_mar [compatibility mode]Soa architect summit mobile 2013_mar [compatibility mode]
Soa architect summit mobile 2013_mar [compatibility mode]
 
Navigating the Mobile maze
Navigating the Mobile mazeNavigating the Mobile maze
Navigating the Mobile maze
 

Recently uploaded

KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
RAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AIRAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AIUdaiappa Ramachandran
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.francesco barbera
 
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdfJamie (Taka) Wang
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServicePicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServiceRenan Moreira de Oliveira
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 

Recently uploaded (20)

KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
RAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AIRAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AI
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.
 
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServicePicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 

Cross Platform Mobile Application Architecture

  • 1. The Business of IT® www.parivedasolutions.com Cross Platform Mobile Application Architecture September 2013 Provo, UT
  • 2. Our consulting strategy is built around developing our people into “Trusted Advisors” 2 Quality of Life Variety of Projects Unmatched Career Development Relationship Driven Sales Collaborative Environment Limited Travel Transparency Trusted Advisors Small Teams
  • 3. Pariveda is different from other consulting firms in the talent that we provide We grow smart people who can combine knowledge across functional boundaries • We bridge the gap between business and technology • Develop talent first, focused on your career development Generalist instead of Specialist • Our consultants are not deep in one subject and then flown across the country chasing niche opportunities • Your skills will not become obsolete or silo’d in a single technology Relationship-driven sales • Find business through networking • Build our presence in the local market Small teams to deliver complete solutions • We strive to build small teams to take complete ownership of a project and successfully deliver it • Success is driven by responsibilities at all levels of the team Earn trust of clients through successful delivery • “Seller-doer” model • Repeat clients are our biggest source of revenue Clearly defined career path • Developer → Architect → Trusted Advisor • Judged against own merit, not percent promoted at each level 3 ASSIGNMENTDIFFICULTY TIME Boredom Growth Burn Out
  • 4. Our people choose Pariveda because of the rewarding lifestyle 4 Pariveda Stats 315 employees 273 consultants 9 offices 10 years old 20.3% headcount growth in 2012 7.5% headcount growth in 2013 so far 24% revenue growth in 2012
  • 5. The Mobile App Developer's Dilemma There are lots of cool mobile devices You want to get your content onto as many as possible (or you don’t want to exclude any users) Native Development • Expensive (time, $$$ and support) • High Quality user experience • Full API support • High cost per platform Mobile Web App • Restricted feature set • Limited offline capabilities • Missing app store marketing pull • Supported by most if not all mobile devices Cross-Platform Frameworks • “Native” apps • Lower cost per platform • Lowest-Common API support • App may not follow conventions of the platform • Uncanny Valley 5
  • 6. Getting the UI to “almost” match can be a very bad thing Uncanny Valley • Concept from robotics/AI design • Differences that seem small add up to create subconscious dissonance • In mobile development - The screenshots look good but it doesn’t feel the same to use - Usually caused by Web Views 6 See http://en.wikipedia.org/wiki/Uncanny_valley
  • 7. Is the app a product in its own right, or just one of many channels by which the user consumes your services? The decision of which architecture strategy to use largely depends on the tradeoff between User Experience/functionality and development cost. Two common categories of mobile apps fall on either side of this spectrum. Product • The mobile application is the main product that customers use to interface with the company/system • Improved User Experience/functionality is more likely to be worth the cost of separate native applications • User discovery happens by word of mouth, app store search, social media ratings • Example: Mobile game, media consumption app, specialized utility app (Speedometer, Instagram, Augmented Reality) Channel • The mobile application is not the main product for customers, but rather one of many ways to interface with the company/system • Want to be able to reach more customers for a lower cost, no matter their mobile platform choice • Discovery driven by other channels • Example: Mobile ready shopping website, banking app, airline check-in/flight status app How do you feel when you follow a link to a news site/blog and a pop-up encourages you to download their app? See http://martinfowler.com/articles/multiMobile/#product-or-channel 7
  • 8. Architecture Layers in Mobile Apps Partially connected mobile applications can be separated into six architectural layers Server Data Client Domain Server Domain (Web Services) Sync 8
  • 9. Architecture Layers in Mobile Apps … continued Native mobile development only shares the two server layers Most cross-platform Mobile Enterprise Application Platforms (MEAPs), such as RhoMobile, PhoneGap and Kony share all 6 layers, but can result in the "Uncanny Valley" Some frameworks (Xamarin) allow us to share the 5 application layers, while writing separate user interfaces, but they can be more toolsets/adapters than full frameworks User-Client Layer Client Domain Client-Server Layer Server Domain Server Data Application Presenters SQLite DB Client-side Value Objects Web Services Adapter Authentication Adapter REST Services Content DB / Source of Truth User Interface Native UI (Android, IOS, Wi ndows Mobile, Blackberr y, Website, etc) HTML 5 RhoSync Server UI BODY SERVER 9
  • 10. Separate Native Apps for Each Platform Pros • Simple for IT and business to understand • Best possible User Experience • Less expensive when only requiring 1 or 2 platforms • Can be listed in application store for the platform Cons • Each additional platform requires a lot of effort • Many applications to maintain • Need expertise in the native development environment of each platform Notes • Need a separate strategy/framework for server-side components. If you don’t already have a Services Oriented Architecture this can be a major challenge to implementation. UI Body UI Body UI Body 10
  • 11. Full Cross Platform Framework (Most MEAPs) Pros • A single application to maintain • Each additional platform does not require much additional effort • Can be listed in application store for the platform • A number of platform choices available • Simple Business/CRUD applications can be built rapidly • Many MEAPS include server-side/sync components Cons • Uncanny Valley (UI feels slow/wrong on every device) - Often achieve cross platform UI by using HTML views, in effect making your native app actually a web app in disguise - “UI-Translation leads to fatal compromises in user-experience” – Martin Fowler • Requires expertise in the particular Cross Platform framework of choice, and results in framework lock-in • Restricted feature set (Lowest Common Denominator) • Full cross-platform application development failed on the desktop (Java Swing) and is unlikely to become mainstream in the mobile space for the same reasons • Not ideal for applications that are graphically intensive (fine for graphs/simple animations, not for games) Examples • RhoMobile (Motorola Solutions) • Titanium Appcelerator • Kony (does allow better per platform customizations than some others) • Antenna AMPchroma • PhoneGap/Cordova • JQuery Mobile/Sencha/Dojo • Verivo (Pyxis) • IBM Worklight • http://en.wikipedia.org/wiki/Multiple_phone_web_bas ed_application_framework UI Body 11
  • 12. All but the UI Cross Platform Toolkits (AKA Separated Presentation/Portable Body) Pros • Allow reuse of much client code while still allowing the use of true native controls • Can design UI to match standards of the platform • Can be listed in application store for the platform • Can write unit tests for shared libraries • Valuable when library (shared) code is likely to be extensive Cons • Often more of a platform rather than a full framework (May have to write your own MVC framework, DB layer, etc) • Require expertise in the particular toolkit chosen • If library (shared) code is small, this strategy may introduce unneeded overhead • May not include server-side/sync components Examples • Xamarin • Kony with Native/Hybrid views that use per platform customization • Calatrava • Custom webview wrapper for each platform, libraries for business logic/authentication/webservices written in javascript and shared. • Mix of native and webview controls within an application (AKA Native Veneer) UI UI Body UI 12
  • 13. Full Mobile Web Application (separate mobile site, or responsive design) Pros • Easy to access on any mobile device • Expected functionality/look and feel is lower than a native application • Web programming experience is common – small ramp up to transition desktop web developer to mobile web • Some experiences are better suited to the web browser, even on mobile devices (news browsing, blog reading, window shopping, etc.) Cons • Restricted feature set (not all sensors are available to a web application) • Not able to list application in the application store for the platform • Reduced ability to save state between sessions Note • Some gestures are ok, but don’t try to make a web application feel like a native application – that puts you back in Uncanny Valley. Instead focus on following the principles of responsive web design. 13
  • 15. References Martin Fowler “Patterns of Enterprise Application Architecture” http://www.gartner.com/technology/reprints.do?id=1-1I8627T&ct=130807&st=sb http://xamarin.com/ http://martinfowler.com/bliki/CrossPlatformMobile.html http://martinfowler.com/articles/multiMobile/ http://en.wikipedia.org/wiki/Multiple_phone_web_based_application_framework http://martinfowler.com/articles/mobileImplStrategy.html http://calatrava.github.com/ 15