Top Banner
Architectural Considerations For Complex Mobile And Web Applications Vivek Jain Application Developer Twitter: @vivekjain10 Feb 2015, Pune
70

Architectural Considerations For Complex Mobile And Web Applications

Aug 18, 2015

Download

Documents

Vivek Jain
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Architectural Considerations For Complex Mobile And Web Applications

Architectural Considerations For Complex Mobile And Web Applications

Vivek Jain Application Developer Twitter: @vivekjain10

Feb 2015, Pune

Page 2: Architectural Considerations For Complex Mobile And Web Applications

• Implementation Strategy

• Keeping Client-side Light

2

Page 3: Architectural Considerations For Complex Mobile And Web Applications

Implementation Strategy

3

Page 4: Architectural Considerations For Complex Mobile And Web Applications

Experience

4

Page 5: Architectural Considerations For Complex Mobile And Web Applications

Experience

4

Page 6: Architectural Considerations For Complex Mobile And Web Applications

Reach

5

Page 7: Architectural Considerations For Complex Mobile And Web Applications

Reach

5

Page 8: Architectural Considerations For Complex Mobile And Web Applications

Reach

5

Page 9: Architectural Considerations For Complex Mobile And Web Applications

Reach

5

Page 10: Architectural Considerations For Complex Mobile And Web Applications

Product or Channel

6

Page 11: Architectural Considerations For Complex Mobile And Web Applications

Product or Channel

6

Page 12: Architectural Considerations For Complex Mobile And Web Applications

Product or Channel

6

Page 13: Architectural Considerations For Complex Mobile And Web Applications

Product or Channel

6

Page 14: Architectural Considerations For Complex Mobile And Web Applications

Ultimate Goal

7

Use

r Exp

erie

nce

Line of deployment

Awesome apps

Page 15: Architectural Considerations For Complex Mobile And Web Applications

Ultimate Goal

7

Use

r Exp

erie

nce

Line of deployment

Awesome apps

Page 16: Architectural Considerations For Complex Mobile And Web Applications

The Laser Strategy

8

Use

r Exp

erie

nce

Line of deployment

Awesome apps

Page 17: Architectural Considerations For Complex Mobile And Web Applications

The Laser Strategy

8

Use

r Exp

erie

nce

Line of deployment

Awesome apps

Page 18: Architectural Considerations For Complex Mobile And Web Applications

The Laser Strategy

8

Use

r Exp

erie

nce

Line of deployment

Awesome apps

Page 19: Architectural Considerations For Complex Mobile And Web Applications

The Laser Strategy

8

Use

r Exp

erie

nce

Line of deployment

Awesome apps

Page 20: Architectural Considerations For Complex Mobile And Web Applications

The Cover-your-bases Strategy

9

Use

r Exp

erie

nce

Line of deployment

Awesome apps

Page 21: Architectural Considerations For Complex Mobile And Web Applications

The Cover-your-bases Strategy

9

Use

r Exp

erie

nce

Line of deployment

Awesome apps

Page 22: Architectural Considerations For Complex Mobile And Web Applications

The Cover-your-bases Strategy

10

Use

r Exp

erie

nce

Line of deployment

Awesome apps

Page 23: Architectural Considerations For Complex Mobile And Web Applications

11

Native Vs Web

Page 24: Architectural Considerations For Complex Mobile And Web Applications

11

Native Web

Native Vs Web

Page 25: Architectural Considerations For Complex Mobile And Web Applications

11

Affordability

Native Web

Native Vs Web

Page 26: Architectural Considerations For Complex Mobile And Web Applications

11

Affordability

User Experience

Native Web

Native Vs Web

Page 27: Architectural Considerations For Complex Mobile And Web Applications

11

Affordability

User Experience

Native Web

PhoneGapXamarin

Calatrava

Hybrid

Titanium

Native Vs Web

Page 28: Architectural Considerations For Complex Mobile And Web Applications

Keeping Client-side Light

12

Page 29: Architectural Considerations For Complex Mobile And Web Applications

13

Client-side Logic

Page 30: Architectural Considerations For Complex Mobile And Web Applications

13

"name": { "first": "Amitabh", "last": "Bachchan"}

Client-side Logic

Page 31: Architectural Considerations For Complex Mobile And Web Applications

13

"name": { "first": "Amitabh", "last": "Bachchan"}

fullName = "#{name.first} #{name.last}"

Client-side Logic

Page 32: Architectural Considerations For Complex Mobile And Web Applications

14

Change in Requirement

Page 33: Architectural Considerations For Complex Mobile And Web Applications

14

"name": { "first": "Amitabh", "middle": "Harivansh", "last": "Bachchan"}

Change in Requirement

Page 34: Architectural Considerations For Complex Mobile And Web Applications

14

"name": { "first": "Amitabh", "middle": "Harivansh", "last": "Bachchan"}

fullName = "#{name.first} #{name.middle} #{name.last}"

Change in Requirement

Page 35: Architectural Considerations For Complex Mobile And Web Applications

15

Light Client

Page 36: Architectural Considerations For Complex Mobile And Web Applications

15

"name": { "first": "Amitabh", "middle": "Harivansh", "last": “Bachchan", "full": “Amitabh Harivansh Bachchan"}

Light Client

Page 37: Architectural Considerations For Complex Mobile And Web Applications

15

"name": { "first": "Amitabh", "middle": "Harivansh", "last": “Bachchan", "full": “Amitabh Harivansh Bachchan"}

fullName = name.full

Light Client

Page 38: Architectural Considerations For Complex Mobile And Web Applications

Benefits

16

Page 39: Architectural Considerations For Complex Mobile And Web Applications

Benefits

• Less duplication of code

16

Page 40: Architectural Considerations For Complex Mobile And Web Applications

Benefits

• Less duplication of code

• Easier to fix defects

16

Page 41: Architectural Considerations For Complex Mobile And Web Applications

Benefits

• Less duplication of code

• Easier to fix defects

• Some changes without app release

16

Page 42: Architectural Considerations For Complex Mobile And Web Applications

API Best Practices

17

Page 43: Architectural Considerations For Complex Mobile And Web Applications

Consistent Interface

18

Page 44: Architectural Considerations For Complex Mobile And Web Applications

Consistent Interface

• Consistent Format

18

Page 45: Architectural Considerations For Complex Mobile And Web Applications

Consistent Interface

• Consistent Format

• Back-end Systems/Database Agnostic

18

Page 46: Architectural Considerations For Complex Mobile And Web Applications

Consistent Interface

• Consistent Format

• Back-end Systems/Database Agnostic

• Standard Architecture (REST)

18

Page 47: Architectural Considerations For Complex Mobile And Web Applications

Aggregate

19

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

"id": 1234, "balance": 100.23

Page 48: Architectural Considerations For Complex Mobile And Web Applications

Aggregate

19

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

"id": 1234, "balance": 100.23

"id": 1234, "type": "savings", "balance": 100.23

Page 49: Architectural Considerations For Complex Mobile And Web Applications

Optimize

20

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

Page 50: Architectural Considerations For Complex Mobile And Web Applications

Optimize

20

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

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

Page 51: Architectural Considerations For Complex Mobile And Web Applications

Expand, then Contract

21

Page 52: Architectural Considerations For Complex Mobile And Web Applications

Expand, then Contract

21

"name": { "first": "Amitabh", "last": "Bachchan"}

Page 53: Architectural Considerations For Complex Mobile And Web Applications

Expand, then Contract

21

"name": { "first": "Amitabh", "last": "Bachchan"}

"name": { "first": "Amitabh", "last": "Bachchan", "full": “Amitabh Bachchan"}

Page 54: Architectural Considerations For Complex Mobile And Web Applications

Expand, then Contract

21

"name": { "first": "Amitabh", "last": "Bachchan"}

"name": { "first": "Amitabh", "last": "Bachchan", "full": “Amitabh Bachchan"}

"name": { "full": “Amitabh Bachchan"}

Page 55: Architectural Considerations For Complex Mobile And Web Applications

Who owns APIs?

22

Page 56: Architectural Considerations For Complex Mobile And Web Applications

Poly-skilled teams

23

Page 57: Architectural Considerations For Complex Mobile And Web Applications

Poly-skilled teams

• Client + Server side skills

23

Page 58: Architectural Considerations For Complex Mobile And Web Applications

Poly-skilled teams

• Client + Server side skills

• Empowered to make changes in any layer

23

Page 59: Architectural Considerations For Complex Mobile And Web Applications

Poly-skilled teams

• Client + Server side skills

• Empowered to make changes in any layer

• Ideal for small organizations

23

Page 60: Architectural Considerations For Complex Mobile And Web Applications

Work with API team

24

Page 61: Architectural Considerations For Complex Mobile And Web Applications

Work with API team

• Request changes

24

Page 62: Architectural Considerations For Complex Mobile And Web Applications

Work with API team

• Request changes

• Communication channel with back-end teams

24

Page 63: Architectural Considerations For Complex Mobile And Web Applications

Work with API team

• Request changes

• Communication channel with back-end teams

• Ideal for mid-size organizations

24

Page 64: Architectural Considerations For Complex Mobile And Web Applications

Mobile Facade

25

Page 65: Architectural Considerations For Complex Mobile And Web Applications

Mobile Facade

• Middle-layer seen by apps

25

Page 66: Architectural Considerations For Complex Mobile And Web Applications

Mobile Facade

• Middle-layer seen by apps

• Minimal logic to support apps (avoid business logic)

25

Page 67: Architectural Considerations For Complex Mobile And Web Applications

Mobile Facade

• Middle-layer seen by apps

• Minimal logic to support apps (avoid business logic)

• Aggregate and Optimize Response

25

Page 68: Architectural Considerations For Complex Mobile And Web Applications

Mobile Facade

• Middle-layer seen by apps

• Minimal logic to support apps (avoid business logic)

• Aggregate and Optimize Response

• Ideal for large organizations

25

Page 69: Architectural Considerations For Complex Mobile And Web Applications

References

• http://martinfowler.com/articles/mobileImplStrategy.html

• http://blog.vivekjain.in/

26

Page 70: Architectural Considerations For Complex Mobile And Web Applications

Thank You!

@vivekjain10 [email protected]

27