SlideShare a Scribd company logo
1 of 70
Download to read offline
Architectural Considerations
For Complex Mobile And Web
Applications
Vivek Jain
Application Developer
Twitter: @vivekjain10
Feb 2015, Pune
•Implementation Strategy
•Keeping Client-side Light
2
Implementation
Strategy
3
Experience
4
Experience
4
Reach
5
Reach
5
Reach
5
Reach
5
Product or Channel
6
Product or Channel
6
Product or Channel
6
Product or Channel
6
Ultimate Goal
7
UserExperience
Line of deployment
Awesome apps
Ultimate Goal
7
UserExperience
Line of deployment
Awesome apps
The Laser Strategy
8
UserExperience
Line of deployment
Awesome apps
The Laser Strategy
8
UserExperience
Line of deployment
Awesome apps
The Laser Strategy
8
UserExperience
Line of deployment
Awesome apps
The Laser Strategy
8
UserExperience
Line of deployment
Awesome apps
The Cover-your-bases Strategy
9
UserExperience
Line of deployment
Awesome apps
The Cover-your-bases Strategy
9
UserExperience
Line of deployment
Awesome apps
The Cover-your-bases Strategy
10
UserExperience
Line of deployment
Awesome apps
11
Native Vs Web
11
Native Web
Native Vs Web
11
Affordability
Native Web
Native Vs Web
11
Affordability
User Experience
Native Web
Native Vs Web
11
Affordability
User Experience
Native Web
PhoneGap
Xamarin
Calatrava
Hybrid
Titanium
Native Vs Web
Keeping
Client-side Light
12
13
Client-side Logic
13
"name": {

"first": "Amitabh",

"last": "Bachchan"

}
Client-side Logic
13
"name": {

"first": "Amitabh",

"last": "Bachchan"

}
fullName = "#{name.first} #{name.last}"
Client-side Logic
14
Change in Requirement
14
"name": {

"first": "Amitabh",

"middle": "Harivansh",

"last": "Bachchan"

}
Change in Requirement
14
"name": {

"first": "Amitabh",

"middle": "Harivansh",

"last": "Bachchan"

}
fullName = "#{name.first} #{name.middle} #{name.last}"
Change in Requirement
15
Light Client
15
"name": {

"first": "Amitabh",

"middle": "Harivansh",

"last": “Bachchan",

"full": “Amitabh Harivansh Bachchan"

}
Light Client
15
"name": {

"first": "Amitabh",

"middle": "Harivansh",

"last": “Bachchan",

"full": “Amitabh Harivansh Bachchan"

}
fullName = name.full
Light Client
Benefits
16
Benefits
• Less duplication of code
16
Benefits
• Less duplication of code
• Easier to fix defects
16
Benefits
• Less duplication of code
• Easier to fix defects
• Some changes without app release
16
API Best Practices
17
Consistent Interface
18
Consistent Interface
• Consistent Format
18
Consistent Interface
• Consistent Format
• Back-end Systems/Database Agnostic
18
Consistent Interface
• Consistent Format
• Back-end Systems/Database Agnostic
• Standard Architecture (REST)
18
Aggregate
19
"id": 1234,

"type": "savings"
"id": 1234,

"balance": 100.23
Aggregate
19
"id": 1234,

"type": "savings"
"id": 1234,

"balance": 100.23
"id": 1234,

"type": "savings",

"balance": 100.23
Optimize
20
"id": 1234,

"type": "savings”,
“branch_id": 75,
“customer_id”: 20757
Optimize
20
"id": 1234,

"type": "savings”,
“branch_id": 75,
“customer_id”: 20757
"id": 1234,

"type": "savings”,
“customer_id”: 20757
Expand, then Contract
21
Expand, then Contract
21
"name": {

"first": "Amitabh",

"last": "Bachchan"

}
Expand, then Contract
21
"name": {

"first": "Amitabh",

"last": "Bachchan"

}
"name": {

"first": "Amitabh",

"last": "Bachchan",

"full": “Amitabh Bachchan"

}
Expand, then Contract
21
"name": {

"first": "Amitabh",

"last": "Bachchan"

}
"name": {

"first": "Amitabh",

"last": "Bachchan",

"full": “Amitabh Bachchan"

}
"name": {

"full": “Amitabh Bachchan"

}
Who owns APIs?
22
Poly-skilled teams
23
Poly-skilled teams
• Client + Server side skills
23
Poly-skilled teams
• Client + Server side skills
• Empowered to make changes in any layer
23
Poly-skilled teams
• Client + Server side skills
• Empowered to make changes in any layer
• Ideal for small organizations
23
Work with API team
24
Work with API team
• Request changes
24
Work with API team
• Request changes
• Communication channel with back-end teams
24
Work with API team
• Request changes
• Communication channel with back-end teams
• Ideal for mid-size organizations
24
Mobile Facade
25
Mobile Facade
• Middle-layer seen by apps
25
Mobile Facade
• Middle-layer seen by apps
• Minimal logic to support apps (avoid business
logic)
25
Mobile Facade
• Middle-layer seen by apps
• Minimal logic to support apps (avoid business
logic)
• Aggregate and Optimize Response
25
Mobile Facade
• Middle-layer seen by apps
• Minimal logic to support apps (avoid business
logic)
• Aggregate and Optimize Response
• Ideal for large organizations
25
References
• http://martinfowler.com/articles/mobileImplStrategy.html
• http://blog.vivekjain.in/
26
Thank You!
@vivekjain10
vivek.jain@thoughtworks.com
27

More Related Content

Similar to Architectural Considerations For Complex Mobile And Web Applications

WordPress Website Design Proposal Template PowerPoint Presentation Slides
WordPress Website Design Proposal Template PowerPoint Presentation SlidesWordPress Website Design Proposal Template PowerPoint Presentation Slides
WordPress Website Design Proposal Template PowerPoint Presentation SlidesSlideTeam
 
Stage Gate Product Launch Process PowerPoint Presentation Slides
Stage Gate Product Launch Process PowerPoint Presentation Slides Stage Gate Product Launch Process PowerPoint Presentation Slides
Stage Gate Product Launch Process PowerPoint Presentation Slides SlideTeam
 
Benvenuti nella “API Economy”
Benvenuti nella “API Economy”Benvenuti nella “API Economy”
Benvenuti nella “API Economy”Codemotion
 
The ups and down of agile in an agency
The ups and down of agile in an agencyThe ups and down of agile in an agency
The ups and down of agile in an agencyLily Dart
 
Contracting for Agile Software Development
Contracting for Agile Software DevelopmentContracting for Agile Software Development
Contracting for Agile Software Developmentcspag67
 
Wordpress Development Proposal Template PowerPoint Presentation Slides
Wordpress Development Proposal Template PowerPoint Presentation SlidesWordpress Development Proposal Template PowerPoint Presentation Slides
Wordpress Development Proposal Template PowerPoint Presentation SlidesSlideTeam
 
User Experience 101 for Developers
User Experience 101 for DevelopersUser Experience 101 for Developers
User Experience 101 for DevelopersRoss Belmont
 
Fast Delivery DevOps Israel
Fast Delivery DevOps IsraelFast Delivery DevOps Israel
Fast Delivery DevOps IsraelAdrian Cockcroft
 
MongoDB World 2018: Pissing Off IT and Delivery: A Tale of 2 ODS’s
MongoDB World 2018: Pissing Off IT and Delivery: A Tale of 2 ODS’sMongoDB World 2018: Pissing Off IT and Delivery: A Tale of 2 ODS’s
MongoDB World 2018: Pissing Off IT and Delivery: A Tale of 2 ODS’sMongoDB
 
Imaro Presentation : Dark Color Theme
Imaro Presentation : Dark Color ThemeImaro Presentation : Dark Color Theme
Imaro Presentation : Dark Color Themepunkl.
 
Imaro Presentation : Light Color Theme
Imaro Presentation : Light Color ThemeImaro Presentation : Light Color Theme
Imaro Presentation : Light Color Themepunkl.
 
MongoDB.local Austin 2018: Pissing Off IT and Delivery: A Tale of 2 ODS's
MongoDB.local Austin 2018:  Pissing Off IT and Delivery: A Tale of 2 ODS'sMongoDB.local Austin 2018:  Pissing Off IT and Delivery: A Tale of 2 ODS's
MongoDB.local Austin 2018: Pissing Off IT and Delivery: A Tale of 2 ODS'sMongoDB
 
CQRS and Event Sourcing: A DevOps perspective
CQRS and Event Sourcing: A DevOps perspectiveCQRS and Event Sourcing: A DevOps perspective
CQRS and Event Sourcing: A DevOps perspectiveMaria Gomez
 
Cloud Native Cost Optimization UCC
Cloud Native Cost Optimization UCCCloud Native Cost Optimization UCC
Cloud Native Cost Optimization UCCAdrian Cockcroft
 
Bitcoin PowerPoint Presentation Slides
Bitcoin PowerPoint Presentation SlidesBitcoin PowerPoint Presentation Slides
Bitcoin PowerPoint Presentation SlidesSlideTeam
 
LEAN UX: Solving Problems Instead of Producing Paperwork
LEAN UX: Solving Problems Instead of Producing PaperworkLEAN UX: Solving Problems Instead of Producing Paperwork
LEAN UX: Solving Problems Instead of Producing PaperworkAgnieszka Maria Walorska
 
Wordpress Website Proposal Template PowerPoint Presentation Slides
Wordpress Website Proposal Template PowerPoint Presentation SlidesWordpress Website Proposal Template PowerPoint Presentation Slides
Wordpress Website Proposal Template PowerPoint Presentation SlidesSlideTeam
 
Annya Presentation : Light Color Theme
Annya Presentation : Light Color ThemeAnnya Presentation : Light Color Theme
Annya Presentation : Light Color Themepunkl.
 
Annya Presentation : Dark Color Theme
Annya Presentation : Dark Color ThemeAnnya Presentation : Dark Color Theme
Annya Presentation : Dark Color Themepunkl.
 
Microservices the Good Bad and the Ugly
Microservices the Good Bad and the UglyMicroservices the Good Bad and the Ugly
Microservices the Good Bad and the UglyAdrian Cockcroft
 

Similar to Architectural Considerations For Complex Mobile And Web Applications (20)

WordPress Website Design Proposal Template PowerPoint Presentation Slides
WordPress Website Design Proposal Template PowerPoint Presentation SlidesWordPress Website Design Proposal Template PowerPoint Presentation Slides
WordPress Website Design Proposal Template PowerPoint Presentation Slides
 
Stage Gate Product Launch Process PowerPoint Presentation Slides
Stage Gate Product Launch Process PowerPoint Presentation Slides Stage Gate Product Launch Process PowerPoint Presentation Slides
Stage Gate Product Launch Process PowerPoint Presentation Slides
 
Benvenuti nella “API Economy”
Benvenuti nella “API Economy”Benvenuti nella “API Economy”
Benvenuti nella “API Economy”
 
The ups and down of agile in an agency
The ups and down of agile in an agencyThe ups and down of agile in an agency
The ups and down of agile in an agency
 
Contracting for Agile Software Development
Contracting for Agile Software DevelopmentContracting for Agile Software Development
Contracting for Agile Software Development
 
Wordpress Development Proposal Template PowerPoint Presentation Slides
Wordpress Development Proposal Template PowerPoint Presentation SlidesWordpress Development Proposal Template PowerPoint Presentation Slides
Wordpress Development Proposal Template PowerPoint Presentation Slides
 
User Experience 101 for Developers
User Experience 101 for DevelopersUser Experience 101 for Developers
User Experience 101 for Developers
 
Fast Delivery DevOps Israel
Fast Delivery DevOps IsraelFast Delivery DevOps Israel
Fast Delivery DevOps Israel
 
MongoDB World 2018: Pissing Off IT and Delivery: A Tale of 2 ODS’s
MongoDB World 2018: Pissing Off IT and Delivery: A Tale of 2 ODS’sMongoDB World 2018: Pissing Off IT and Delivery: A Tale of 2 ODS’s
MongoDB World 2018: Pissing Off IT and Delivery: A Tale of 2 ODS’s
 
Imaro Presentation : Dark Color Theme
Imaro Presentation : Dark Color ThemeImaro Presentation : Dark Color Theme
Imaro Presentation : Dark Color Theme
 
Imaro Presentation : Light Color Theme
Imaro Presentation : Light Color ThemeImaro Presentation : Light Color Theme
Imaro Presentation : Light Color Theme
 
MongoDB.local Austin 2018: Pissing Off IT and Delivery: A Tale of 2 ODS's
MongoDB.local Austin 2018:  Pissing Off IT and Delivery: A Tale of 2 ODS'sMongoDB.local Austin 2018:  Pissing Off IT and Delivery: A Tale of 2 ODS's
MongoDB.local Austin 2018: Pissing Off IT and Delivery: A Tale of 2 ODS's
 
CQRS and Event Sourcing: A DevOps perspective
CQRS and Event Sourcing: A DevOps perspectiveCQRS and Event Sourcing: A DevOps perspective
CQRS and Event Sourcing: A DevOps perspective
 
Cloud Native Cost Optimization UCC
Cloud Native Cost Optimization UCCCloud Native Cost Optimization UCC
Cloud Native Cost Optimization UCC
 
Bitcoin PowerPoint Presentation Slides
Bitcoin PowerPoint Presentation SlidesBitcoin PowerPoint Presentation Slides
Bitcoin PowerPoint Presentation Slides
 
LEAN UX: Solving Problems Instead of Producing Paperwork
LEAN UX: Solving Problems Instead of Producing PaperworkLEAN UX: Solving Problems Instead of Producing Paperwork
LEAN UX: Solving Problems Instead of Producing Paperwork
 
Wordpress Website Proposal Template PowerPoint Presentation Slides
Wordpress Website Proposal Template PowerPoint Presentation SlidesWordpress Website Proposal Template PowerPoint Presentation Slides
Wordpress Website Proposal Template PowerPoint Presentation Slides
 
Annya Presentation : Light Color Theme
Annya Presentation : Light Color ThemeAnnya Presentation : Light Color Theme
Annya Presentation : Light Color Theme
 
Annya Presentation : Dark Color Theme
Annya Presentation : Dark Color ThemeAnnya Presentation : Dark Color Theme
Annya Presentation : Dark Color Theme
 
Microservices the Good Bad and the Ugly
Microservices the Good Bad and the UglyMicroservices the Good Bad and the Ugly
Microservices the Good Bad and the Ugly
 

Architectural Considerations For Complex Mobile And Web Applications