25
@fernando_cejas WEBVIEW: The Fifth Element

Webview: The fifth element

Embed Size (px)

DESCRIPTION

Talk about different experiences related with mobile web and the android webview. Native vs Hybrid. Drawbacks and benefits of native and hybrid applications

Citation preview

Page 1: Webview: The fifth element

@fernando_cejas

WEBVIEW: The Fifth Element

Page 2: Webview: The fifth element

Who am I?

•  GDG Organizer •  Android, Agile and

technology Geek •  NFC Actions App •  Mobile Developer

@fernando_cejas

http://www.fernandocejas.com/

Page 3: Webview: The fifth element

Agenda

•  Native vs web •  Web developers •  Native developers •  Benefits and drawbacks •  The webview •  Experiences •  Advices  

Page 4: Webview: The fifth element

What the hell…? …I am a native developer

Page 5: Webview: The fifth element

Why the title? What were you thinking about?

Page 6: Webview: The fifth element

Actually…

•  Activities •  Intents •  Services •  Widgets •  ...and Webview!!!

Page 7: Webview: The fifth element

Native vs web???

Page 8: Webview: The fifth element

Web developers? Designers?

Page 9: Webview: The fifth element

Native developers…????

Page 10: Webview: The fifth element

Benefits of native development

•  Default OS look & feel (UI conventions) •  Performance •  Access to device hardware (GPS, etc) •  App store/marketplace distribution •  Benefit from latest OS enhancements

Page 11: Webview: The fifth element

Drawbacks of native development

•  Tied to the particular OS you built for •  Maintaining a multi OS team/skill-set •  Dealing with the app store approval

process •  Keeping app in sync with OS updates

Page 12: Webview: The fifth element

Benefits of hybrid development

•  Common codebase for multiple OS's •  Access to device hardware (GPS, etc) •  App store/marketplace distribution •  Skills you already have (HTML, CSS, JS) •  Potential code reuse in web site/app

Page 13: Webview: The fifth element

Drawbacks of hybrid development

•  Build for lowest common denominator •  3rd party SDK's might lag behind OS –  Want to use feature X? Wait for an

implementation in abstraction layer

•  An abstraction layer can have bugs of its own. Have to determine if a bug is in your code, the abstraction layer, or OS.

Page 14: Webview: The fifth element

So, what should I build?

• Desktop web app • Mobile web app • Mobile native app

Page 15: Webview: The fifth element

We can live together…

Page 16: Webview: The fifth element

Webview and the mobile web…

• Webviews and Mobile web are almost the same…

Page 17: Webview: The fifth element

Webview and the mobile web…

• 2 small differences: – Mobile web authenticates with

web session – Webview sets up protocols links

Page 18: Webview: The fifth element
Page 19: Webview: The fifth element
Page 20: Webview: The fifth element

Webview and the mobile web…

• 1 big difference: – Through webviews we can

access native capabilities

Page 21: Webview: The fifth element
Page 22: Webview: The fifth element

Pitfalls…experiences?

•  Android webview has a lot of bugs •  Too heavy widget (poor performance?) •  Differente capabilities depending on the OS

version. •  Cordova webview implementation (not a silver

bullet)

Page 23: Webview: The fifth element

Some advice…and conclusions…

•  Minimize number of connections •  Do not assume JS has loaded •  Minimize page weight •  Testing in your desktop is not enough •  Do not resize images on the client •  Have a version of the web that works

everywhere •  The most important: know your users •  Test on real devices

Page 24: Webview: The fifth element

Any questions?

Page 25: Webview: The fifth element

Thanks!

When you look at the dark side, careful you must be ... for the dark side looks back.

@fernando_cejas www.fernandocejas.com