Einführung in die webOS Programmierung

Embed Size (px)

Citation preview

WebOS Programmierung

Markus [email protected]@twtomcat

ber mich

webOS Entwickler seit Oktober 2009

WebOS-Internals Mitglied

Web und Mobile Entwickler

Mehrere Apps im App Catalog

Hot Apps Gewinner mit Moo

Programm

Was ist WebOS?

Wie sieht eine Applikation aus?

Framework und Service APIs

Emulator und Ares

Wie entwickelt man eine Applikation?

Die erste Applikation

App Catalog

Kennt ihr HTML?

Kennt ihr CSS?

Kennt ihr Javascript?

Dann knnt ihr fr webOS entwickeln!

Was ist webOS?

SmartPhone Betriebssystem(spter auch fr Drucker und Tablets)

Offene BasisLinux

WebKit

V8

http://opensource.palm.com

SDK: HTML

HTML, CSS, JS

HTML 5 Standard (Canvas,CSS3,Storage)

Mojo und Prototype Framework

PDK: Plugin Development Kit

C/C++

Posix, OpenGL ES, SDL, PDL

Hybrid oder Fullscreen

Spiele: Angry Birds (iPhone Port)

Tools: wIRC (Hybrid)

Linux Tools

Ipkg

Gzip

Awk

Grep

Strace

Gdb

oprofile

Vmstat

Iostat

Top

Optware

Apache

Php

Gcc

Ctorrent

>1300 Pakete erhltlich

Wie sieht eine Applikation aus

Stage (Bhne, Tab im Browser)Scene (Szene, Seite im Browser)Widgets (GUI Elemente)

Assistants (setup,activate,deactivate,cleanup)

Mojo Framework

Prototype Framework

Mojo Framework

GUI Elemente

Javascript APIs

Folgt dem MVC MusterView: HTML

Model/Controller: Javascript

Beispiel (HTML)

Beispiel (Javascript)

var attributes= { modelProperty: 'original', focusMode: Mojo.Widget.focusSelectMode,maxLength: 30 };

this.model = {original: 'Bitte etwas eingeben',disabled: false };

Service API

Asynchrone dbus Kommunikation

JSON Parameter

Abonnement (Subscription)

Java/C Services

node.js in webOS 2.0

Service API

HardwareBeschleunigungsmesser, GPS, Bildschirm, Kamera

ApplikationsservicesAlarme, Kontakte, Kalender, Fotos, Up/Download

ApplikationsaktionenE-Mail, Karten, Telefon, Browser

Beispiel

this.controller.serviceRequest('palm://com.palm.connectiomanager',{ method: 'getstatus', parameters: { subscribe:true},onSuccess: this.handleOKResponse,onFailure: this.handleErrResponse});

Wie entwickelt man?

Ihr bevorzugter Editor

Kommandozeilen SDK-Tools

Optionales Eclipse Plugin

Optionales Komodo Edit Plugin

OS X, Linux (.deb), Windows wird untersttzt

webOS Emulator

Basierend auf VirtualBox

x86-Version von webOS

Nicht alle Hardware untersttzt (Kamera,GPS)

Fehlende Hardware kann simuliert werden

Jailbreak, Rooting?

upupdowndownleftrightleftrightbastart oder webos20090606

Novacom -t open tty://

root@palm-webos-device

ssh localhost -p 5522 -l root

Luna-send -n 1 palm://com.palm.pmradiosimulator/set_incomingcall

Palm Ares

Ares: WYSIWYG Programmierumgebung

Ares Log-Viewer

Ares Debugger

Ares Demo

palm-generate helloWorld

appinfo.jsonindex.htmlsources.jsonicon.png

Die erste Applikation

index.html

Hello World

Applikation installieren

- palm-package helloWorld

- palm-install com.yourdomain.helloworld_1.0.0_all.ipk

Szenen hinzufgen

palm-generate -t new_scene -p "name=first" helloWorldpalm-generate -t new_scene -p "name=second" helloWorld

app/views/first/first-scene.html

app/assistants/first-assistant.js

Szenen-HTML

First Scene Welcome to my World

Javascript - Setup

stage-assistant.js: Mojo.Controller.stageController.pushScene("first");

first-assistant.js:this.controller.setupWidget("button1", this.attributes = {}, this.model = { label : "OK", disabled: false } );

Javascript - Handler

this.handleButton1=this.handleButtonPress1.bindAsEventListener(this); Mojo.Event.listen(this.controller.get("button1"), Mojo.Event.tap, this.handleButton1);

FirstAssistant.prototype.handleButtonPress1 = function(event){ Mojo.Controller.stageController.pushScene("second"); }

App Catalog

Ist auf jedem Gert installiert

Noch nicht international (DE/UK/IR/FR)

70/30 Split

Developer Account: gratis

Einstellgebhr: keine

Web- und Beta-Feed (kein Review)

Ressourcen

developer.palm.com

Mobiletuts 3-teiliges Tutorial (mobile.tutsplus.com)

IRC: #webos (freenode)

www.webos-internals.org

mich fragen :)

Fragen?

Muokkaa otsikon tekstimuotoa napsauttamalla

Muokkaa jsennyksen tekstimuotoa napsauttamallaToinen jsennystasoKolmas jsennystasoNeljs jsennystasoViides jsennystasoKuudes jsennystasoSeitsems jsennystasoKahdeksas jsennystasoYhdekss jsennystaso