Top Banner
Ubuntu HTML5 apps deep dive David Planella @ BCN BeMyApp Meetup, July 2014
20

Ubuntu HTML5 apps deep dive

Aug 23, 2014

Download

Mobile

David Planella

An introduction to the Ubuntu HTML5 app developer offering
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: Ubuntu HTML5 apps deep dive

Ubuntu HTML5 apps deep dive David Planella @ BCN BeMyApp Meetup, July 2014

Page 2: Ubuntu HTML5 apps deep dive

foundations> the platform

Page 3: Ubuntu HTML5 apps deep dive

(c) 2013 Canonical

> Full Ubuntu (Linux) system, with thin Android layer for device access

> Unity is the Ubuntu shell, HTML5 and QML apps run on top

> The Ubuntu SDK provides transparent API access to services and devices

The Ubuntu platform

Page 4: Ubuntu HTML5 apps deep dive

(c) 2013 Canonical

Ubuntu features a full-blown Software Development Kit

> The SDK enables developers to create and maintain apps

throughout their full lifecycle, from start to publish

> Holistic approach: a powerful IDE with device connectivity,

a GUI toolkit and extensive API documentation, all included

> Based on the proven and popular Qt framework

and development toolset

> The web is a first class citizen, with different degrees

of integration: webapps, HTML5 foundations and HTML5

platform access

> Native programming languages are QML, Javascript

and optionally C++

The Ubuntu SDK

Page 5: Ubuntu HTML5 apps deep dive

(c) 2013 Canonical

Qt Creator is the SDK’s Integrated Development Environment (IDE)

> A feature-rich IDE for advanced code editing

> Intuitive visual debugger

> Device connectivity: easily run apps on the phone during development

> Graphical click app packager

> Integrated API reference

The Ubuntu SDK

Page 6: Ubuntu HTML5 apps deep dive

(c) 2013 Canonical

The HTML5 UI Toolkit provides widgets for the unique Ubuntu look and feel

> A collection of the essential

building blocks to create Ubuntu apps

> Carefully crafted by designers

and implemented by developers

> The toolkit's widgets enable

visual and behavioural integration

> Not a requirement to use the toolkit,

but strongly recommended

for the best integration

and UX consistency

> Theme available for HTML5 and QML apps

The Ubuntu SDK

Page 7: Ubuntu HTML5 apps deep dive

(c) 2013 Canonical

Comprehensive API documentation, design guidelines and tutorials online

at http://developer.ubuntu.com

The Ubuntu SDK

Page 8: Ubuntu HTML5 apps deep dive

apps> HTML5 is first-class

Page 9: Ubuntu HTML5 apps deep dive

(c) 2013 Canonical

> Write Ubuntu HTML5 apps using ubiquitous

Internet technologies

> Easy to port existing HTML5 apps too

> Two main integration levels: hosted and local

> Hosted – nicknamed webapps, integrate

remote websites into Ubuntu, like a local app

> Local – the app's code is local, running on the device

> HTML5 – a regular HTML5 app

> HTML5 Platform Access – an HTML5 app with access

to native devices, such as camera, sensors, etc.

Cordova acts as the backend

The Ubuntu HTML5 story why and how

Page 10: Ubuntu HTML5 apps deep dive

(c) 2013 Canonical

> A web container, not a traditional browser

the HTML5 code runs isolated in its own container

> Container provides run-time access to APIs

built to expose a rich set of platform access services

> With the Ubuntu HTML5 UI

a set of layout and widgets for the Ubuntu look and feel

> Not limited to Ubuntu HTML5

it’s all standard tech, custom app markup also works

> Not just a web page: true Ubuntu apps

web-based and QML apps share the same app model

The Ubuntu HTML5 story

Page 11: Ubuntu HTML5 apps deep dive

(c) 2013 Canonical

Web technologies at the core> Use the languages of the web: HTML5,

JavaScript, CSS3 and W3C APIs are fully supported

> Build convergent, responsive apps that will run across

form factors and devices

Powered by the Apache Cordova runtime > Supercharge your HTML5 apps with native device access

> Opening the doors to 400K Cordova web developers

> Ubuntu is an official Apache Cordova platform

HTML5 platform access

Page 12: Ubuntu HTML5 apps deep dive

(c) 2014 Canonical

Key points

> Standard HTML5 support via Webkit

> Single, simple HTML5 app type

> Native, app specific code supported

> Full access to platform APIs

> Pre-integrated Cordova/PhoneGap runtime

> More info on: http://developer.ubuntu.com/apps/html-5/

Ubuntu HTML5 apps architecture

Ubuntu OS (runtime)

UbuntuHTML5 container

Ubuntu HTML5 Widgets

Platform APIs

Cordova pluginsPlatform API bindings

Ubuntu Web View

unity-bindings

Page 13: Ubuntu HTML5 apps deep dive

Firefox

Webapp container (Oxide)

(c) 2014 Canonical

Ubuntu webapps architecture

Ubuntu Touch Apps

DesktopApps(X11)

"Glue code"System access

Messaging MenuLauncher

HUDSound Menu

Push Notification& other system services

WebappsQML/JS bridge

Other Trusted System Helpers (OA, Content Hub, Media Hub, etc.)

Runtime API support

C.H. Support

M.H. Support

WebAppCode

Browser Extension

Chromium

Browser Extension

Install from the browser

Page 14: Ubuntu HTML5 apps deep dive

apps> HTML5 platform access

Page 15: Ubuntu HTML5 apps deep dive

(c) 2013 Canonical

The Ubuntu platform at your fingertips

> Cordova

the industry standard for native device access

> Online Accounts

let the system handle authentication with online services

> Content Hub

share content between apps securely

> Push Notifications

show unobtrusive app notifications via the indicators

> Alarms, StateSaver, Download Manager

a growing set of APIs and services for HTML5 apps

HTML5 platform access

Page 16: Ubuntu HTML5 apps deep dive

(c) 2013 Canonical

An extensive set of APIs> Blurring the boundaries between native

and web: access the camera, GPS,

and other sensors via web APIs

> A rich family of APIs: Accelerometer, Camera,

Compass, File, Geolocation, Media, Network,

Notification and Storage for all your needs

With the distinctive Ubuntu look> Use the HTML5 version of the Ubuntu UI theme

for a more integrated UX

> Use the SDK widgets as building blocks for your UI

without extra effort

HTML5 platform access spotlight: Cordova

Page 17: Ubuntu HTML5 apps deep dive

OnlineAccounts

API

(c) 2014 Canonical

Ubuntu Touch Apps

DesktopApps(X11)

signond

OA Plugins

Desktop System Settings

(X11/Gnome)

OA PluginsOA Plugins(OAuth)

3rd-party plugins(identity, service)

Identity

API key

Signon-UI

Touch System Settings

Signon-UI

HTML5 platform access spotlight: Ubuntu Online Accounts

Page 18: Ubuntu HTML5 apps deep dive

(c) 2013 Canonical

Apps are isolated> All applications are confined using AppArmor to ensure that

they are restricted in what they can do in the user’s session

> AppArmor is a kernel security module that enables mandatory

access-control (MAC)

> AppArmor is very similar to XNU Sandbox used by Apple

> Each application provides an AppArmor profile

generated based on values in its manifest

> The manifest can be created with a graphical form in Qt Creator

> Apps can only write to their own directory

> Content sharing between apps is mediated via the Content Service

HTML5 platform access security

Page 19: Ubuntu HTML5 apps deep dive

demo> Ubuntu HTML5 live coding

Page 20: Ubuntu HTML5 apps deep dive

Thank youandstay in touch!

> David Planella <[email protected]>

> @dplanella · +DavidPlanella

> developer.ubuntu.com

> ubuntu.com/phone

> @ubuntuappdev · also on G+ and FB