webview: the fifth element
DESCRIPTION
Talk about different experiences related with mobile web and the android webview. Native vs Hybrid. Drawbacks and benefits of native and hybrid applicationsTRANSCRIPT
@fernando_cejas
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/
Agenda
• Native vs web • Web developers • Native developers • Benefits and drawbacks • The webview • Experiences • Advices
What the hell…? …I am a native developer
Why the title? What were you thinking about?
Actually…
• Activities • Intents • Services • Widgets • ...and Webview!!!
Native vs web???
Web developers? Designers?
Native developers…????
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
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
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
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.
So, what should I build?
• Desktop web app • Mobile web app • Mobile native app
We can live together…
Webview and the mobile web…
• Webviews and Mobile web are almost the same…
Webview and the mobile web…
• 2 small differences: – Mobile web authenticates with
web session – Webview sets up protocols links
Webview and the mobile web…
• 1 big difference: – Through webviews we can
access native capabilities
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)
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
Any questions?
Thanks!
When you look at the dark side, careful you must be ... for the dark side looks back.
@fernando_cejas www.fernandocejas.com