SlideShare ist ein Scribd-Unternehmen logo
1 von 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.

Weitere ähnliche Inhalte

Was ist angesagt?

CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...
CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...
CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...Amazon Web Services
 
CI/CD Overview
CI/CD OverviewCI/CD Overview
CI/CD OverviewAn Nguyen
 
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_SingaporeCI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_SingaporeAmazon Web Services
 
The Next Wave of Reliability Engineering
The Next Wave of Reliability EngineeringThe Next Wave of Reliability Engineering
The Next Wave of Reliability EngineeringMichael Kehoe
 
Efficient platform engineering with Microk8s & gopaddle.pdf
Efficient platform engineering  with  Microk8s & gopaddle.pdfEfficient platform engineering  with  Microk8s & gopaddle.pdf
Efficient platform engineering with Microk8s & gopaddle.pdfVinothini Raju
 
Slide DevSecOps Microservices
Slide DevSecOps Microservices Slide DevSecOps Microservices
Slide DevSecOps Microservices Hendri Karisma
 
Big Data Redis Mongodb Dynamodb Sharding
Big Data Redis Mongodb Dynamodb ShardingBig Data Redis Mongodb Dynamodb Sharding
Big Data Redis Mongodb Dynamodb ShardingAraf Karsh Hamid
 
Agile Methodology and Tools
Agile Methodology and ToolsAgile Methodology and Tools
Agile Methodology and ToolsNaresh Gajuveni
 
DevOps vs. Site Reliability Engineering (SRE) in Age of Kubernetes
DevOps vs. Site Reliability Engineering (SRE) in Age of KubernetesDevOps vs. Site Reliability Engineering (SRE) in Age of Kubernetes
DevOps vs. Site Reliability Engineering (SRE) in Age of KubernetesDevOps.com
 
KubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
KubeCon EU 2022: From Kubernetes to PaaS to Err What's NextKubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
KubeCon EU 2022: From Kubernetes to PaaS to Err What's NextDaniel Bryant
 
DevOps to DevSecOps Journey..
DevOps to DevSecOps Journey..DevOps to DevSecOps Journey..
DevOps to DevSecOps Journey..Siddharth Joshi
 
DevOps without DevOps Tools
DevOps without DevOps ToolsDevOps without DevOps Tools
DevOps without DevOps ToolsJagatveer Singh
 

Was ist angesagt? (20)

CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...
CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...
CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...
 
CI/CD Overview
CI/CD OverviewCI/CD Overview
CI/CD Overview
 
DevOps
DevOpsDevOps
DevOps
 
DevOps culture
DevOps cultureDevOps culture
DevOps culture
 
DevOps
DevOps DevOps
DevOps
 
DevSecOps
DevSecOpsDevSecOps
DevSecOps
 
DevOps & SRE at Google Scale
DevOps & SRE at Google ScaleDevOps & SRE at Google Scale
DevOps & SRE at Google Scale
 
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_SingaporeCI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
 
The Next Wave of Reliability Engineering
The Next Wave of Reliability EngineeringThe Next Wave of Reliability Engineering
The Next Wave of Reliability Engineering
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Infrastructure as Code (IaC)
Infrastructure as Code (IaC)Infrastructure as Code (IaC)
Infrastructure as Code (IaC)
 
Efficient platform engineering with Microk8s & gopaddle.pdf
Efficient platform engineering  with  Microk8s & gopaddle.pdfEfficient platform engineering  with  Microk8s & gopaddle.pdf
Efficient platform engineering with Microk8s & gopaddle.pdf
 
Slide DevSecOps Microservices
Slide DevSecOps Microservices Slide DevSecOps Microservices
Slide DevSecOps Microservices
 
Big Data Redis Mongodb Dynamodb Sharding
Big Data Redis Mongodb Dynamodb ShardingBig Data Redis Mongodb Dynamodb Sharding
Big Data Redis Mongodb Dynamodb Sharding
 
Agile Methodology and Tools
Agile Methodology and ToolsAgile Methodology and Tools
Agile Methodology and Tools
 
DevOps vs. Site Reliability Engineering (SRE) in Age of Kubernetes
DevOps vs. Site Reliability Engineering (SRE) in Age of KubernetesDevOps vs. Site Reliability Engineering (SRE) in Age of Kubernetes
DevOps vs. Site Reliability Engineering (SRE) in Age of Kubernetes
 
The State of DevSecOps
The State of DevSecOpsThe State of DevSecOps
The State of DevSecOps
 
KubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
KubeCon EU 2022: From Kubernetes to PaaS to Err What's NextKubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
KubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
 
DevOps to DevSecOps Journey..
DevOps to DevSecOps Journey..DevOps to DevSecOps Journey..
DevOps to DevSecOps Journey..
 
DevOps without DevOps Tools
DevOps without DevOps ToolsDevOps without DevOps Tools
DevOps without DevOps Tools
 

Andere mochten auch

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
 

Andere mochten auch (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 

Kürzlich hochgeladen (20)

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 

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.

Hinweis der Redaktion

  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.