SlideShare une entreprise Scribd logo
1  sur  17
Multiplatform
App Architecture
Edwin van Schaick
Mobile App Development
Native
Applications

Native Development

Hybrid
Applications

Multiplatform native
Development

Mobile Web
Applications

Multiplatform
Framework
Development

Mobile Web
Development

Multiplatform App Architecture | 15 jan 2014
Copyright © Capgemini 2014. All Rights Reserved

2
Choosing the right development method

Feature

Native Development

Multiplatform Native
Development

Multiplatform Framework Development

Mobile Web
Development

Development Cost

High

Medium

Medium

Low

Code Sharing

None

High

High

High

Device Integration

High

High

Medium

Low

Advanced UI

High

High

Medium

Medium

Deployment

App Store

App Store

App Store + Web
Server

Web Server

Development
Language

Native

C#

HTML5, JavaScript

HTML5, JavaScript

Performance

High

High

Medium

Low (network
dependency)

Security

Full Control

Full Control

Container
Dependency

Browser Dependency

Innovation

Fast

Fast

Medium

Slow

Multiplatform App Architecture | 15 jan 2014
Copyright © Capgemini 2014. All Rights Reserved

3
One Development Environment

+

Xamarin
Multiplatform App Architecture | 15 jan 2014
Copyright © Capgemini 2014. All Rights Reserved

4
Multiplatform Native Development

Multiplatform App Architecture | 15 jan 2014
Copyright © Capgemini 2014. All Rights Reserved

5
Capgemini Layer Information App (LIA)

Multiplatform App Architecture | 15 jan 2014
Copyright © Capgemini 2014. All Rights Reserved

6
Multiplatform App Architecture

iOS

Windows

Common

Android

Domain

Presentation
Business

Resources

Back
Office
Multiplatform App Architecture | 15 jan 2014
Copyright © Capgemini 2014. All Rights Reserved

7
Multiplatform App Design Pattern
class Multiplatform App Design Pattern

Platform::Setup

Portable::App

Platform::MyView

Portable::MyView Model

Portable::MyBusinessEntity

Platform::
DependencyInj ectionBuilder

«interface»
Portable::IMyServ ice

Portable::MyDomainEntity

Platform::MyServ ice

Multiplatform App Architecture | 15 jan 2014
Copyright © Capgemini 2014. All Rights Reserved

8
App Design Layering

Presentation
Common

Domain

Business

Resources

Multiplatform App Architecture | 15 jan 2014
Copyright © Capgemini 2014. All Rights Reserved

9
Presentation Layer

Presentation

Multiplatform App Architecture | 15 jan 2014
Copyright © Capgemini 2014. All Rights Reserved

10
Business Layer

Business

Common

Domain

Multiplatform App Architecture | 15 jan 2014
Copyright © Capgemini 2014. All Rights Reserved

11
Resources Layer

Resources
Domain
Multiplatform App Architecture | 15 jan 2014
Copyright © Capgemini 2014. All Rights Reserved

12
Milky Away

Multiplatform App Architecture | 15 jan 2014
Copyright © Capgemini 2014. All Rights Reserved

13
Let’s show some code…

Multiplatform App Architecture | 15 jan 2014
Copyright © Capgemini 2014. All Rights Reserved

14
Multiplatform App Architecture Advantages
 All advantages of native development still apply
 Optimal performance and user experience through native compilation
 Full access to devices and platform services
 Full control to implement security countermeasures

 Shared design patterns and way of working across multiple platforms and applications
 Only one development environment required
 One skill set for developers

 Shared code base for iOS, Android and Windows platforms
 90% code sharing between platforms

 75% development effort reduction from second platform onwards

 One advanced development environment .NET with C#
 Full Microsoft Visual Studio and Team Foundation Server integration for all mobile development

 Uniform architecture based on Capgemini’s CASA reference architecture
 Proven way to guarantee quality, reduce cost, assure fast time to market and deliver exactly what is needed
Multiplatform App Architecture | 15 jan 2014
Copyright © Capgemini 2014. All Rights Reserved

15
Contact | Capgemini Mobile App Center Netherlands

Lead Architect Capgemini App Center Netherlands
Edwin van Schaick
Edwin.van.Schaick@capgemini.com
eschaick

http://www.capgemini.com/experts/embedded-and-mobile-solutions/edwin-van-schaick

Multiplatform App Architecture | 15 jan 2014
Copyright © Capgemini 2014. All Rights Reserved

16
About Capgemini
With more than 120,000 people in 40 countries, Capgemini is one
of the world's foremost providers of consulting, technology and
outsourcing services. The Group reported 2011 global revenues
of EUR 9.7 billion.
Together with its clients, Capgemini creates and delivers
business and technology solutions that fit their needs and drive
the
results
they
want.
A
deeply
multicultural
organization, Capgemini has developed its own way of
working, the Collaborative Business ExperienceTM, and draws on
Rightshore ®, its worldwide delivery model.
Rightshore® is a trademark belonging to Capgemini

www.capgemini.com

The information contained in this presentation is proprietary.
© 2014 Capgemini. All rights reserved.

Contenu connexe

Tendances

Challenges of the Cloud Migration Journey
Challenges of the Cloud Migration JourneyChallenges of the Cloud Migration Journey
Challenges of the Cloud Migration JourneyCloudHealth by VMware
 
Cloud Migration - Cloud Computing Benefits & Issues
Cloud Migration - Cloud Computing Benefits & IssuesCloud Migration - Cloud Computing Benefits & Issues
Cloud Migration - Cloud Computing Benefits & IssuesArtizen, Inc.
 
Cloud platform technical sales presentation
Cloud platform technical sales presentationCloud platform technical sales presentation
Cloud platform technical sales presentationNuno Alves
 
Moving to the cloud: cloud strategies and roadmaps
Moving to the cloud: cloud strategies and roadmapsMoving to the cloud: cloud strategies and roadmaps
Moving to the cloud: cloud strategies and roadmapsJisc
 
Introduction to Kong API Gateway
Introduction to Kong API GatewayIntroduction to Kong API Gateway
Introduction to Kong API GatewayYohann Ciurlik
 
Demystifying Graph Neural Networks
Demystifying Graph Neural NetworksDemystifying Graph Neural Networks
Demystifying Graph Neural NetworksNeo4j
 
Legacy application modernization with microsoft azure
Legacy application modernization with microsoft azureLegacy application modernization with microsoft azure
Legacy application modernization with microsoft azureOptiSol Business Solutions
 
Google Cloud Platform Tutorial | GCP Fundamentals | Edureka
Google Cloud Platform Tutorial | GCP Fundamentals | EdurekaGoogle Cloud Platform Tutorial | GCP Fundamentals | Edureka
Google Cloud Platform Tutorial | GCP Fundamentals | EdurekaEdureka!
 
Succeeding with Secure Access Service Edge (SASE)
Succeeding with Secure Access Service Edge (SASE)Succeeding with Secure Access Service Edge (SASE)
Succeeding with Secure Access Service Edge (SASE)Cloudflare
 
How to Move from Monitoring to Observability, On-Premises and in a Multi-Clou...
How to Move from Monitoring to Observability, On-Premises and in a Multi-Clou...How to Move from Monitoring to Observability, On-Premises and in a Multi-Clou...
How to Move from Monitoring to Observability, On-Premises and in a Multi-Clou...Splunk
 
Building A Cloud Strategy PowerPoint Presentation Slides
Building A Cloud Strategy PowerPoint Presentation SlidesBuilding A Cloud Strategy PowerPoint Presentation Slides
Building A Cloud Strategy PowerPoint Presentation SlidesSlideTeam
 
Splunk Cloud
Splunk CloudSplunk Cloud
Splunk CloudSplunk
 
Introduction to Azure
Introduction to AzureIntroduction to Azure
Introduction to AzureRobert Crane
 
Understanding cloud with Google Cloud Platform
Understanding cloud with Google Cloud PlatformUnderstanding cloud with Google Cloud Platform
Understanding cloud with Google Cloud PlatformDr. Ketan Parmar
 

Tendances (20)

Challenges of the Cloud Migration Journey
Challenges of the Cloud Migration JourneyChallenges of the Cloud Migration Journey
Challenges of the Cloud Migration Journey
 
Cloud Migration - Cloud Computing Benefits & Issues
Cloud Migration - Cloud Computing Benefits & IssuesCloud Migration - Cloud Computing Benefits & Issues
Cloud Migration - Cloud Computing Benefits & Issues
 
Cloud platform technical sales presentation
Cloud platform technical sales presentationCloud platform technical sales presentation
Cloud platform technical sales presentation
 
Moving to the cloud: cloud strategies and roadmaps
Moving to the cloud: cloud strategies and roadmapsMoving to the cloud: cloud strategies and roadmaps
Moving to the cloud: cloud strategies and roadmaps
 
Introduction to Kong API Gateway
Introduction to Kong API GatewayIntroduction to Kong API Gateway
Introduction to Kong API Gateway
 
Demystifying Graph Neural Networks
Demystifying Graph Neural NetworksDemystifying Graph Neural Networks
Demystifying Graph Neural Networks
 
Google cloud
Google cloudGoogle cloud
Google cloud
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Legacy application modernization with microsoft azure
Legacy application modernization with microsoft azureLegacy application modernization with microsoft azure
Legacy application modernization with microsoft azure
 
Azure Security Overview
Azure Security OverviewAzure Security Overview
Azure Security Overview
 
Google Cloud Platform Tutorial | GCP Fundamentals | Edureka
Google Cloud Platform Tutorial | GCP Fundamentals | EdurekaGoogle Cloud Platform Tutorial | GCP Fundamentals | Edureka
Google Cloud Platform Tutorial | GCP Fundamentals | Edureka
 
Succeeding with Secure Access Service Edge (SASE)
Succeeding with Secure Access Service Edge (SASE)Succeeding with Secure Access Service Edge (SASE)
Succeeding with Secure Access Service Edge (SASE)
 
Architecture for the API-enterprise
Architecture for the API-enterpriseArchitecture for the API-enterprise
Architecture for the API-enterprise
 
How to Move from Monitoring to Observability, On-Premises and in a Multi-Clou...
How to Move from Monitoring to Observability, On-Premises and in a Multi-Clou...How to Move from Monitoring to Observability, On-Premises and in a Multi-Clou...
How to Move from Monitoring to Observability, On-Premises and in a Multi-Clou...
 
Building A Cloud Strategy PowerPoint Presentation Slides
Building A Cloud Strategy PowerPoint Presentation SlidesBuilding A Cloud Strategy PowerPoint Presentation Slides
Building A Cloud Strategy PowerPoint Presentation Slides
 
Multi cloud security architecture
Multi cloud security architecture Multi cloud security architecture
Multi cloud security architecture
 
App Modernization with Microsoft Azure
App Modernization with Microsoft AzureApp Modernization with Microsoft Azure
App Modernization with Microsoft Azure
 
Splunk Cloud
Splunk CloudSplunk Cloud
Splunk Cloud
 
Introduction to Azure
Introduction to AzureIntroduction to Azure
Introduction to Azure
 
Understanding cloud with Google Cloud Platform
Understanding cloud with Google Cloud PlatformUnderstanding cloud with Google Cloud Platform
Understanding cloud with Google Cloud Platform
 

En vedette

architecture of mobile software applications
architecture of mobile software applicationsarchitecture of mobile software applications
architecture of mobile software applicationsHassan Dar
 
Creating an app for iPad, application development of an interactive picture book
Creating an app for iPad, application development of an interactive picture bookCreating an app for iPad, application development of an interactive picture book
Creating an app for iPad, application development of an interactive picture bookRian Visser
 
App idea powerpoint
App idea powerpointApp idea powerpoint
App idea powerpointChris Bailey
 
Cross Platform Mobile Application Architecture
Cross Platform Mobile Application ArchitectureCross Platform Mobile Application Architecture
Cross Platform Mobile Application ArchitectureDerrick Bowen
 
Mobile Application Architecture Strategy
Mobile Application Architecture StrategyMobile Application Architecture Strategy
Mobile Application Architecture StrategyGary Wong
 
Designing an App: From Idea to Market
Designing an App: From Idea to MarketDesigning an App: From Idea to Market
Designing an App: From Idea to MarketEffectiveUI
 

En vedette (8)

architecture of mobile software applications
architecture of mobile software applicationsarchitecture of mobile software applications
architecture of mobile software applications
 
Creating an app for iPad, application development of an interactive picture book
Creating an app for iPad, application development of an interactive picture bookCreating an app for iPad, application development of an interactive picture book
Creating an app for iPad, application development of an interactive picture book
 
App idea powerpoint
App idea powerpointApp idea powerpoint
App idea powerpoint
 
Designing Your App
Designing Your AppDesigning Your App
Designing Your App
 
Cross Platform Mobile Application Architecture
Cross Platform Mobile Application ArchitectureCross Platform Mobile Application Architecture
Cross Platform Mobile Application Architecture
 
Mobile Application Architecture Strategy
Mobile Application Architecture StrategyMobile Application Architecture Strategy
Mobile Application Architecture Strategy
 
Mobile App Idea
Mobile App IdeaMobile App Idea
Mobile App Idea
 
Designing an App: From Idea to Market
Designing an App: From Idea to MarketDesigning an App: From Idea to Market
Designing an App: From Idea to Market
 

Similaire à Multiplatform App Architecture

Building Mobile Apps on aPaaS platforms
Building Mobile Apps on aPaaS platformsBuilding Mobile Apps on aPaaS platforms
Building Mobile Apps on aPaaS platformsDr Ganesh Iyer
 
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
 
Red Hat Mobile
Red Hat MobileRed Hat Mobile
Red Hat MobileRed Hat
 
HTML5 Mobile Web Framework - High Level Design
HTML5 Mobile Web Framework - High Level DesignHTML5 Mobile Web Framework - High Level Design
HTML5 Mobile Web Framework - High Level DesignThanh Nguyen
 
Hybird mobile application development
Hybird mobile application developmentHybird mobile application development
Hybird mobile application developmentbeyondweb
 
Confused about Native vs Hybrid vs Cross-Platform ?
Confused about Native vs Hybrid vs Cross-Platform ?Confused about Native vs Hybrid vs Cross-Platform ?
Confused about Native vs Hybrid vs Cross-Platform ?Rosalie Lauren
 
0430 toronto smac_meetup_worklight_intro_final
0430 toronto smac_meetup_worklight_intro_final0430 toronto smac_meetup_worklight_intro_final
0430 toronto smac_meetup_worklight_intro_finalRaul Chong
 
Enterprise Mobile Development Best Practices for 2015
Enterprise Mobile Development Best Practices for 2015Enterprise Mobile Development Best Practices for 2015
Enterprise Mobile Development Best Practices for 2015AnyPresence
 
Zend php mobile and right scale rightscale compute 2013
Zend php mobile and right scale   rightscale compute 2013Zend php mobile and right scale   rightscale compute 2013
Zend php mobile and right scale rightscale compute 2013RightScale
 
Creating the Borderless Workplace
Creating the Borderless WorkplaceCreating the Borderless Workplace
Creating the Borderless WorkplaceCA Technologies
 
CA - Entrega Continua
CA - Entrega ContinuaCA - Entrega Continua
CA - Entrega ContinuaSoftware Guru
 
Cross-platform App Development Company
Cross-platform App Development CompanyCross-platform App Development Company
Cross-platform App Development CompanyThe NineHertz
 
Best Hybrid Mobile App Development Company in Vijayawada.pdf
Best Hybrid Mobile App Development Company in Vijayawada.pdfBest Hybrid Mobile App Development Company in Vijayawada.pdf
Best Hybrid Mobile App Development Company in Vijayawada.pdfAnandValluru2
 
MQ light open standards webcast
MQ light open standards webcastMQ light open standards webcast
MQ light open standards webcastachatt83
 
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
 
CA API Management: A DevOps Enabler
CA API Management: A DevOps EnablerCA API Management: A DevOps Enabler
CA API Management: A DevOps EnablerRajat Vijayvargiya
 

Similaire à Multiplatform App Architecture (20)

Mobile Development
Mobile DevelopmentMobile Development
Mobile Development
 
Building Mobile Apps on aPaaS platforms
Building Mobile Apps on aPaaS platformsBuilding Mobile Apps on aPaaS platforms
Building Mobile Apps on aPaaS platforms
 
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
 
Hybrid mobile app development
Hybrid mobile app development  Hybrid mobile app development
Hybrid mobile app development
 
Red Hat Mobile
Red Hat MobileRed Hat Mobile
Red Hat Mobile
 
HTML5 Mobile Web Framework - High Level Design
HTML5 Mobile Web Framework - High Level DesignHTML5 Mobile Web Framework - High Level Design
HTML5 Mobile Web Framework - High Level Design
 
Mobile Application Development Services
Mobile Application Development ServicesMobile Application Development Services
Mobile Application Development Services
 
Hybird mobile application development
Hybird mobile application developmentHybird mobile application development
Hybird mobile application development
 
Confused about Native vs Hybrid vs Cross-Platform ?
Confused about Native vs Hybrid vs Cross-Platform ?Confused about Native vs Hybrid vs Cross-Platform ?
Confused about Native vs Hybrid vs Cross-Platform ?
 
0430 toronto smac_meetup_worklight_intro_final
0430 toronto smac_meetup_worklight_intro_final0430 toronto smac_meetup_worklight_intro_final
0430 toronto smac_meetup_worklight_intro_final
 
Cross platform app development a complete guide
Cross platform app development a complete guideCross platform app development a complete guide
Cross platform app development a complete guide
 
Enterprise Mobile Development Best Practices for 2015
Enterprise Mobile Development Best Practices for 2015Enterprise Mobile Development Best Practices for 2015
Enterprise Mobile Development Best Practices for 2015
 
Zend php mobile and right scale rightscale compute 2013
Zend php mobile and right scale   rightscale compute 2013Zend php mobile and right scale   rightscale compute 2013
Zend php mobile and right scale rightscale compute 2013
 
Creating the Borderless Workplace
Creating the Borderless WorkplaceCreating the Borderless Workplace
Creating the Borderless Workplace
 
CA - Entrega Continua
CA - Entrega ContinuaCA - Entrega Continua
CA - Entrega Continua
 
Cross-platform App Development Company
Cross-platform App Development CompanyCross-platform App Development Company
Cross-platform App Development Company
 
Best Hybrid Mobile App Development Company in Vijayawada.pdf
Best Hybrid Mobile App Development Company in Vijayawada.pdfBest Hybrid Mobile App Development Company in Vijayawada.pdf
Best Hybrid Mobile App Development Company in Vijayawada.pdf
 
MQ light open standards webcast
MQ light open standards webcastMQ light open standards webcast
MQ light open standards webcast
 
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...
 
CA API Management: A DevOps Enabler
CA API Management: A DevOps EnablerCA API Management: A DevOps Enabler
CA API Management: A DevOps Enabler
 

Dernier

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 

Dernier (20)

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 

Multiplatform App Architecture

  • 2. Mobile App Development Native Applications Native Development Hybrid Applications Multiplatform native Development Mobile Web Applications Multiplatform Framework Development Mobile Web Development Multiplatform App Architecture | 15 jan 2014 Copyright © Capgemini 2014. All Rights Reserved 2
  • 3. Choosing the right development method Feature Native Development Multiplatform Native Development Multiplatform Framework Development Mobile Web Development Development Cost High Medium Medium Low Code Sharing None High High High Device Integration High High Medium Low Advanced UI High High Medium Medium Deployment App Store App Store App Store + Web Server Web Server Development Language Native C# HTML5, JavaScript HTML5, JavaScript Performance High High Medium Low (network dependency) Security Full Control Full Control Container Dependency Browser Dependency Innovation Fast Fast Medium Slow Multiplatform App Architecture | 15 jan 2014 Copyright © Capgemini 2014. All Rights Reserved 3
  • 4. One Development Environment + Xamarin Multiplatform App Architecture | 15 jan 2014 Copyright © Capgemini 2014. All Rights Reserved 4
  • 5. Multiplatform Native Development Multiplatform App Architecture | 15 jan 2014 Copyright © Capgemini 2014. All Rights Reserved 5
  • 6. Capgemini Layer Information App (LIA) Multiplatform App Architecture | 15 jan 2014 Copyright © Capgemini 2014. All Rights Reserved 6
  • 7. Multiplatform App Architecture iOS Windows Common Android Domain Presentation Business Resources Back Office Multiplatform App Architecture | 15 jan 2014 Copyright © Capgemini 2014. All Rights Reserved 7
  • 8. Multiplatform App Design Pattern class Multiplatform App Design Pattern Platform::Setup Portable::App Platform::MyView Portable::MyView Model Portable::MyBusinessEntity Platform:: DependencyInj ectionBuilder «interface» Portable::IMyServ ice Portable::MyDomainEntity Platform::MyServ ice Multiplatform App Architecture | 15 jan 2014 Copyright © Capgemini 2014. All Rights Reserved 8
  • 9. App Design Layering Presentation Common Domain Business Resources Multiplatform App Architecture | 15 jan 2014 Copyright © Capgemini 2014. All Rights Reserved 9
  • 10. Presentation Layer Presentation Multiplatform App Architecture | 15 jan 2014 Copyright © Capgemini 2014. All Rights Reserved 10
  • 11. Business Layer Business Common Domain Multiplatform App Architecture | 15 jan 2014 Copyright © Capgemini 2014. All Rights Reserved 11
  • 12. Resources Layer Resources Domain Multiplatform App Architecture | 15 jan 2014 Copyright © Capgemini 2014. All Rights Reserved 12
  • 13. Milky Away Multiplatform App Architecture | 15 jan 2014 Copyright © Capgemini 2014. All Rights Reserved 13
  • 14. Let’s show some code… Multiplatform App Architecture | 15 jan 2014 Copyright © Capgemini 2014. All Rights Reserved 14
  • 15. Multiplatform App Architecture Advantages  All advantages of native development still apply  Optimal performance and user experience through native compilation  Full access to devices and platform services  Full control to implement security countermeasures  Shared design patterns and way of working across multiple platforms and applications  Only one development environment required  One skill set for developers  Shared code base for iOS, Android and Windows platforms  90% code sharing between platforms  75% development effort reduction from second platform onwards  One advanced development environment .NET with C#  Full Microsoft Visual Studio and Team Foundation Server integration for all mobile development  Uniform architecture based on Capgemini’s CASA reference architecture  Proven way to guarantee quality, reduce cost, assure fast time to market and deliver exactly what is needed Multiplatform App Architecture | 15 jan 2014 Copyright © Capgemini 2014. All Rights Reserved 15
  • 16. Contact | Capgemini Mobile App Center Netherlands Lead Architect Capgemini App Center Netherlands Edwin van Schaick Edwin.van.Schaick@capgemini.com eschaick http://www.capgemini.com/experts/embedded-and-mobile-solutions/edwin-van-schaick Multiplatform App Architecture | 15 jan 2014 Copyright © Capgemini 2014. All Rights Reserved 16
  • 17. About Capgemini With more than 120,000 people in 40 countries, Capgemini is one of the world's foremost providers of consulting, technology and outsourcing services. The Group reported 2011 global revenues of EUR 9.7 billion. Together with its clients, Capgemini creates and delivers business and technology solutions that fit their needs and drive the results they want. A deeply multicultural organization, Capgemini has developed its own way of working, the Collaborative Business ExperienceTM, and draws on Rightshore ®, its worldwide delivery model. Rightshore® is a trademark belonging to Capgemini www.capgemini.com The information contained in this presentation is proprietary. © 2014 Capgemini. All rights reserved.

Notes de l'éditeur

  1. A blog about the Multiplatform App Architecture in Dutch is published at http://www.nl.capgemini.com/blog/mobility-blog/2013/11/de-beste-ontwikkelstrategie-voor-mobiele-apps
  2. Native Applications: best user experience and performance, distributed via app storesHybrid Applications: cross-platform app running in a container on all supported platforms, distributed via app storesMobile Web Applications: web application with responsive design to support many devices, runs in browser, hosted on web server, direct deploymentNative Development: multiple development environments, results in higher development costs, expertise may be hard to getMultiplatform Native Development: one development environment, shared .NET codebase with Microsoft (Windows platforms) and Xamarin (iOS and Android platforms) technologyMultiplatform Framework Development: one development environment, eg. PhoneGap (supported by IBM Worklight, SAP Mobile Platform) or Kony, shared HTML5/CSS/JavaScript codebaseMobile Web Development: one development environment with shared HTML5/CSS/JavaScript codebase, UI frameworks for responsive designMore info: http://www.nl.capgemini.com/bronnen/mobile-development-think-to-the-future-today
  3. Development type determined based on requirements.Challenges for Mobile Development:The Agile versus Quality paradoxIncreasing demands for user experience, performance, security, innovationTime to Market difficult for multiple platformsMultiple target platforms result in multiple development environmentsAnd multiple sets of development toolsResulting in higher development costsSeparate maintenance for multiple target platformsPlatform-specific expertise is hard to get
  4. One advanced development environment .NET with C#Full Microsoft Visual Studio and Team Foundation Server integration for all mobile developmentXamarin out-of-the-box offers .NET environment for both iOS and Android, but offers platform-specific classes to create apps: iOS UIViewControllers vs. Android Activities.
  5. Architecture and framework needed for optimal code sharing and separation of concerns.Core of the app is shared across all platforms. UI and platform-specific services are developed separately for each platform.All advantages of native development still applyOptimal performance and user experience through native compilationFull access to devices and platform servicesFull control to implement security countermeasuresShared code base for iOS, Android and Windows platforms90% code sharing between platforms75% development effort reduction from second platform onwards
  6. A multiplatform mobile architecture offers the possibility to create mobile applications for multiple mobile platforms and at the same time offer the flexibility to use all native functionality of the mobile operating systems to realize an optimal user experience. Combined with a powerful development environment and a comprehensive programming language it offers an excellent way to develop and maintain rich mobile applications.Core of application is shared, while navigation differs between platforms.
  7. Uniform architecture based on Capgemini’s CASA reference architectureProven way to guarantee quality, reduce cost, assure fast time to market and deliver exactly what is neededShared design patterns and way of working across multiple platforms and applicationsOnly one development environment requiredOne skill set for developers
  8. Model-View-ViewModel pattern is appliedanddependencyInjectionis usedfordynamic binding of platform specific services.
  9. The Presentation layer contains packages responsible for the user experience (UX) and the corresponding presentation logic. The Model – View – ViewModel (MVVM) pattern is used for separating the responsibilities for the visual layout and the presentation and business logic. The Business layer contains packages that realize the business logic of the application. The business logic is realized in business entity classes. The business entity classes form the Model from the Model – View – ViewModel pattern. These classes have functional meaning in the business domain of the application and aggregate the functional data. The data can be present as attributes in a business entity class and/or can be aggregated as one or more domain entity classes.The Resource layer contains packages that provide the data for the application and realizes connections to the device, its peripherals and external systems. This layer abstracts all data and connections via platform-independent interfaces, using domain entity classes to transport the data. These platform-independent interfaces are realized by platform-specific services.The Domain Entities frame consists of domain entity classes that contains the data shared between all architectural layers. Domain entity classes contain only data and do not contain business logic. Data can be aggregated as attributes and as nested domain entity classes.  The Common frame contains packages for the implementation of functionality which is shared between all layers. Examples are base classes to support the Model-View-ViewModel pattern and utility classes for security, network connections, multithreading support, configuration settings etc.
  10. SetupPlatform-specific class that is responsible for hosting the application for a specific platform. It handles platform-specific initialization and instantiates the platform-independent App class.AppPlatform-independent class that implements the application. This class is responsible for the platform-independent initialization and performs the navigation to the initial view of the application. Besides this startup code, this class does not contain any more presentation and business logic. This class owns the Model from the Model-View-ViewModel pattern, which is represented by the BusinessEntity class.MyViewModelPlatform-independent class that implements the presentation logic for a specific screen. The ViewModel class implements binding properties and command handling to realize platform-independent binding to platform-specific Views.This class uses BusinessEntity classes to retrieve and/or change business data. Services from the Resource layer are never directly accessed from a ViewModel class. MyViewPlatform-specific class that is responsible to realize a screen. The View does not contain code-behind to implement presentation logic. The presentation logic is implemented by the associated MyViewModel class and is accessible via property binding and commands.
  11. MyBusinessEntityPlatform-independent class that actually represents the Model in the Model-View-ViewModel pattern. The model consists of multiple business entity classes that contain the business logic of the mobile application. Implementing the business logic in separate business entity classes gives an additional advantage. It offers the flexibility to move the business logic to a mobile web client or business service implementation on the server side when desired. Platform-specific and also platform-independent services are accessed via specific IMyService interfaces.MyDomainEntityThis class represents a class model of platform-independent domain entity classes, which contain the business data in the form of properties. A property has a value of a uniform type or consists of one or more nested domain entity classes. A domain entity class does not contain code, except to initialize properties with a default value.
  12. IMyServicePlatform-independent interface which is specifically designed to interact with a platform-specific (or platform-independent) MyService. It is not necessary to expose complete platform services, but only implement the methods actually needed for the mobile application in an agile way. Only uniform (value) types and domain entities are used to exchange data via the interfaces between a service and the business layer.MyServicePlatform-specific (or platform-independent) service that realizes access to specific platform services, persistent data, the device resources, device peripherals or external systems. These service realizations will be kept small, because only the methods are exposed which are actually needed for the mobile application. Note that a lot of platform services are exposed in a uniform way for multiple platforms, which makes it possible to also share services across those platforms.
  13. Open source framework MvvmCross is used (but not required) to realize this architecture.