Softwareentwicklung für WebOS

Slides:



Advertisements
Ähnliche Präsentationen
Forschungszentrum Informatik
Advertisements

Objektrelationales Mapping mit JPA Advanced Topics Jonas Bandi Simon Martinelli.
Software Engineering 2 Übung – Konstruktion interaktiver (CASE) Tools SS 2007 Leif Geiger, Carsten Reckord, Software Engineering.
Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH
Aufbau des Internets Überblick Prof. Dr. T. Hildebrandt
Agenda Ein Fallbeispiel Übersicht Architektur Subversion (SVN)
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
eXist Open Source Native XML Database
Seite 1Maria, Philipp, Herbert Seite 1 Fitnessplaner Ziele: >Fitnessplaner für Onlinebetrieb >Registrierung >individuelle Trainingsplanerstellung.
Personalisierte Benutzeroberflächen BFD WS 12/13 Übung 6 Producing an end-user experience that is uniquely appropriate for each individual. [Sears]
FH-Hof Einbindung von JavaScript Anweisungen
XINDICE The Apache XML Project Name: Jacqueline Langhorst
Dynamische Webseiten Java servlets.
XForms Von Matthias Keck.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Werkzeuge und Softwareumgebung von Christian Michele.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Seminar Web-Engineering Nina Aschenbrenner / Ruben Jubeh 1 FG Software Engineering Software Engineering Seminar Web Engineering Seminar des Fachgebiet.
Reverse Engineering 1 Reverse Engineering WS 04 / 05 A. Zündorf.
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational.
USE2ANT Die Umstellung von Use Makefiles zu Ant & Junit Von Isaac, Maleen und Marc.
Coccon das Web-XML-Publishing System Thomas Haller.
Silverlight Eine Einführung. Agenda 1.Was ist Silverlight? 2.Die Silverlight Philosophie 3.Vorstellung des Szenarios 4.Einführendes Beispiel 5.Konzepte.
Servlet III Java Webanwendung Webcontainer Web.xml
08. September 2010Entwicklungsstrategien in Liferay 1 Christian Krause, URZ FSU Jena, IDM-Arbeitsgruppe.
Medien zwischen Technologie und Gesellschaft Dozent: Herr Prof. Dr. Manfred Thaller SS 13 Referent: Christian Braun.
Metro-Style Apps mit Expression Blend 5 für HTML designen Christian Moser User Experience Designer Zühlke Engineering AG
PHILIPP-SCHAFFNER.COM DrupalCamp Essen.
Android-App/NerdKalender
3 Technologien im Wettstreit um Ihre nächste Webanwendung Rainer Worbis Markus Unterauer Entwickler, cubido business solutions gmbh.
Daniel Yves Ostwald …vor 6 Monaten Bob C# Silverlight ! ASP.NET WCF ? iPad Objective C HTML 5 In 3 Tagen ! Mono.
Teilnehmer: Sven Dahmer BAMP01 Marco Pohl BAMP02 Toni Möckel BAMP02 Java – Projekt 2010 Projekt: Realisierung einer API – Applikation für den weltgrößten.
Traildevils Mobile Web-App X-Platform Stefan Oderbolz Jürg Hunziker 16. Dezember 2011.
The free XML Editor for Windows COOKTOP Semistrukturierte Daten 1 Vortrag Semistrukturierte Daten 1 COOKTOP The free XML-Editor for Windows
App-Entwicklung mit HTML5, CSS und JavaScript
RateMe Slides. Ablauf Präsentation des Konzepts (5-10 min) Demonstration der laufenden Software (5-10 min) Fazit der gesammelten Erkenntnisse.
RateMe Slides. Ablauf Präsentation des Konzepts (5-10 min) Demonstration der laufenden Software (5-10 min) Fazit der gesammelten Erkenntnisse.
Developer Day Office APPs entwicklen Simon Amrein Trivadis AG Die ersten Schritte in eine neue Office-Welt.
| Basel Developing apps for SharePoint 2013 using Visual Studio 2013 René Modery, Office 365 MVP, 1stQuad Solutions.
Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH.
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 13 Kapitel 4 Folie 2 REST Web Services (1)
PPS-Veranstaltung (Design einer eigenen WWW-Homepage) Navigationsmechanismen.
JSP Einführung Skripte Direktiven Tomcat 3.2 Version 1.1
XML IV: Cocoon 2.
Projekt Systemintegration Datler, Kroiß, Sachs Systemintegration ILV, FL / MIC- 2 (SS2014)
VU Semistrukturierte Daten 1
Ein Projekt des Technischen Jugendfreizeit- und Bildungsvereins (tjfbv) e.V. kommunizieren.de Blended Learning for people with disabilities.
Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT
Intelligente Dialoge in Jira Hackerthon – AUG MUC –
Von Isabelle Spörl und Simon Schausberger
© All rights reserved. Zend Technologies, Inc. Jenseits von var_dump(): Debugging in ZF Jan Burkl System Engineer.
Seite 1 - Security in TYPO3 Willkommen Security in (und rund um) TYPO3 Christian Kurta
Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.
Webseiten mit PHP, SQL, XML und Webservices Anhand praktischer Beispiele.
RateMe Slides. Ablauf Präsentation des Konzepts (5-10 min) Demonstration der laufenden Software (5-10 min) Fazit der gesammelten Erkenntnisse.
XSL in der Praxis Anwendungsbeispiele für die eXtensible Stylesheet Language Andreas Kühne XML One 2000.
Elektronische Landkarten am Beispiel der Google Maps API Map Objects.
Vassil Dimov.  Was ist Blue Age  Eigenschaften  Möglichkeiten  Hello World (Beispiel)  Entity Creation(Beispiel)  Benefit.
Ajax und Webentwicklung mit Prototype
17. Januar 2006 Navigations- und Ortungssysteme Handy-Kompass Peter Ammon Michael Kaiser Thomas Zsebedits.
Web und Mobile Apps Programmieren Marco Jakob Kurzvortrag OSS an Schulen
Marissa Füeß, Thorsten Hack, Benny Luz, Nicolai Schenk
Digitale Annotationen. Grundlage: John Bradley “Towards a Richer Sense of Digital Annotation: Moving Beyond a Media Orientation of the Annotation of Digital.
© Zühlke 2013 Philipp Kälin Workshop Entwickeln von Apps für die Android Plattform 29. April Mai Mai April 2013.
JQuery: New Wave Javascript Seite 1 jQuery: New Wave Javascript Jörn Zaefferer TIMETOACT Software & Consulting GmbHT: Im Mediapark 2F:
Mobile-Applikationen mit Agisviewer-Technologie Urs Richard, Stadtlandfluss.
Erfahrungen mit dem neuen Primo-UI
Workshop 1 Getting Started 2016 Boris Wylutzki
 Präsentation transkript:

Softwareentwicklung für WebOS Henk Jonas - www.metaviewsoft.de 14.11.09 Softwareentwicklung für WebOS Überblick WebOS Was braucht man? Aufbau von Mojo Aufbau einer Anwendung Beispiel Der AppCatalog

Überblick WebOS WebOS: HTML5, CSS, Javascript, Mojo HTML5: Datenbank, Canvas http://www.w3.org/TR/2009/WD-webdatabase-20091029/ http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#the-canvas-element CSS: Animationen http://www.webos101.com/-webkit-transition-property Javascript: Prototype Framework http://www.prototypejs.org/ Mojo: Widgets, Services, APIs

Was braucht man? WebOS SDK: http://developer.palm.com/ Java, Sun VirtualBox SDK enthält Emulator und Putty IDE: Eclipse oder Komodo Edit Dokumentation: nur Online verfügbar

Überblick über die Tools Emulator in VirtualBox Komandozeilen Tools von Palm: Palm-generate – Erzeuge ein Anwendungsgerüst Palm-package – Erzeuge ein .ipk Palm-install – Installation auf Emulator oder Gerät Palm-launch – Starte eine Anwendung auf Emulator oder Gerät Eclipse mit Plug-Ins von Palm Komodo Edit mit WebOS Erweiterung von http://webos.templarian.com/ Putty für Debuglog (localhost:5522, root ohne Pwd, tail -f /var/log/messages, Mojo.Log.error())

Überblick über die Tools Kurze Präsentation von Eclipse und Komodo

Aufbau von Mojo 3 Teile: Widgets, Services, APIs Widgets: alle HTML-Element von WebOS HTML: <div x-mojo-element=”...”></div> JS: this.controller.setupWidget(...) Services: GPS, Sound, Camera, Maps etc. APIs: Hilfsfunktionen (z.B. Mojo.Controller.stageController.pushScene())

Aufbau einer Anwendung Stages (Karten), Scenes (UI) Scene besteht aus Assistant (der Code) und View (die HTML-UI)

Der Assistent function MainAssistant() {} Constructor MainAssistant.prototype.setup = function() {...} Hier die Widgets initialisieren: evt. Eventhandler einrichten MainAssistant.prototype.activate = function(event) {} Szene wird aktiviert, evt: Eventhandler einrichten MainAssistant.prototype.deactivate = function(event) {} Szene wird deaktiviert: evt. Eventhandler deaktivieren MainAssistant.prototype.cleanup = function(event) {} Szene wird beendet: aufräumen?

Die Szene <div id="header" class="palm-page-header"> <div class="palm-page-header-wrapper"> <div id="appIcon" class="img_icon"> </div> <div id="title" class="title"> PUM 2009 <div x-mojo-element="Button" id="target"></div> [...]

Beispiel Periodische Abfrage unserer aktuellen Position Anzeige von Position, Höhe, Geschwindigkeit, Richtung etc. Logging unserer Position in DB Ermittlung der genauen Oberflächenhöhe durch Webservice Zielposition anzeigen (Richtung, Entfernung) Aufruf von geocaching.com mit aktueller Position

Das Grundgerüst Verzeichnis-layout: appinfo.json – ID, Name, Version etc. sources.json – verbindet UI mit Code index.html – Lädt Mojo, Stylesheet etc. icon.png – das Icon assistants/stage-assistant.js – Start der Anwendung, ruft 1. Scene auf assistants/main-assistant.js – Code für unsere Scene views/main/main-scene.html – HTML UI stylesheets/main.css – Stylesheet für UI

Das Grundgerüst Projekt in Komodo anlegen

Die 1. Szene 1. Szene anschauen

Die aktuelle Position Aufruf über Service-API: Ergebnis: this.controller.serviceRequest("pal m://com.palm.location", { method: "getCurrentPosition", parameters: {}, onSuccess: this.positionSuccess.bind(this), onFailure: ... }); Ergebnis: MainAssistant.prototype.positionSuccess = function(event) { this.lng = event.longitude; this.lat = event.latitude; }

Periodische Abfrage Timerhandler zum Pollen: MainAssistant.prototype.timerHandler = function() { this.getPosition(); setTimeout(this.timerHandler.bind(this), 60 * 1000); }

Die HTML5 Datenbank gblDB = openDatabase(Name, Version, Display Name, Est. Size); Führt SQL-Anweisungen aus: gblDB.transaction(function (tx) {tx.executeSql("...”, [], succ, fail);} Datenbankcheck zum Start: var locthis = this; gblDB.transaction(function(tx) { tx.executeSql("SELECT COUNT(*) FROM...", [], function(tx, result) {locthis.start();}, function(tx, error) { tx.executeSql("CREATE TABLE...", [], function(result) {locthis.start();}, function(tx, error) {});});}); }

Aufruf eines Webservices var url = "http://...”; new Ajax.Request(url, { method: 'get', evalJSON: 'force', onSuccess: this.requestSuccess.bind(this), on Failure}); Ergebnis: MainAssistant.prototype.requestSuccess = function(json) { json.responseJSON['Element']; }

Alles zusammen Testen im Emulator

Eine 2. Szene assistants/target-assistant.js – Code für unsere 2. Scene views/target/target-scene.html – HTML UI Eintragung in source.json nicht vergessen! Aufruf: Mojo.Controller.stageController.pushScene("target");

Eine 2. Szene 2. Szene einfügen, Aufruf per Button

Das HTML5 Canvaselement Zum Zeichnen beliebiger Formen auf den Bildschirm Definition in HTML-Datei: <canvas id="myCanvas" width="320" height="320"> Benutzung in JS-Datei: var canvas = this.controller.get("myCanvas"); var ctx = canvas.getContext('2d'); ctx.clearRect(...); ctx.drawImage(...);

Aufruf einer Webseite Aufruf über Service-API: this.controller.serviceRequest("palm://com.palm.applicationManager", {method: "open", parameters: { id: 'com.palm.app.browser', params: { target: url } });

Alles zusammen Testen im Emulator

Der AppCatalog Infos unter Checkliste unter http://developer.palm.com/index.php?option=com_content&view=article&id=1796 Checkliste unter http://developer.palm.com/index.php?option=com_content&view=article&id=1527 Submission zum Review per Email Alternative: Homebrew unter http://www.precentral.net/