hybrid desktop/web applications with webkitgtk+ (coscup 2010)

49
Hybrid Desktop/Web applications with WebKitGTK+

Upload: igalia

Post on 28-Nov-2014

560 views

Category:

Technology


1 download

DESCRIPTION

By Xan López. Do you want to write native looking GNOME applications while at the same time using all the compelling recent additions to the web arsenal like HTML5 or CSS3? In this talk we’ll use WebkitGTK+’s well-integrated GObject DOM bindings to get direct access to the well-known DOM APIs for building truly integrated hybrid GNOME applications.

TRANSCRIPT

Page 1: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

Hybrid Desktop/Web applications with 

WebKitGTK+

Page 2: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

Xan López

Page 3: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)
Page 4: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)
Page 5: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)
Page 6: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

What this talk is not about

Page 7: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

Transformative effect of the Web in apps

Page 8: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

Facebook, Twitter, Google...

Page 9: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

The Cloud

Page 10: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

It's about...

Page 11: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

Web as a platform is winning

Page 12: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

Why?

Page 13: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

It's everywhere

Page 14: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

Reach a massive audience

Page 15: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)
Page 16: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

Reasonable learning curve

Page 17: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

If the trend continues...

Page 18: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

The Web will be the dominant platform in the future

Page 19: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

Not GNOME

Page 20: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

You might say

Page 21: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

Not very different from now

Page 22: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

You'd be right!

Page 23: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

We can try to do something about it

Page 24: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

Step 1

Page 25: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

WebKit

Page 26: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

WebKit + GNOME

Page 27: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

WebKitGTK+

Page 28: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

Use the platform

Page 29: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

Native widgets

Page 30: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

WebKitWebView

Page 31: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

Browsers, IM clients, Email clients, Help display, ...

Page 32: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

Problem

Page 33: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

No easy way to access and modify web content

Page 34: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

Step 2

Page 35: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

DOM

Page 36: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

JavaScript bindings

Page 37: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

var e = document.getElementById(“foo”);e.style.color = “red”;

Page 38: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

Actually...

Page 39: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

“The DOM is designed to be used with any programming language. In order to provide a

precise, language-independent specification to the DOM interfaces, we have chosen to define the

specification in OMG IDL” DOM Level 1 Specification

Page 40: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

OMG IDL!

Page 41: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

Object Management Group Interface Definition Language

Page 42: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)
Page 43: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

Access the DOM from Gobject/C (and other

languages)

Page 44: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

DEMO

Page 45: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

Work in progress

Page 46: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

Unstable releases already available with GObject DOM

bindings (since 1.3.0)

Page 47: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

Next stable release 1.4.0 (around March next year with

GNOME 3.0)

Page 48: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

Join us!#webkit & #webkit-gtk at

Freenode IRCwebkit.org and webkitgtk.org

Page 49: Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)

That's it!