Crossing boundaries€¦ · – Widgets: Webkit. Crossing Boundaries Eva Brucherseifer 12.08.2008...

19
Crossing Boundaries Eva Brucherseifer 12.08.2008 Seite 1 Crossing boundaries

Transcript of Crossing boundaries€¦ · – Widgets: Webkit. Crossing Boundaries Eva Brucherseifer 12.08.2008...

Page 1: Crossing boundaries€¦ · – Widgets: Webkit. Crossing Boundaries Eva Brucherseifer 12.08.2008 Seite 7 Strategies for Cross-Device Development. Crossing Boundaries Eva Brucherseifer

Crossing Boundaries Eva Brucherseifer

12.08.2008Seite 1

Crossing boundaries

Page 2: Crossing boundaries€¦ · – Widgets: Webkit. Crossing Boundaries Eva Brucherseifer 12.08.2008 Seite 7 Strategies for Cross-Device Development. Crossing Boundaries Eva Brucherseifer

Crossing Boundaries Eva Brucherseifer

12.08.2008Seite 2

Crossing BounderiesMaking KDE Technology Available to Embedded Devices

Eva Brucherseifer

basysKom GmbH

12.08.2008

aKademy 2008

l Just another Platform?

l Strategies for cross device development

l Example: Decibel

l Benefit for KDE

Page 3: Crossing boundaries€¦ · – Widgets: Webkit. Crossing Boundaries Eva Brucherseifer 12.08.2008 Seite 7 Strategies for Cross-Device Development. Crossing Boundaries Eva Brucherseifer

Crossing Boundaries Eva Brucherseifer

12.08.2008Seite 3

Embedded Applications

l Consumer Devices– Phone – Multimedia Devices– Children's PCs– Navigation System– Home Automation– Ticket Vending Machine

l Industry Applications– Medical Industry: Ultrasonic– Production: Quality Assurance System for

Manufacturing Process– Measurement: Network Analyser– Logistics: Storage Management– Automotive: Agricultural Tractors

Page 4: Crossing boundaries€¦ · – Widgets: Webkit. Crossing Boundaries Eva Brucherseifer 12.08.2008 Seite 7 Strategies for Cross-Device Development. Crossing Boundaries Eva Brucherseifer

Crossing Boundaries Eva Brucherseifer

12.08.2008Seite 4

Just another platform to compile on?

l Different hardware – ARM, x86, PowerPC, SH4, Mips– Flash, GPS, Touch, ...

l Different Tools– Crosscompiler, Remote Debugging, etc– Embedded Linux

l Less Ressources– little MB 32-64 MB– little MHz 150-800 MHz– different capabilites with/without FPU– small amount of space usually flash, 64 MB– smaller screens 480x240, 800x600

Page 5: Crossing boundaries€¦ · – Widgets: Webkit. Crossing Boundaries Eva Brucherseifer 12.08.2008 Seite 7 Strategies for Cross-Device Development. Crossing Boundaries Eva Brucherseifer

Crossing Boundaries Eva Brucherseifer

12.08.2008Seite 5

Differences Desktop – Embedded Device

l Embedded Devices are specialised to enable single use cases

l touch screen & small screen resolutionrequire optimized user interfaces

l Embedded devices are built by manufacturersCommunity devices usually not possible

Page 6: Crossing boundaries€¦ · – Widgets: Webkit. Crossing Boundaries Eva Brucherseifer 12.08.2008 Seite 7 Strategies for Cross-Device Development. Crossing Boundaries Eva Brucherseifer

Crossing Boundaries Eva Brucherseifer

12.08.2008Seite 6

KDE has a lot to offer

l Current Embedded Linux market:– Qt offers a maintained and supported toolkit, Qt is preferred in industry

l KDE has rich and powerful functionality extending Qt– with more powerful CPU functionality is becoming an option

l But: – KDE components mostly unknown– KDE components have too many dependencies, no easy plug & play

l Required: more building blocks

l some components are already on use: – Frameworks: Phonon– Widgets: Webkit

Page 7: Crossing boundaries€¦ · – Widgets: Webkit. Crossing Boundaries Eva Brucherseifer 12.08.2008 Seite 7 Strategies for Cross-Device Development. Crossing Boundaries Eva Brucherseifer

Crossing Boundaries Eva Brucherseifer

12.08.2008Seite 7

Strategies for Cross-Device Development

Page 8: Crossing boundaries€¦ · – Widgets: Webkit. Crossing Boundaries Eva Brucherseifer 12.08.2008 Seite 7 Strategies for Cross-Device Development. Crossing Boundaries Eva Brucherseifer

Crossing Boundaries Eva Brucherseifer

12.08.2008Seite 8

Design Goals for Modular Components

l separate functionality from view

l make integration optional

l stabilize & test component APIs using unit tests

Page 9: Crossing boundaries€¦ · – Widgets: Webkit. Crossing Boundaries Eva Brucherseifer 12.08.2008 Seite 7 Strategies for Cross-Device Development. Crossing Boundaries Eva Brucherseifer

Crossing Boundaries Eva Brucherseifer

12.08.2008Seite 9

Strategy 1: D-BUS Services

l API as D-BUS specification

l hide functionality in daemons

l Good for – data storage– system wide services

l Existing Examples: – HAL– Strigi– Akonadi– Decibel

Application

DBUS

Service Daemon

API

bindings

Page 10: Crossing boundaries€¦ · – Widgets: Webkit. Crossing Boundaries Eva Brucherseifer 12.08.2008 Seite 7 Strategies for Cross-Device Development. Crossing Boundaries Eva Brucherseifer

Crossing Boundaries Eva Brucherseifer

12.08.2008Seite 10

Strategy 2: Plugins

l Plugins are libraries loaded on demand

l one API with a variety of implementations

l useful for– optional functionality– optional integration

l Existing Examples:– Passwort Storage: Plain Text vs. KWallet

API headers

Plugin Plugin

Application / Service Daemon

Page 11: Crossing boundaries€¦ · – Widgets: Webkit. Crossing Boundaries Eva Brucherseifer 12.08.2008 Seite 7 Strategies for Cross-Device Development. Crossing Boundaries Eva Brucherseifer

Crossing Boundaries Eva Brucherseifer

12.08.2008Seite 11

Strategy 3: Model-View Concepts

l Application implemented as Qt's model-view architecture

l Model contains all data handling and core functionality

l View can be replaced as needed for use case

l Enables different views for Embedded /Desktopwithout much reimplementation / porting

l Existing Examples:– Plasma: DataEngines + Applets

View

Model

API

DesktopView

View

Model

API

EmbeddedView

Page 12: Crossing boundaries€¦ · – Widgets: Webkit. Crossing Boundaries Eva Brucherseifer 12.08.2008 Seite 7 Strategies for Cross-Device Development. Crossing Boundaries Eva Brucherseifer

Crossing Boundaries Eva Brucherseifer

12.08.2008Seite 12

Application

bindingsModel

API

Component Puzzle

l Putting it all together

DBUS

Service Daemon

API

API headers

Embedded Integration

Desktop Integration

bindings

EmbeddedView

DesktopView

Page 13: Crossing boundaries€¦ · – Widgets: Webkit. Crossing Boundaries Eva Brucherseifer 12.08.2008 Seite 7 Strategies for Cross-Device Development. Crossing Boundaries Eva Brucherseifer

Crossing Boundaries Eva Brucherseifer

12.08.2008Seite 13

Example: Decibel

l Communication Framework

l building block for IM and VoIP applications

Page 14: Crossing boundaries€¦ · – Widgets: Webkit. Crossing Boundaries Eva Brucherseifer 12.08.2008 Seite 7 Strategies for Cross-Device Development. Crossing Boundaries Eva Brucherseifer

Crossing Boundaries Eva Brucherseifer

12.08.2008Seite 14

Classic Applications History

Wengophone Qt4, SIPKPhone Qt4, SIPSkype Qt4, proprietary

PSI Qt4, Jabberqutim Qt4, AIM/ICQsim-im Qt3, multi-protocol

Kopete KDE4, multi-protocolKonversation KDE3, IRC

KCall KDE3, SIPKCall for KDE4 KDE4, Decibel

Page 15: Crossing boundaries€¦ · – Widgets: Webkit. Crossing Boundaries Eva Brucherseifer 12.08.2008 Seite 7 Strategies for Cross-Device Development. Crossing Boundaries Eva Brucherseifer

Qt-based Realtime Communication Technologies Eva Brucherseifer

Design Goals

l PortableWorks across platforms, desktops and devices

l IntegratedSeamlessly works with the environment of the user

l Flexible– Can handle different use-cases– Do not hard-code policy

l Minimal– each component should be minimal and focus on its purpose – Less to code, test, debug and port

Page 16: Crossing boundaries€¦ · – Widgets: Webkit. Crossing Boundaries Eva Brucherseifer 12.08.2008 Seite 7 Strategies for Cross-Device Development. Crossing Boundaries Eva Brucherseifer

Crossing Boundaries Eva Brucherseifer

12.08.2008Seite 16

Password Mgt

Decibel Architecture

TelepathyJabber AIM/ICQ SIP

Decibel

Buddy List Chat Window Dial Dialog UI: Use Case Specific

Accounts

Dispatching

Contacts

PresenceConfiguration

Addressbook

DBUS

DBUS

Page 17: Crossing boundaries€¦ · – Widgets: Webkit. Crossing Boundaries Eva Brucherseifer 12.08.2008 Seite 7 Strategies for Cross-Device Development. Crossing Boundaries Eva Brucherseifer

Addressing Use Cases

l Embedded Chat

Plain Text

Jabber AIM/ICQ

Decibel

Embedded GUI

Accounts

Dispatching

Contacts

Presence

Configuration

Plain Text

KWallet

Jabber AIM/ICQ SIP

DecibelAccounts

Dispatching

Contacts

Presence

Configuration

Akonadi

l KDE Desktop Chat+VoIP

Full Desktop GUIshared model

Page 18: Crossing boundaries€¦ · – Widgets: Webkit. Crossing Boundaries Eva Brucherseifer 12.08.2008 Seite 7 Strategies for Cross-Device Development. Crossing Boundaries Eva Brucherseifer

Crossing Boundaries Eva Brucherseifer

12.08.2008Seite 18

Benefit for KDE

l Faster way to address use cases and user requirements

l Easier quality assurance

l Enable industry to create more KDE devices :-)

Page 19: Crossing boundaries€¦ · – Widgets: Webkit. Crossing Boundaries Eva Brucherseifer 12.08.2008 Seite 7 Strategies for Cross-Device Development. Crossing Boundaries Eva Brucherseifer

Crossing Boundaries Eva Brucherseifer

12.08.2008Seite 19

Contact

l Eva [email protected]

[email protected]

l basysKom is hiring!– Qt Consulants– KDE Consultants– Squish Consultants