Geodatenanwendungen. Sommersemester Prof. Dr. Hans-Peter Wiedling. Vorgänger ancestor. Eltern parent. Geschwister. sibling.

Größe: px
Ab Seite anzeigen:

Download "Geodatenanwendungen. Sommersemester 2011. Prof. Dr. Hans-Peter Wiedling. Vorgänger ancestor. Eltern parent. Geschwister. sibling."

Transkript

1 Geodatenanwendungen Sommersemester 2011 Prof. Dr. Hans-Peter Wiedling Vorgänger ancestor Eltern parent Geschwister sibling Kinder, child Nachfolger descendant

2 Lernziele Die Studierenden erlernen an Praxisbeispielen die Grundlagen zur Entwicklung von Geodatenanwendungen und entsprechender Infrastruktur Zum Einsatz kommen XHTML, CSS, JavaScript/DOM, AJAX, HTTP und Google MAPS API Android für die mobile Komponente PHP und XSLT Angestrebte Kompetenzen: Die Studierenden verstehen die spezifischen Probleme bei der Planung, Entwicklung und Qualitätssicherung von Geodatenanwendungen und können sicher mit Geodaten umgehen Die Teilnehmer verstehen das Zusammenspiel der verschiedenen Techniken lernen die wesentlichen Standards kennen können komplexe und interaktive Geodatenanwendungen erstellen erlernen Grundlagen, um sich in weitere Geodatenanwendungen einzuarbeiten Geodatenanwendungen, Seite 2

3 Lehrinhalte Prozesskette Akquisition, Weitergabe, Aufbereitung, Visualisierung und Verknüpfung von Geodaten Typische Algorithmen auf geografischen Datenstrukturen Grundlagen in der Programmierung mit der Google MAPS API Entwicklung einer mobilen Geodatenanwendung unter Android Strukturtransformation mit XSLT und XPath Geodatenanwendungen, Seite 3

4 Bibliographie DE/apis/maps/documentation/mapsdata/developers_guide_java.html Arno Becker, Marcus Pant: Android Grundlagen und Programmierung. dpunkt-verlag. 1. Auflage, ISBN Frederik Ramm, Jochen Topf: OpenStreetMap Die freie Weltkarte nutzen und mitgestalten. lehmanns media. 1, Auflage ISBN Reto Meier: Professional Android Application Development. Wiley, 2008, ISBN Geodatenanwendungen, Seite 4

5 Motivation Anwendungen, Geodateninfrastruktur

6 Anwendungen Bodenmanagement (Kataster)... Flottenmanagement... Routenplanung... Tourismus, Freizeit... Social networking... Wetterinformation... Precision Farming... Verkehrsinformationen (Flugzeug, Schiff, Auto)... Neben Kommunikation ist Mobilität ein hohes menschliches Grundbedürfnis mit all seinen wirtschaftlichen und sozialen Aspekten! Geodatenanwendungen, Seite 6

7 Umfeldsuche Communites Google Open Street Map Radtouren Hessen Deutschlandviewer Precision Farming... Wetterinformationen..u. v. m. Geodatenanwendungen, Seite 7

8 GDI: Geodateninfrastruktur Das ist Ziel, Nutzer von Geodaten und -informationen und deren raumbezogene Anwendungen von Daten in eine vernetzte Geodateninfrastruktur einzubinden (aus dem Vortrag von Dr. Schweitzer, Hessisches Landesamt für Bodenmanagement: Geodateninfrastruktur Hessen Mehrwert für den Nutzer; 11. u. 12. Oktober 2005): Leitprojekte mit Kommunen und Anwendern Landesbehörden entwickeln gemeinsam mit Wirtschaft und Kommunen Dienste und stellen diese zur Verfügung, die insbesondere einen digitalen prozess-orientierten Datenfluss für Geschäftsprozesse ermöglichen. Nutzen einer Geodateninfrastruktur aufzeigen Geodatenanwendungen, Seite 8

9 Die Ziele dieser Leitprojekte GDI in die Fläche bringen Standards und Komponenten der GDI-Hessen in die breite Nutzung bringen Kommunen und Private einbinden Nutzer steht dabei im Mittelpunkt Wiederverwendbare Komponenten erzeugen Synergieeffekte nutzen durch standardisierte Webservices als Teil einer GDI einmal entwickeln und mehrfach nutzen Geodatenanwendungen, Seite 9

10 Geodatenanwendungen, Seite 10

11 Webservices Durch die Nutzung standardisierter Schnittstellen können heterogene Datenquellen, also auch proprietäre Geodatenformate, interoperabel bereitgestellt werden, ohne diese Datenquellen selbst in ein anderes Format überführen und redundant halten zu müssen. Anwendungen können die angebotenen Geodatendienste direkt ansprechen und verschafft dem Anbieter die nötige Investitionssicherheit, da die Bereitstellung auf aktuellem Stand der Technik ermöglicht wird. Geodatenanwendungen, Seite 11

12 GDI als serviceorientierte Architektur (SOA) Das Architekturkonzept der GDI-DE spiegelt sich aus technischer Sicht in dem Publish-Find-Bind-Muster der serviceorientierte Architektur (SOA) wider: 1. Der Anbieter (Provider) von Geodaten/-diensten veröffentlicht diese durch Registrierung in einem Katalog bzw. Verzeichnis (publish). 2. So werden diese für den Anwender (Consumer) recherchierbar: Der Anwender durchsucht den Katalog nach Geodaten/-diensten. Der Katalog liefert ein Suchergebnis zurück (find). 3. Der Anwender (Consumer) kann die gefundenen Geodaten/-dienste ansprechen und gemäß Nutzungsbedingungen verwenden (bind). Geodatenanwendungen, Seite 12

13 Architektur GDI-DE Quelle: Architektur der Geodateninfrastruktur Deutschland Version 2.0 (beta) Geodatenanwendungen, Seite 13

14 Prozesskette Akquisition, Anreichern Sammeln, Verwalten, Verknüpfen, Archivieren Verknüpfen Kontrollierte Weitergabe Idee, Planung, Bestandsaufnahme Anzeigen, Nutzen, Recherche Geodatenanwendungen, Seite 14

15 Datenstrukturen und Math. Berechnungen Satellitendaten/Orthophotos Punkt-, Linien- und Flächeninformation Distanz, Inside, Remove und Simplify

16 Digitale Orthophotos Orthophotos sind eine realitätstreue Darstellung der Erdoberfläche. Sie entstehen durch eine differenzielle Entzerrung der Original-Luftbilder. Die Digitalen Orthophotos werden im Blattschnitt der Deutschen Grundkarte (2 x 2 km) nach bundesein-heitlichen Standards erstellt. Die Genauigkeit beträgt ± 1m. Die Digitalen (Farb-) Orthophotos liegen für Hessen flächendeckend mit einer Bodenauflösung von 0,4 m (DOP40) vor. Für Teilgebiete sind auch Color-Infrarotbilder verfügbar. Quelle: Geodatenanwendungen, Seite 16

17 Ressource Bild: Ein Blick hinter die Kulissen Geodatenanwendungen, Seite 17

18 Das Bild besteht aus Kacheln 0.. tx.. maxtilex ty.. maxtiley - 1 Geodatenanwendungen, Seite 18

19 Karten als Web-Service Mit jedem Zoom und Pan werden die Kachheln alle einzeln per Request geladen Kacheln werden auch schon über die sichtbare Kartenansicht hinaus, herunter, erst in einem Bereich, in dem keine Kacheln existieren, ist es nötig neue Kacheln nachzuladen. Die Anzahl der Kacheln steigt dabei exponentiell. Dabei findet die Bildpyramide Anwendung und die Kacheln werden dabei nach der hierarchischen Quadtree-Struktur unterteilt (Parameter beim Request, Bsp: Geodatenanwendungen, Seite 19

20 Punkt-, Weg- und Flächeninformation <node>, <way> und closed way (aus OSM) Ein Knoten (node) besteht zumindest aus Positionsinformation (Längenund Breitengrad), üblicherweise einem Zeitstempel und gegebenenfalls aus einer Höheninformation: <node id=" " lat=" " lon=" " version="1" changeset="203496" user="80n" uid="1238" visible="true" timestamp=" t11:40:26z"> <tag k="highway" v="traffic_signals"/> </node> Knoten können mehrere Wege oder Gebieten zugeordnet sein Ein Weg (way) besteht aus mindestens 2 und höchstens 2000 Knoten Knoten können mehreren Wegen zugeordnet sein Geodatenanwendungen, Seite 20

21 <way> Wege sind Punktfolgen, die neben den Punkten (hier nd) zusätzliche Informationen (Name, Klassifikation,...) enthalten: <way id=" " visible="true" timestamp=" t19:07:25z" version="8" changeset="816806" user="blumpsy" uid="64226"> <nd ref="822403"/> <nd ref=" "/> <nd ref="821601"/> <nd ref=" "/> <nd ref=" "/> <nd ref=" "/> <nd ref=" "/> <nd ref=" "/> <nd ref=" "/> <nd ref="823771"/> <tag k="highway" v="unclassified"/> <tag k="name" v="clipstone Street"/> <tag k="oneway" v="yes"/> </way> Flächen (Seen, Gebäude,...) sind beschrieben als geschlossene Punktfolgen Geodatenanwendungen, Seite 21

22 Geopunkt class GpsData { public String time; public double lat;// Latitude/Breitengrad public double lon;// Longitude/Längengrad public double elevation; // Altitude/Höhenangabe...// weitere Merkmale, z.b. Genauigkeit public GpsData ( double lat, double lon, double elevation, String time) { this.time = time; this.lat = lat; this.lon = lon; this.elevation = elevation; } } // GpsData Geodatenanwendungen, Seite 22

23 Ein bisschen Mathematik... R = Q + t * v, mit v = P Q Skizze Gerade: t R Strahl: t >= 0 Kante: 0 <= t <= 1 Q R v P Die Angaben haben immer einen Bezugspunkt (Ursprung), auch wenn die Achsen oder der Ursprung nicht angegeben sind. Geodatenanwendungen, Seite 23

24 POI in nächster Nachbarschaften (Nearest Neighbour), Abstandabschätzungen In planaren Abbildungen werden die folgenden Abstandsformeln zwischen zwei Punkten verwendet: Euklidscher Abstand: d 2 (neighbour) = ( this.x - neighbour.x ) 2 + ( this.y - neighbour.y ) 2 neighbour ist ein weiteres (benachbartes) Objekt; Häufig findet man auch folgende Abstandsformeln: Maximum-Distanz: d(neighbour,obj)= max (neighbour i -obj i ) oder Manhatten- bzw. Taxi-Distanz d(neighbour,obj)= Σ neighbour i -obj i Da es sich um Abstände auf der Erdoberfläche und somit einer Sphere handelt, kann der Euklidsche Abstand aufgrund sich kumulierender Ungenauigkeiten nicht angewendet werden. Geodatenanwendungen, Seite 24

25 Distanz Punkt-Kante (I) L(t) = P + t * v Skalarprodukt verwenden: R Q (R-L(t)) * v = 0 (R P t * v) * v = 0 (R - P ) * v = t * v * v P v t = ((R - P) * v) / (v * v) (nicht kürzen; v ist ein Vektor!) t in (I) einsetzen liefert benötigten Punkt auf der Kanten, dann kann dist berechnet werden: dist = R P + ((R - P) * v) / (v * v) * v Alternative Berechnung: Information über die Fläche nutzen... Geodatenanwendungen, Seite 25

26 Distanzberechnung über die Fläche P 1 P 1 = P 1 P 2 x P 0 P 2 (P 0 P 2 ) P 1 P 3 x P 0 P 3 liefert die Größe der aufgespannten Fläche; wenn man nun die Fläche des Parallelogramms durch die Länge der einen Seite teilt, erhält man die Länge der anderen Seite genau das suchen wir! Bemerkung: im 2D entspricht P 1 P 2 x P 0 P 2 der Determinanten. Die Determinante kann wie folgt berechnet werden: im 2D: det a b = a * d b * c Prinzip: c d Geodatenanwendungen, Seite 26

27 Quelle: Geoinformatik in Theorie und Praxis von Norbert de Lange Geodatenanwendungen, Seite 27

28 Distanz Distanzberechnungen finden also auf einer Kugeloberfläche (Großkreis) statt. Die Kugeloberfläche ist nur eine Annährung an die tatsächliche Oberfläche der Erde! Geodatenanwendungen, Seite 28

29 Abstand auf der Kugeloberfläche (Großkreis) public static double distance(gpsdata p1, GpsData p2) { double d; double R = 6371; // Erdradius in km d = Math.acos(Math.sin(Math.toRadians(p1.lat)) * Math.sin(Math.toRadians(p2.lat)) + Math.cos(Math.toRadians(p1.lat)) * Math.cos(Math.toRadians(p2.lat)) * Math.cos(Math.toRadians(p2.lon - p1.lon))); return d * R; } // distance Quelle: Bem.: Angaben müssen im Bogenmaß erfolgen (radian = grad * π / 180 ) Geodatenanwendungen, Seite 29

30 Distanz zwischen 2 Punkten (Links) Formelsammlung (als Einstieg): Distanzformel (Großkreis) d zwischen zwei Punkten mit den Koordinaten {lat1,lon1} und {lat2,lon2} lautet: d = acos(sin(lat1)*sin(lat2)+cos(lat1)*cos(lat2)*cos(lon1-lon2)) Für kurze Distanzen eignet sich auf die folgende Formel (weniger Rundungsfehler): d = 2*asin(sqrt((sin((lat1-lat2)/2))^2 + cos(lat1)*cos(lat2)*(sin((lon1-lon2)/2))^2)) d mit radius multiplizieren! Wenn man es ganz genau machen möchte: Evtl. auch noch interessant sind die Projektionen: Geodatenanwendungen, Seite 30

31 Konvexe und konkave Flächen Konkav Konvex Bedingung/Test: Man nehme bel. Punkte, die innerhalb der Fläche (oder auf deren Rand) liegen, und verbinde sie zu einer Linie, dann müssen auch alle Punkte, die auf dieser Linie liegen, innerhalb der Fläche liegen Bedingung erfüllt: Fläche konvex Bedingung nicht erfüllt: Fläche konkav obwohl die Bedingung mathematisch nicht zu beanstanden ist, können wir praktisch nicht mit ihr arbeiten Alternativen: jeder Innenwinkel ist 180 Schnittpunktberechnung zwischen bel. Kanten darf keine Lösung besitzen Geodatenanwendungen, Seite 31

32 Inside Test Anzahl Schnittpunkte zwischen Strahl und Kanten ist ungerade, dann liegt der Punkt innerhalb Vorab kann ein Test mit der Bounding Box erfolgen und somit der Berechnungsaufwand reduziert werden: xmin <= x <= xmax && ymin <= y <= ymax 1 2 Geodatenanwendungen, Seite 32

33 Simplyfication/Ausdünnen/Bereinigen Geopunkte am Anfang oder am Ende einer Aufzeichnung können streuen. Das Ziel ist dann, diese Punkte durch wenige zu ersetzen: Dazu können z. B. die Koordinaten des Schwerpunkts der entsprechenden Punkt oder immer wiederholt von drei Punkt gebildet werden. Der Schwerpunkt ist das arithmetische Mittel der Koordinaten der Punkte: Punktfolgen für Wege werden geglättet und letztendlich mit weniger Punkten beschrieben: dazu wird aus der Punktfolge P 0.. P n-1, der Punkt gesucht, der am weitesten von P 0 P n-1 entfernt ist Geodatenanwendungen, Seite 33

34 Glätten: Douglas-Peucker-Algorithmus P 0 Pn-1 Das Verfahren sucht zunächst in der Punktfolge, den Punkt P d, der von P o P n-1 am weitesten entfernt ist. P d Falls P d weiter als ein vorgegebenes Maß entfernt ist, wird das Verfahren für die Teilpunktfolgen wiederholt. Geodatenanwendungen, Seite 34

35 Viewing mit Google Maps API AJAX, DOM, Google Maps API, POI, Routen

36 Ein Beispiel mit AJAX und DOM Von einem Server (z.b. können entweder Sehenswürdigkeiten (poi.gpx) oder Touren (tour.gpx) abgerufen werden Die Ergebnisse werden in HTML eingefügt Anfrage wird konfiguriert via AJAX und DOM werden die Tabellen befüllt Geodatenanwendungen, Seite 36

37 : Asynchronous JavaScript and XML AJAX steht für zwei mächtige Browsertechniken welche bereits seit Jahren existieren, jedoch zunächst von Webentwicklern wenig beachtet wurden. Diese Techniken gewinnen an Beachtung, seit Services wie Google Maps, Google Mail oder Google Suggest diese verwenden. Mit diesen Techniken können Requests an den Server abgesetzt werden, ohne die Seite neu laden zu müssen und XML-Dokumente geparst und bearbeitet werden Seiten im Netz Geodatenanwendungen, Seite 37

38 AJAX: eine neue Technologie? AJAX wird häufig als neue Technologie dargestellt, mit der sich den Web-Entwicklern ganz neue Möglichkeiten eröffnen: Bereits 1999 wurde diese Technologie unter dem Namen XMLHTTPRequest von Microsoft eingeführt. Der Begriff AJAX geht auf einen im Februar 2005 veröffentlichten Artikel Ajax: A New Approach to Web Applications von Jesse James Garrett von der Firma Adaptive Path zurück. Die XMLHTTPRequest genannte Technologie wird unter dem Namen AJAX vorgestellt und bekannt. AJAX als Synonym für eine Technologie zur Schaffung Web Oberflächen. Geodatenanwendungen, Seite 38

39 Prinzipskizze Geodatenanwendungen, Seite 39

40 1. Schritt: Objekt erzeugen var http_request = null; function initrequest() // http_request Objekt anlegen { try { // Mozilla, Opera, Safari sowie Internet Explorer (ab v7) http_request = new XMLHttpRequest(); } // try catch(e) { var avers = ["Microsoft.XmlHttp", "MSXML2.XmlHttp", "MSXML2.XmlHttp.3.0", "MSXML2.XmlHttp.4.0", "MSXML2.XmlHttp.5.0"]; for (var i = avers.length -1; i >= 0; i--) { try {http_request = new ActiveXObject(avers[i]); break; } catch(e1) {} }//for }// catch e if (http_request!= null) { if (http_request.overridemimetype) http_request.overridemimetype('text/xml'); } else alert('xmlhttp-instanz kann nicht erzeugt werden!'); } // initrequest Geodatenanwendungen, Seite 40

41 2. Schritt: Anfrage an den Server senden... // Funktion, die ausgeführt wird nach Antwort des Servers http_request.onreadystatechange = neuerinhalt; // 1. Parameter: HTTP-Methode GET oder POST // 2. Parameter: abgefragte URL // (es kann kein anderer Server abgefragt werden!) // 3. Parameter: true (asynchron)/ false (synchron) http_request.open('get', url, true); // enthält anwendungsspez. Daten für Server (Suchanfrage) http_request.send(null);... Bem.: bei der Methode POST muss der MIME-Typ angepasst werden: http_request.setrequestheader ('Content-Type', 'application/x-www-form-urlencoded'); Geodatenanwendungen, Seite 41

42 3. Schritt: Die Antwort des Servers auswerten... function neuerinhalt() { // Callback if (http_request.readystate == 4) { // Prüfung des Requests if (http_request.status == 200) { // Prüfung der Antwort alert(http_request.responsetext); } (*) } else { alert('beim Request ist ein Problem aufgetreten.'); } } Bem.: http_request.responsetext liefert Antwort als Textstring http_request.responsexml gibt die Antwort des Servers als ein XMLDocument-Objekt; unter dem IE gab es Probleme mit der Auswertung; siehe Folgeseite Jetzt (*) können JavaScript DOM-Funktionen können genutzt werden Geodatenanwendungen, Seite 42

43 Umgang mit ResponseXML im IE if (window.activexobject) { var toappend = document.createelement('xml'); //responsetext in innerhtml einfügen toappend.setattribute('innerhtml',http_request.responsetext); // mit einem eindeutigen ID kennzeichnen toappend.setattribute('id', 'auniqueid'); // gesamten Zweig irgendwo einhängen document.body.appendchild(toappend); // XML Zweig anhand der ID suchen und als xmldoc ansprechbar machen xmldoc = document.getelementbyid('_makeauniqueid'); // Tag wieder entfernen document.body.removechild(document.getelementbyid('auniqueid')); }... Xmldoc verwenden... Es gibt Browserunterschiede! Geodatenanwendungen, Seite 43

44 4. Schritt: Antwort als XML-Objekt verarbeiten... var xmldoc = http_request.responsexml; var root_node = xmldoc.getelementsbytagname('root').item(0); alert(root_node.firstchild.nodevalue);... Der gesamte Prozess wird durch ein Benutzerereignis ausgelöst: <a href="javascript:macherequest('tour.gpx')">route anzeigen</a> Geodatenanwendungen, Seite 44

45 Methoden des XMLHTTPRequest-Objekts (I) abort() Stoppt die gegenwärtige Server-Anfrage getallresponseheaders() Gibt die vom Server gesendeten Header als String zurück. getresponseheader("headerlabel") Gibt den benannten Header als String zurück. open("method", "URL"[, asyncflag[, "username"[, "password"]]]) Öffent eine Verbindung zum Server. Parameter:method: GET POST PUT HEAD POST solte verwendet werden, wenn die gesendeten Daten größer als 500 bytes sind. HEAD wird verwendet, wenn nur Response-Header und keine Daten angefordert werden. Dieses kann z.b. verwendet werden, wenn für eine Datei auf dem Server das Datum der letzen Änderung (Last-Modified) abgefragt werden soll. URL: Pfad (relative oder absolut) + ggf. Querystring asyncflag: true false Asynchrone (true) oder synchrone (false) DatenübertragunguserName: password: Benutzername und Passwort für eine Ressource auf dem Server Geodatenanwendungen, Seite 45

46 Methoden des XMLHTTPRequest-Objekts (II) send(content) Sendet die Daten an den Server.Parameter:content: null bei GET oder ein Query-String bei POST setrequestheader("label", "value") Hierüber können Header gesetzt werden, z.b. der Content-Type. setmimetype("mimetype") setzen des Mimetyps der angeforderten Daten (Response). Wird vom Internet Explorer nicht unterstützt. Parameter: mimetype der MimeType als String (z.b. "text/xml") Geodatenanwendungen, Seite 46

47 Eigenschaften des XMLHTTPRequest-Objekts onreadystatechange Event-Handler der jedesmal aufgerufen wird, wenn sich der Verbindungsstatus (readystate) ändert readystate Enthält den aktuellen Verbindungsstatus. Mögliche Werte: 0 = Verbindung noch nicht geöffnet ('open()' noch nicht aufgerufen) 1 = Noch keine Anfrage gesendet ('send()' noch nicht aufgerufen) 2 = Anfrage gesendet, Antwort-Header und Antwort-Status kann abgefragt werden. 3 = Daten vom Server kommen nach und nach an. 'responsetext' enthält die bislang vom Server gesendeten Daten. 4 = Kommunikation mit dem Server ist abgeschlossen. Alle Daten sind angekommen (status = 200), wenn kein Fehler aufgetreten ist. Geodatenanwendungen, Seite 47

48 Eigenschaften des XMLHTTPRequest-Objekts responsetext Enthält die vom Server gesendeten Daten als Text responsexml Enthält die vom Server gesendeten Daten als XML-Daten. Wenn die Daten als Plaintext gesendet worden sind, enthält responsexml null. status Enthält den HTTP-Status der Verbindung als Zahl (z.b. 200 für Erfolg oder 404, wenn die angeforderte Ressource nicht existiert) statustext Enthält den HTTP-Status als Text-Meldung (z.b. "Not found") Geodatenanwendungen, Seite 48

49 Kommunikation mit AJAX Die Kommunikation mit dem Server über AJAX ist einfach umzusetzen Die Schwierigkeit liegt eher in Browserspezfika; bestimmte Methoden und Verhaltensweisen sind von den Browsern unterschiedlich implementiert Achten Sie auf die Trennung von Layout und Inhalt; das erleichtert die Entwicklungs- und Wartungsarbeit Die Interaktion mit der Seite durch Benutzerin/Benutzer stellt nicht selten relativ hohe Anforderungen an die Synchronisation der Ereignisse (Umfangreiche) Tests sind unvermeidlich: Code a litte Test a little Geodatenanwendungen, Seite 49

50 Same Origin Policy bedeutet, Skriptsprache im Browser erlaubt nur den Zugriff auf den eigenen Server Ist wichtiges Sicherheitskonzept für Client-/Browserseitige Skriptsprachen Beispiele sind Das Zurücksenden von Cookies nur an den ursprünglichen Server Die Verbindung einer HTTP-Request aus JavaScript zu dem Server, von dem auch das JavaScript bezogen wurde Dennoch besteht das Interesse, unterschiedliche Server anzufragen Namensdienste (von Google oder OpenStreetMap) sind Beispiele dafür Ein Ansatz ist, über einen Proxy die Anfrage zu gewährleisten JSON (JavaScript Object Notation) ist eine weitere Möglichkeit Eine andere Möglichkeit ist, den Zugriff über HTTP doch kontrolliert zu erlauben Geodatenanwendungen, Seite 50

51 Anfrage über einen Proxy Server XMLHttpRequest (XHR) an einen fremdem Server ist nicht erlaubt: Client Skript XHR Response XHR nicht erlaubt! Eigener Server arbeitet als proxy und erfüllt die Anfrage Client Skript XHR Response Request Response Geodatenanwendungen, Seite 51

52 Access-Control-Allow-Origin Mit einem GET oder POST HTTP Request wird ein HTTP Header gesendet: Der Origin Header enthält Information über den ursprünglichen Server von dem das Script stammt: das Protokoll, die Domäne und den Port Der Server kann damit entscheiden, ob die Anfrage beantwortet wird oder nicht; Beispiel: Origin: Wenn der Server die Anfrage erlaubt, dann sendet er einen entsprechenden Header zurück: Access-Control-Allow-Origin: oder * Fehlt der Header oder er stimmt nicht überein, dann wird der Request vom Skript im Browser nicht ausgeführt; im anderen Fall wird der Request ausgeführt. Weder der Request noch der Response enthalten Cookie Informationen! Geodatenanwendungen, Seite 52

53 Cross Origin Resource Sharing (CORS) Anfrage generiert HTTP Request Server Response Merkmal wird von HTTP Request Objekt ausgewertet Aus Sicherheitsgründen ist der Zugriff nur auf die ursprüngliche Domäne erlaubt: same origin-policy Ein Ansatz für diese Mashups: Server übernimmt die Anfragen (cross domain proxy) Die Google API und Nominatim senden das Merkmal Access-Control-Allow-Origin: * Geodatenanwendungen, Seite 53

54 Zugriff auf Dokumentstruktur via DOM Die Dokumentstruktur kann aus JavaScript heraus mit den folgenden Methoden manipuliert werden Das document-objekt bietet die Methoden getelementbyid() direkter Zugriff über die ID des Elements getelementsbytagname() liefert Array mit Objekten des entsprechenden Tags an, um auf Elemente zuzugreifen. Ein Element kann auch über das Array childnodes angesprochen werden. Dabei wird das i-te Kind eines Knotens x mit x.childnodes[i] referenziert. Die Eigenschaft firstchild und lastchild repräsentieren das erste und letzte Kind. Das "Durchhangeln" durch den DOM-Baum mit diesem Array ist sehr umständlich. Eine Kombination mit den Methode getelementbyid() wird daher oft verwendet. Den Inhalt eines Knotens liefert die Eigenschaft "nodevalue". Geodatenanwendungen, Seite 54

55 Beispiel So kann auf den Text "Test" im Beispiel innerhalb von JavaScript etwa durch var x1 = document.getelementbyid("a2"); var y1 = x1.childnodes[1].childnodes[0]; alert(y1.nodevalue); zugegriffen werden. Eine Veränderung wird im o. a. Beispiel dann durch folgende Zuweisung realisiert: y1.nodevalue = "Versuch"; Geodatenanwendungen, Seite 55

56 <html><head> <title>dom-test</title> </head> <body id="bd"> <div id="a1"> <div id="a2">dies ist ein <i>test</i>...</div> </div> <div id="b1"></div> <script language="javascript"> var x1 = document.getelementbyid("a2"); var y1 = x1.childnodes[1].childnodes[0]; alert("vorher: "+y1.nodevalue); y1.nodevalue = "Versuch"; alert("nachher: "+y1.nodevalue); </script> </body></html> Geodatenanwendungen, Seite 56

57 document <html> <head> <body> <title> a1 b1 DOM Test a2 Dies ist ein <i> Versuch Geodatenanwendungen, Seite 57

58 Elemente hinzufügen und löschen Im letzten Beispiel wurde die Struktur des DOM-Baumes nicht verändert. Das nächste Beispiel zeigt, wie durch die Methoden "createtextnode()" und "appendchild()" Elemente hinzugefügt werden können, so dass folgender Baum entsteht: Geodatenanwendungen, Seite 58

59 <html><head><title>dom-test</title></head> <body id="bd"> <div id="a1"> <div id="a2">dies ist ein <i>versuch</i>... </div> </div> <div id="b1"> </div> <script language="javascript"> var x2 = document.getelementbyid("b1"); var y2 = document.createtextnode("abc"); x2.appendchild(y2); var x3 = document.getelementbyid("b1"); var y3 = document.createelement("b"); var z3 = document.createtextnode("xyz"); if (confirm("anhaengen?")) { y3.appendchild(z3); x3.appendchild(y3); } </script> </body></html> Geodatenanwendungen, Seite 59

60 Attribute hinzufügen Attribute eines Knotens können mit der Methode "setattribute()" gesetzt oder mit getattribute()" erfragt werden. Im Folgenden wird ein IMG-Knoten in den Baum gehängt und das SRC- Attribut mit der Quelle für das Bild gesetzt. a1 a2 <body> abc b1 <b> <img> Dadurch entsteht der folgende DOM-Baum: Dies ist ein <i> Versuch xyz Geodatenanwendungen, Seite 60

61 <html><head><title>dom-test</title></head><body id="bd"> <div id="a1"><div id="a2">dies ist ein <i>versuch</i>...</div> </div> <div id="b1"></div> <script language="javascript"> var x2 = document.getelementbyid("b1"); var y2 = document.createtextnode("abc"); x2.appendchild(y2); var x3 = document.getelementbyid("b1"); var y3 = document.createelement("b"); var z3 = document.createtextnode("xyz"); y3.appendchild(z3); x3.appendchild(y3); var x4 = document.getelementbyid("b1"); var y4 = document.createelement("img"); y4.setattribute("src", "http://www.mein-server.de/bild.gif"); if (confirm("anhaengen?")) { x4.appendchild(y4);} </script></body></html> Geodatenanwendungen, Seite 61

62 removechild() Das Entfernen von Knoten aus dem DOM-Baum wird mit der Methode "removechild()" veranlasst. Im Beispiel wird der ganze Ast ab dem Knoten "b1" gelöscht. Dadurch entsteht folgender DOM-Baum: <body> a1 a2 Dies ist ein <i> Versuch Geodatenanwendungen, Seite 62

63 <html><head><title>dom-test</title></head><body id="bd"> <div id="a1"> <div id="a2"> Dies ist ein <i>versuch</i>...</div></div> <div id="b1"> </div> <script language="javascript"> var x2 = document.getelementbyid("b1"); var y2 = document.createtextnode("abc");x2.appendchild(y2); var x3 = document.getelementbyid("b1"); var y3 = document.createelement("b"); var z3 = document.createtextnode("xyz"); y3.appendchild(z3);x3.appendchild(y3); var x4 = document.getelementbyid("b1"); var y4 = document.createelement("img"); y4.setattribute("src", "http://www.mein-server/bild.gif"); x4.appendchild(y4); var x5 = document.getelementbyid("b1"); var y5 = document.getelementbyid("bd"); /* body */ if (confirm("abhaengen?")) {y5.removechild(x5);} </script></body></html> Geodatenanwendungen, Seite 63

64 Weitere Eigenschaften und Methoden attributes liefert die Attribute zum aktuellen Knoten parentnode liefert den Vorgängerknoten previoussibling liefert Vorgängerknoten auf gleicher Ebene (jüngerer Geschwisterknoten) nextsibling liefert Nachfolgerknoten auf gleicher Ebene (älterer Geschwisterknoten) appendchild() fügt einen Teilbaums an einen Knoten (am Ende des Arrays childnodes) ein insertbefore() zum Einfügen eines Knotens (innerhalb des Arrays childnodes) clonenode() zum Kopieren von Knoten (und Teilbäumen, wenn der 1. Parameter zu true auswertbar ist). Eine Liste aller Methoden und Eigenschaften sind unter zu finden Geodatenanwendungen, Seite 64

65 Weitere Eigenschaften tagname liefert den Namen eines Tags nodevalue liefert Text(Inhalt), Attributwert oder null nodetype liefert eine der folgenden Nummern Nummer Knotentyp 1 Elementknoten 2 Attributknoten 3 Textknoten 4 Knoten für CDATA-Bereich 5 Knoten für Entity-Referenz 6 Knoten für Entity 7 Knoten für Verarbeitungsanweisung 8 Knoten für Kommentar 9 Dokument-Knoten 10 Dokumenttyp-Knoten 11 Dokumentfragment-Knoten 12 Knoten für Notation Geodatenanwendungen, Seite 65

66 Same Origin Policy bedeutet, Skriptsprache im Browser erlaubt nur den Zugriff auf den eigenen Server Ist wichtiges Sicherheitskonzept für Client-/Browserseitige Skriptsprachen Beispiele sind Das Zurücksenden von Cookies nur an den ursprünglichen Server Die Verbindung einer HTTP-Request aus JavaScript zu dem Server, von dem auch das JavaScript bezogen wurde Dennoch besteht das Interesse, unterschiedliche Server anzufragen Namensdienste (von Google oder OpenStreetMap) sind Beispiele dafür Ein Ansatz ist, über einen Proxy die Anfrage zu gewährleisten JSON (JavaScript Object Notation) ist eine weitere Möglichkeit Eine andere Möglichkeit ist, den Zugriff über HTTP doch kontrolliert zu erlauben Geodatenanwendungen, Seite 66

67 Anfrage über einen Proxy Server XMLHttpRequest (XHR) an einen fremdem Server ist nicht erlaubt: Client Skript XHR Response XHR nicht erlaubt! Eigener Server arbeitet als proxy und erfüllt die Anfrage Client Skript XHR Response Request Response Geodatenanwendungen, Seite 67

Mobile Systeme Android 07.04.2011

Mobile Systeme Android 07.04.2011 Mobile Systeme Android 07.04.2011 Android Plattform/Betriebssystem für mobile Endgeräte wie z.b. Smartphones Basiert auf dem Linux Kernel Bis auf grundlegende Prozesse werden alle Anwenden mithilfe einer

Mehr

2. GUI-Programmierung für mobile Geräte

2. GUI-Programmierung für mobile Geräte 2. GUI-Programmierung für mobile Geräte Lernziele 2. GUI-Programmierung für mobile Geräte Themen/Lernziele: Einführung Lebenszyklus einer Android-Anwendung Beispiele GUI-Elemente Einbindung externer Ressourcen

Mehr

Einführung in Android

Einführung in Android Einführung in Android FH Gießen Friedberg 12. Oktober 2010 Inhalt Historie / Prognosen / Trends Grundlagen Entwicklungsumgebung Standardbeispiel Erweitertes Beispiel Übung / Quellen 2 Grundlagen - Historie

Mehr

Android. 2 24.09.2013 Mobile Systeme - Android

Android. 2 24.09.2013 Mobile Systeme - Android Android 24.09.2013 Android Plattform/Betriebssystem für mobile Endgeräte wie z.b. Smartphones Basiert auf dem Linux Kernel Bis auf grundlegende Prozesse werden alle Anwenden mithilfe einer speziellen JVM

Mehr

Einführung in Android. 9. Dezember 2014

Einführung in Android. 9. Dezember 2014 Einführung in Android 9. Dezember 2014 Was ist Android? Software für mobile Geräte: Betriebssystem Middleware Kernanwendungen Android SDK: Tools und APIs zur Entwicklung von Anwendungen auf der Android-Plattform

Mehr

Android GUI Entwicklung

Android GUI Entwicklung Android GUI Entwicklung Aktuelle Technologien verteilter Java Anwendungen Referent: Stefan Haupt Hello World! Agenda Einführung & Motivation Android Applikationen UI-Komponenten Events Ressourcen Kommunikation

Mehr

AJAX. Autor: Othmane Mihfad omihfad@hotmail.com

AJAX. Autor: Othmane Mihfad omihfad@hotmail.com AJAX Autor: Othmane Mihfad omihfad@hotmail.com Was ist AJAX? Ajax ist die Abkürzung für: Asyncronous JavaScript And XML Ajax stellt eine Kombination aus mehreren Technologien da: Javascript XML und XMLHTTPRequest

Mehr

Tutorial. Programmierung einer Android-Applikation. Teil 1

Tutorial. Programmierung einer Android-Applikation. Teil 1 Tutorial Programmierung einer Android-Applikation Teil 1 Autor: Oliver Matle Datum: März 2014, Version 1.0 Autor: Oliver Matle, www.matletarium.de Seite 1 von 28 Inhaltsverzeichnis Kapitel 1 Einleitung...3

Mehr

Übungen zur Android Entwicklung

Übungen zur Android Entwicklung Übungen zur Android Entwicklung Aufgabe 1 Hello World Entwickeln Sie eine Hello World Android Applikation und laden diese auf den Emulator. Leiten Sie hierfür die Klasse android.app.activity ab und entwerfen

Mehr

Entwickeln für Android OS

Entwickeln für Android OS Entwickeln für Android OS Am Beispiel der WAPLA Wissenschaftliche Arbeitstechniken und Präsentation Lern Applikation Christian Kain Kevin Kain Wolfgang Kremser Gregor Bankhamer Warum Android? Verbreitung

Mehr

1 Der Einstieg in Java für Android

1 Der Einstieg in Java für Android 1 1 Der Einstieg in Java für Android Diese Ergänzung zum Buch Programmieren in Java will Ihnen dabei helfen, erste Programme für Smartphones der Android Plattform von Google zu erstellen und diese Programme

Mehr

Smartphone Entwicklung mit Android und Java

Smartphone Entwicklung mit Android und Java Smartphone Entwicklung mit Android und Java predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de info@predic8.de Was ist Android Offene Plattform für mobile Geräte Software Kompletter

Mehr

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler Programmieren für mobile Endgeräte SS 2013/2014 Programmieren für mobile Endgeräte 2 Besprechung der Aufgaben 1) Legen Sie das Android-Projekt HelloWorldApp an so wie es in den vorherigen Folien beschrieben

Mehr

JOGGA Der Jogging-Companion

JOGGA Der Jogging-Companion JOGGA Der Jogging-Companion GLIEDERUNG: (1) Idee (2) Funktionen (3) Codebeispiele IDEE: Jeder Jogger kennt das Problem: Man rafft sich auf um eine Runde zu laufen, schwitzt während dessen ohne Ende und

Mehr

Mobile App Development. - Grafische Oberflächen 2 -

Mobile App Development. - Grafische Oberflächen 2 - Mobile App Development - Grafische Oberflächen 2 - Inhalt Dimensionen Layouting Menüs Activities starten Übung Dimensionen Dimensionen Analog zu Strings und Farben können Dimensionen definiert werden Dimensionen

Mehr

AJAX DRUPAL 7 AJAX FRAMEWORK. Was ist das Ajax Framework? Ein typischer Ablauf eines Ajax Requests Die Bestandteile des Ajax Frameworks.

AJAX DRUPAL 7 AJAX FRAMEWORK. Was ist das Ajax Framework? Ein typischer Ablauf eines Ajax Requests Die Bestandteile des Ajax Frameworks. DRUPAL 7 AJAX FRAMEWORK Was ist das Ajax Framework? Ein typischer Ablauf eines Ajax Requests Die Bestandteile des Ajax Frameworks AJAX Beispiele Fragen: Gibt es jemanden der noch gar keine Erfahrungen

Mehr

Android Processes & Services

Android Processes & Services Android Processes & Services Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Ziele heute Arbeitsblatt 4 besprechen (inkl. Repetition)

Mehr

Mobile App Development. - Einführung -

Mobile App Development. - Einführung - Mobile App Development - Einführung - Inhalt Organisatorisches Vorlesungsinhalt Mobile Geräte Android Architektur App Aufbau Praktikum Organisatorisches 4 SWS, 5 ECTS 2 Vorlesung / 2 Praktikum ca. 10 Wochen

Mehr

Seminar Multimediale Werkzeuge Sommersemester 2011

Seminar Multimediale Werkzeuge Sommersemester 2011 Seminar Multimediale Werkzeuge Sommersemester 2011 Dipl.-Ing. Marco Niehaus marco.niehaus@tu-ilmenau.de 09.06.2011 Page 1 Android Development - Installation Java SDK wird benötigt (http://www.oracle.com/technetwork/java/javase/downloads/index.html)

Mehr

SEMINARVORTRAG ANDROID ENTWICKLUNG ETIENNE KÖRNER EMBEDDED SYSTEMS SS2013 - HSRM

SEMINARVORTRAG ANDROID ENTWICKLUNG ETIENNE KÖRNER EMBEDDED SYSTEMS SS2013 - HSRM SEMINARVORTRAG ANDROID ENTWICKLUNG ETIENNE KÖRNER EMBEDDED SYSTEMS SS2013 - HSRM ÜBERSICHT Android Android Dalvik Virtuelle Maschine Android und Desktop Applikationen Android Entwicklung Tools R Activity

Mehr

Überleben im Funkloch

Überleben im Funkloch Überleben im Funkloch Offlinefähige Apps für Android entwickeln Christian Janz (@c_janz ) christian.janz@bridging-it.de Christian Janz Consultant im Bereich Softwareentwicklung Java/JEE bei Bridging IT

Mehr

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST 2. Interaktive Web Seiten GET und POST Die Übertragungsmethoden GET und POST sind im http Protokoll definiert: POST: gibt an, dass sich weitere Daten im Körper der übertragenen Nachricht befinden: z.b.

Mehr

Einführung in die Einführung in Android Anwendungsentwicklung

Einführung in die Einführung in Android Anwendungsentwicklung Einführung in die Einführung in Android Anwendungsentwicklung FH Gießen Friedberg 27. Oktober 2010 Inhalt Was bisher geschah / Prognosen Grundlagen Entwicklungsumgebung Beispiel: Notensammler Intents und

Mehr

Leichtgewichtige Web 2.0-Architektur für komplexe Business-Anwendungen Nicolas Moser PRODYNA AG

Leichtgewichtige Web 2.0-Architektur für komplexe Business-Anwendungen Nicolas Moser PRODYNA AG 05.07.2012 Leichtgewichtige Web 2.0-Architektur für komplexe Business-Anwendungen Nicolas Moser PRODYNA AG Agenda 01 Einführung 02 Architektur 03 Lösungen 04 Zusammenfassung 2 2 Agenda 01 Einführung 02

Mehr

Lösungen der Aufgaben zur Klausurvorbereitung. Aufgabe 1: a) was sagen die folgenden Eigenschaften eines XML-Dokumentes aus? wohlgeformt gültig

Lösungen der Aufgaben zur Klausurvorbereitung. Aufgabe 1: a) was sagen die folgenden Eigenschaften eines XML-Dokumentes aus? wohlgeformt gültig HTW Dresden Fakultät Informatik/Mathematik Internettechnologien Lösungen der Aufgaben zur Klausurvorbereitung Aufgabe 1: a) was sagen die folgenden Eigenschaften eines XML-Dokumentes aus? wohlgeformt gültig

Mehr

Ein Großteil der zurzeit verbreiteten Android- Phones läuft noch unter einer älteren Version und stellt somit die Error-Reporting-Funktion

Ein Großteil der zurzeit verbreiteten Android- Phones läuft noch unter einer älteren Version und stellt somit die Error-Reporting-Funktion Ein eigenes für Android implementieren Hurra, ein Fehlerreport! Fehler macht jeder. Wer schlau ist, lässt sich jeden Fehler sofort mit allen Daten servieren, die er für die Fehlerreproduktion benötigt.

Mehr

Web-Anwendungsentwicklung mit dem Delivery Server

Web-Anwendungsentwicklung mit dem Delivery Server Web-Anwendungsentwicklung mit dem Delivery Server Java-Framework auf Basis der Open API Bernfried Howe, Webertise Consulting GmbH WEBertise Consulting Dipl. Informatiker (Wirtschaftsinformatik) 2001-2010

Mehr

Android-Apps weitere Möglichkeiten

Android-Apps weitere Möglichkeiten Android-Apps weitere Möglichkeiten 2/20 weitere Möglichkeiten Speichern in der Sandbox OnTouchListener Senden und Empfangen von SMS Anbindung von Datenbanken Der Beschleunigungssensor Übung 3/20 Speichern

Mehr

Android Einführung Fragments Android Kurs Stufe 2 (Orangegurt)

Android Einführung Fragments Android Kurs Stufe 2 (Orangegurt) Android Kurs Stufe 2 (Orangegurt) Inhaltsverzeichnis 1 Fragments... 2 2 Der Life Cycle eines Fragments... 2 3 Die Supportlibrary oder das Problem mit der Version... 3 4 Aufbau der Layouts... 4 5 OnClickListener...

Mehr

Sicherheit in Rich Internet Applications

Sicherheit in Rich Internet Applications Sicherheit in Rich Internet Applications Florian Kelbert 14.02.2008 Seite 2 Sicherheit in Rich Internet Applications Florian Kelbert 14.02.2008 Inhaltsverzeichnis Grundlagen Ajax und Mashups Adobe Flash-Player

Mehr

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Präsentation zur Diplomarbeit von Übersicht Java 2 Enterprise Edition Java Servlets JavaServer Pages Enterprise JavaBeans Framework

Mehr

Web Data Mining. Albert Weichselbraun

Web Data Mining. Albert Weichselbraun Web Data Mining Albert Weichselbraun Vienna University of Economics and Business Department of Information Systems and Operations Augasse 2-6, 1090 Vienna albert.weichselbraun@wu.ac.at May 2011 Agenda

Mehr

synedra View Embedded Michael Doppler, synedra it GmbH

synedra View Embedded Michael Doppler, synedra it GmbH <m.doppler@synedra.com> synedra View Embedded Michael Doppler, synedra it GmbH 2015 synedra information technologies Zusammenfassung IndiesemDokumentwirdbeschrieben,wiesynedraViewEmbeddedinApplikationenandererHerstellerintegriertwerdenkann.

Mehr

Mobile App Development. - Activities -

Mobile App Development. - Activities - Mobile App Development - Activities - Inhalt Activity Lifecycle Erstellen Starten & Stoppen Spezielle Activities Ac3vi3es Ac3vi3es Definition Eine Aktivität repräsentiert eine Interaktion mit einem Benutzer

Mehr

Mehr Dynamik in Apex mit Javascript und JQuery. Alexander Scholz its-people

Mehr Dynamik in Apex mit Javascript und JQuery. Alexander Scholz its-people Vortrag zur DOAG Konferenz 2011 Mehr Dynamik in Apex mit und Alexander Scholz its-people 1 Ablauf Thema des Vortragsthemas Motivation Besonderheit des Referenten Alexander Scholz its-people Wie kann in

Mehr

Modellierung einer Android-App. 2. Mai 2013

Modellierung einer Android-App. 2. Mai 2013 Modellierung einer Android-App 2. Mai 2013 Taentzer Software-Praktikum 2013 42 Überblick Modellierung der wesentlichen Aspekte Welche Anwendungsfälle haben wir? Übersicht durch Anwendungsfalldiagramme

Mehr

Android Context Twitter. Software Engineering Projekt WS 09/10

Android Context Twitter. Software Engineering Projekt WS 09/10 Software Engineering Projekt WS 09/10 Gliederung Motivation Zielsetzung Grundlagen Implementation Komponentenüberblick Komponentenkommunikation Serverkomponenten (ACT) Ergebnisse / Zusammenfassung 2 Motivation

Mehr

Informatik Sommercamp 2012

Informatik Sommercamp 2012 Informatik Sommercamp 2012 App Entwicklung mit dem Android SDK Dominik W., Stefan S., Jan L. Fakultät für Informatik und Mathematik Universität Passau 23.07.2012 Gliederung 1 2 3 4 Warum? an Schule und

Mehr

Agenda. Ingo Ebel (ie007) Benjamin Müller (bm032) Was ist AJAX? Sicherheit Vor- und Nachteile. AJAX Frameworks. Wozu benötigt Client/Server

Agenda. Ingo Ebel (ie007) Benjamin Müller (bm032) Was ist AJAX? Sicherheit Vor- und Nachteile. AJAX Frameworks. Wozu benötigt Client/Server AJAX Agenda Ingo Ebel (ie007) Was ist AJAX? Wozu benötigt Client/Server Sicherheit Vor- und Nachteile Benjamin Müller (bm032) AJAX Frameworks GWT ATF Ingo Ebel - ie007 2 Web 2.0 Ingo Ebel - ie007 3 Ingo

Mehr

Softwareentwicklungsprozess im Praktikum. 25. April 2013

Softwareentwicklungsprozess im Praktikum. 25. April 2013 Softwareentwicklungsprozess im Praktikum 25. April 2013 Agile Softwareentwicklung Eine agile Methodik stellt die beteiligten Menschen in den Mittelpunkt und versucht die Kommunikation und Zusammenarbeit

Mehr

XML-Frameworks in verschiedenen Programmiersprachen Proseminar Textkodierung und Auszeichnung

XML-Frameworks in verschiedenen Programmiersprachen Proseminar Textkodierung und Auszeichnung XML-Frameworks in verschiedenen Programmiersprachen Proseminar Textkodierung und Auszeichnung Matthias Bethke bethke@linguistik.uni-erlangen.de Linguistische Informatik Universität Erlangen-Nürnberg Sommersemester

Mehr

Christian Meder inovex. Sauberes Grün QS für Android

Christian Meder inovex. Sauberes Grün QS für Android Konferenz Christian Meder inovex Sauberes Grün QS für Android Sauberes Grün: QS für Android W-JAX, 2011 Christian Meder inovex GmbH Chief Technology Officer 09.11.2011 1 Speaker Christian Meder Schwerpunkte

Mehr

4. Software-Komponenten in Android

4. Software-Komponenten in Android 4. Software-Kompponenten in Android Lernziele 4. Software-Komponenten in Android Themen/Lernziele Intents: Explizite und implizite Intents Intent-Filter Intent-Resolution Sub-Activities Broadcast Intents

Mehr

App-Entwicklung mit Titanium

App-Entwicklung mit Titanium App-Entwicklung mit Titanium Masterstudienarbeit von Betreuung Prof. Dr. M. von Schwerin App-Entwicklung mit Titanium 1 Gliederung 1.Titanium Eine Einführung 2.Programmierschnittstelle (API) 3.Module 4.App

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Android-Apps ein komplexes Beispiel (Google-Maps und GPS-Daten, Listen, SD-Kartenzugriff, Activities mit Rückgabewerten und Web-Browser/Internet)

Android-Apps ein komplexes Beispiel (Google-Maps und GPS-Daten, Listen, SD-Kartenzugriff, Activities mit Rückgabewerten und Web-Browser/Internet) Android-Apps ein komplexes Beispiel (Google-Maps und GPS-Daten, Listen, SD-Kartenzugriff, Activities mit Rückgabewerten und Web-Browser/Internet) 2/42 Android Apps: ein komplexes Beispiel Gliederung Vorstellung

Mehr

Proseminar: Website-Management-Systeme

Proseminar: Website-Management-Systeme Proseminar: Website-Management-Systeme Thema: Web: Apache/Roxen von Oliver Roeschke email: o_roesch@informatik.uni-kl.de Gliederung: 1.) kurze Einleitung 2.) Begriffsklärung 3.) Was ist ein Web? 4.) das

Mehr

Einstieg in AJAX-Programmierung

Einstieg in AJAX-Programmierung www.happy-security.de präsentiert: Einstieg in AJAX-Programmierung Autor: Tsutomu Katsura Datum: 26. Mai 2006 Herzlich willkommen zu meinem kleinen Tutorial über AJAX-Programmierung. Ich möchte hier nicht

Mehr

Auffrischung jquery. jquery Mobile. Marco Francke I 24.02.2011

Auffrischung jquery. jquery Mobile. Marco Francke I 24.02.2011 Auffrischung jquery jquery Mobile Marco Francke I 24.02.2011 Mayflower GmbH 2010 write less do more Marco Francke 24. Februar 2011 24.02.11 Mayflower GmbH 2 Mayflower GmbH 2010 Was ist jquery und was kann

Mehr

1 Ein erstes Beispiel

1 Ein erstes Beispiel 3 1 Ein erstes Beispiel In diesem Abschnitt werden wir ein erstes Android-Programm erstellen. Es dient dem schnellen Einstieg in die Programmierung von Android. Dabei handelt es sich um ein Programm zur

Mehr

Mobile App Development - Sensoren -

Mobile App Development - Sensoren - Mobile App Development - Sensoren - Inhalt Sensoren Sensor Framework Bewegungssensoren Posi2onssensoren Umweltsensoren?????????? GPS?????????? Sensoren Sensoren Was ist ein Sensor? Sensoren Defini2on Sensor

Mehr

XPages Good to know. Benjamin Stein & Pierre Hein Stuttgart 7. Mai 2015

XPages Good to know. Benjamin Stein & Pierre Hein Stuttgart 7. Mai 2015 XPages Good to know Benjamin Stein & Pierre Hein Stuttgart 7. Mai 2015 Agenda 1. Einführung Was sind XPages? 2. Allgemeine Tipps Allgemeine Tipps für die Verwendung von XPages 3. Designer Tipps Tipps für

Mehr

NFC Near Field Communication 30.04.2013

NFC Near Field Communication 30.04.2013 NFC Near Field Communication 30.04.2013 NFC Near Field Communication Standard für kontaktlose Kommunikation auf Basis von RFID (radiofrequency identification) Fast Verschiedene RFID-Standards im 13,56

Mehr

APPS FÜR ANDROID ENTWICKELN

APPS FÜR ANDROID ENTWICKELN jan TITTEL jochen BAUMANN ELL N H C S IEG T S N I E APPS FÜR ANDROID ENTWICKELN AM BEISPIEL EINER REALEN APP Inhalt 1 Einführung.............................................. 1 1.1 Die Android-Plattform.................................................

Mehr

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Eclipse Equinox als Basis für Smart Client Anwendungen Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Übersicht Definition / Architektur Smart Client Smart Client mit RCP / Equinox Gesamtfazit

Mehr

Mobile App Development. - Einführung -

Mobile App Development. - Einführung - Mobile App Development - Einführung - Inhalt Organisatorisches Vorlesungsinhalt Mobile Geräte Android Architektur App Aufbau Praktikum Organisatorisches 4 SWS, 5 ECTS 2 Vorlesung / 2 Praktikum 10 Wochen

Mehr

Softwarentwicklung für Android

Softwarentwicklung für Android Softwarentwicklung für Android Fachseminar Wintersemester 2008/09 Matrikelnummer.: 253631-1 - Inhaltsverzeichnis 1 Vorwort... 3 2 Vorraussetzungen zum Entwickeln von Android Anwendungen... 4 2.1 Standard

Mehr

Datenhaltung für Android Model First. 30.03.2011 Christian Ingenhaag, Frederik Götz, Carl Steeg

Datenhaltung für Android Model First. 30.03.2011 Christian Ingenhaag, Frederik Götz, Carl Steeg Datenhaltung für Android Model First 30.03.2011 Christian Ingenhaag, Frederik Götz, Carl Steeg Agenda Datenhaltung in Android Motivation / Projektziele Projekt Umsetzung Stand der Entwicklung Fazit 2 Datenhaltung

Mehr

0. Inhaltsverzeichnis

0. Inhaltsverzeichnis 0. Inhaltsverzeichnis 0. Inhaltsverzeichnis...1 1. Kurze Einführung WebService Architektur...2 1.1 Synchrones Modell:...2 1.2 Asynchrones Modell:...2 1.3 Vorteile:...3 1.4 Voraussetzungen...3 2. Testseite

Mehr

1 Software Engineering 1

1 Software Engineering 1 1 Software Engineering 1 XML 1.1 XML Extensible Markup Language Auszeichnungssprache zur Darstellung hierarchisch strukturierter Daten in Form von Textdaten Wird für den Datenaustausch/Speicherung benutzt

Mehr

Android Applikation zur Information von Patienten am Klinikum Großhadern. Bachelorarbeit. Andreas Maximilian Bachmayer

Android Applikation zur Information von Patienten am Klinikum Großhadern. Bachelorarbeit. Andreas Maximilian Bachmayer Android Applikation zur Information von Patienten am Klinikum Großhadern Bachelorarbeit von Andreas Maximilian Bachmayer München Hochschule München Fakultät Feinwerk- und Mikrotechnik, Physikalische Technik

Mehr

Software Engineering II

Software Engineering II Software Engineering II Codegenerierung für den SmartIO Editor mit der Modeling Workflow Engine Wintersemester 10/111 Fachgebiet Software Engineering Albert Zündorf / Wiederholung Bisher im Laufe des Semesters

Mehr

ANDROID. Analyse der Android Plattform. Andre Rein, Johannes Florian Tietje. 28. Oktober 2010. FH-Gieÿen-Friedberg Android Praktikum

ANDROID. Analyse der Android Plattform. Andre Rein, Johannes Florian Tietje. 28. Oktober 2010. FH-Gieÿen-Friedberg Android Praktikum Analyse der Android Plattform Andre Rein, Johannes Florian Tietje FH-Gieÿen-Friedberg Android Praktikum 28. Oktober 2010 Topics 1 Übersicht Android Plattform Application Framework Activities und Services

Mehr

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume. Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens

Mehr

easylearn Webservice lsessionservice Interface für Single Sign On (SSO)

easylearn Webservice lsessionservice Interface für Single Sign On (SSO) - 1 - easylearn Webservice lsessionservice Interface für Single Sign On (SSO) SDN AG, Solution Development Network Dezember 2008 - 2 - Inhaltsverzeichnis Inhaltsverzeichnis... 2 easylearn Webservice lsessionservice...

Mehr

Social Data Mining. Albert Weichselbraun. May 2009

Social Data Mining. Albert Weichselbraun. May 2009 Social Data Mining Albert Weichselbraun Vienna University of Economics and Business Administration Department of Information Systems and Operations Augasse 2-6, 1090 Vienna albert.weichselbraun@wu.ac.at

Mehr

Theorie und Praxis einer JSON-RPC-basierten Web-API

Theorie und Praxis einer JSON-RPC-basierten Web-API Theorie und Praxis einer JSON-RPC-basierten Web-API Christian Krause Christian.Krause@raritan.com Raritan Deutschland GmbH Chemnitzer LinuxTage 2015 Gliederung 1 2 Remote Procedure Call Interface Definition

Mehr

Einführung in die Cross-Plattform Entwicklung Das Intel App Framework

Einführung in die Cross-Plattform Entwicklung Das Intel App Framework Einführung in die Cross-Plattform Entwicklung Das Intel App Framework Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel App Framework vom Intel XDK vertraut. Es wird Schritt für Schritt

Mehr

Entwickeln einer eigenen App

Entwickeln einer eigenen App Entwickeln einer eigenen App Nicht nur auf der Hardware Seite unseres Android-zu-Seriell Wandlers sollte alles so einfach wie möglich sein, sondern auch auf der Software Seite. Da der Tunnel durch ADB

Mehr

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe... php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...7 3.Zugriff auf mysql Daten...11 Verteilte Systeme: php.sxw Prof.

Mehr

Java - Programmierung - Objektorientierte Programmierung 1

Java - Programmierung - Objektorientierte Programmierung 1 Java - Programmierung - Objektorientierte Programmierung 1 // Klassen und Objekte public class KlaObj public static void main(string args []) Klasse1 a; a = new Klasse1("heute", 47); Klasse1 b = new Klasse1

Mehr

Auszug aus Axis2 Schulung

Auszug aus Axis2 Schulung Auszug aus Axis2 Schulung Dieses Dokument ist ein Auszug aus unserem Skript zur Axis2- Schulung. Es dient lediglich als Beispiel für unsere Kursunterlagen. Thomas Bayer Hauptstraße 33 75050 Gemmingen Mehr

Mehr

Roadtrip Plugin. Dokumentation

Roadtrip Plugin. Dokumentation Roadtrip Plugin Dokumentation Inhaltsverzeichnis Beschreibung... 3 Installation... 3 Konfiguration der Dienste... 3 Erläuterung...3 Twitter...3 Instagram... 5 Konfiguration der User...5 Eingabe... 5 Aktivierung...

Mehr

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org)

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Dynamische Plug-ins mit Eclipse 3 Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Überblick Die Ausgangslage Dynamische Plug-ins Warum? Eclipse 3 Die OSGi-basierte

Mehr

HTML5 offline - Fallstricke von Web-Apps und Webseiten. Ulrich Schmidt (Sevenval GmbH)

HTML5 offline - Fallstricke von Web-Apps und Webseiten. Ulrich Schmidt (Sevenval GmbH) HTML5 offline - Fallstricke von Web-Apps und Webseiten Ulrich Schmidt (Sevenval GmbH) HTML5 offline 1. Warum? 2. Konzepte 3. Techniken 4. Schritte zur offline WebApp 5. Fallstricke / Grenzen 6. Empfehlung

Mehr

Groovy und CouchDB. Ein traumhaftes Paar. Thomas Westphal

Groovy und CouchDB. Ein traumhaftes Paar. Thomas Westphal Groovy und CouchDB Ein traumhaftes Paar Thomas Westphal 18.04.2011 Herzlich Willkommen Thomas Westphal Software Engineer @ adesso AG Projekte, Beratung, Schulung www.adesso.de thomas.westphal@adesso.de

Mehr

Java - Programmierung für Android. Leibniz Universität IT Services Anja Aue

Java - Programmierung für Android. Leibniz Universität IT Services Anja Aue Java - Programmierung für Android Leibniz Universität IT Services Anja Aue Bücher Dirk Luis / Peter Müller: Android Thomas Künneth: Android 5: Apps entwickeln mit Android Studio Dawn Griffiths, David Griffiths:

Mehr

Um asynchrone Aufrufe zwischen Browser und Web Anwendung zu ermöglichen, die Ajax Hilfsmittel DWR ist gebraucht.

Um asynchrone Aufrufe zwischen Browser und Web Anwendung zu ermöglichen, die Ajax Hilfsmittel DWR ist gebraucht. Technisches Design Inhalt Design Übersicht Menü und DispatcherServlet DWR Servlet Viewer Servlets Controllers Managers Sicherheit Anwendung Architektur Component Diagram Deployment Diagram Komponente Sequence

Mehr

Kapitel WT:VI. VI. Architekturen und Middleware-Technologien

Kapitel WT:VI. VI. Architekturen und Middleware-Technologien Kapitel WT:VI VI. Architekturen und Middleware-Technologien Client-Server-Architekturen Ajax REST RPC, XML-RPC, Java RMI, DCOM Web-Services CORBA Message-oriented-Middleware MOM Enterprise Application

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler Programmieren für mobile Endgeräte SS 2013/2014 Programmieren für mobile Endgeräte 2 Organisatorisches Anmelden im Web: ZIV Lehre Anmelden Anwesenheitsliste Anwesenheitsschein bei 75% Anwesenheit Allgemeine

Mehr

Mobile App Development. - Alarm -

Mobile App Development. - Alarm - Mobile App Development - Alarm - Inhalt Alarme AlarmManger Wake locks 2 Alarm Alarm Oft ist es notwendig eine App zu starten, auch wenn der Benutzer nicht mit ihr interagiert Starten von Activities zu

Mehr

Matthias Furtmüller, Stefan Haselböck. Android

Matthias Furtmüller, Stefan Haselböck. Android Matthias Furtmüller, Stefan Haselböck Android Grundlagen, Entwicklungsumgebung, wichtige Konzepte und Bibliotheken, Unit Testing unter Android, Simulator, Deployment Inhaltsverzeichnis 1 Entwicklungsumgebung,

Mehr

Wordpress am eigenen Server installieren

Wordpress am eigenen Server installieren Wordpress am eigenen Server installieren Voraussetzung: Zugang zum Server und einen Datenbanknamen und Datenbankuser 1. Download der aktuellen Wordpress-Version unter http://wpde.org/download/ Die Installation

Mehr

Java Forum Stuttgart 2008

Java Forum Stuttgart 2008 Professionelle Open Source SOA in 45 Minuten! Java Forum Stuttgart 2008 Dr. Halil-Cem Gürsoy, CDI AG Der Referent Insgesamt ca. 10 Jahre Beratung, davor Forschung Senior Consultant - JEE Evangelist Hauptsächlich

Mehr

Android - Basics. 16.10.2013 Praktikum Enwicklung von Mediensystemen WS13/14

Android - Basics. 16.10.2013 Praktikum Enwicklung von Mediensystemen WS13/14 Android - Basics 1 Heute Was ist Android? Programmieren für Android App-Struktur Activities und Intents App-Design GUI und Layout 2 Android in a nutshell Open-Source (Open Headset Alliance) Basiert auf

Mehr

XML- Sprachfamilie WS 2015/2016

XML- Sprachfamilie WS 2015/2016 XML- Sprachfamilie WS 2015/2016 Wolfgang Putz Inhalt Vorstellung Warum XML: einige XML Anwendungen Die Veranstaltung - Themen und Ziele - Organisatorisches Seite 2 Das Fraunhofer Institut für Experimentelles

Mehr

Crashkurs http - CGI/Servlets(JSF) - Viewer

Crashkurs http - CGI/Servlets(JSF) - Viewer jkrueger(at)cebitec.uni-bielefeld.de http TCP Referenzmodell : ApplicationLayer zustandloses Protokoll textbasiert für Hypertext entwickelt ist es nicht darauf beschränkt Nachrichten : Request : Client

Mehr

Web 2.0 Software-Architekturen

Web 2.0 Software-Architekturen Web 2.0 Software-Architekturen Servlets als Controller einer MVC Web Architektur Prof. Dr. Nikolaus Wulff HTTP und HTML Das HyperText TransferProtokoll (HTTP) beschreibt eine einfache verbindungslose Kommunikation,

Mehr

App Entwicklung für Android F O R T G E S C H R I T T E N E P R O G R A M M I E R U N G I N J A V A

App Entwicklung für Android F O R T G E S C H R I T T E N E P R O G R A M M I E R U N G I N J A V A App Entwicklung für Android F O R T G E S C H R I T T E N E P R O G R A M M I E R U N G I N J A V A D O Z E N T : R E F E R E N T : P R O F. D R. K L I N K E R R I C O L O S C H W I T Z Aufbau der Präsentation

Mehr

MGE Datenanbindung in GeoMedia

MGE Datenanbindung in GeoMedia TIPPS & TRICKS MGE Datenanbindung in GeoMedia 10. September 2002 / AHU INTERGRAPH (Schweiz) AG Neumattstrasse 24, CH 8953 Dietikon Tel: 043 322 46 46 Fax: 043 322 46 10 HOTLINE: Telefon: 043 322 46 00

Mehr

Gerd Wütherich Nils Hartmann. OSGi Service Platform by example

Gerd Wütherich Nils Hartmann. OSGi Service Platform by example Gerd Wütherich Nils Hartmann OSGi Service Platform by example Die OSGi Service Platform Das Buch» Detaillierte Einführung in OSGi-Technologie» April 2008, dpunkt.verlag» ISBN 978-3-89864-457-0» Website:

Mehr

Erweiterung für Premium Auszeichnung

Erweiterung für Premium Auszeichnung Anforderungen Beliebige Inhalte sollen im System als Premium Inhalt gekennzeichnet werden können Premium Inhalte sollen weiterhin für unberechtigte Benutzer sichtbar sein, allerdings nur ein bestimmter

Mehr

Das eigene Kandidatenfrontend

Das eigene Kandidatenfrontend Das eigene Kandidatenfrontend THEMA: Mit dem BeeSite API zum eigenen Job Board Dr. Sascha Juchem R&D Abteilung sascha.juchem@milchundzucker.de AGENDA Mit dem BeeSite API zum eigenen Job Board 01 Einleitung

Mehr

Mobile Anwendungen mit Qooxdoo Mobile erstellen

Mobile Anwendungen mit Qooxdoo Mobile erstellen Mobile Anwendungen mit Qooxdoo Mobile erstellen Von Thomas Kestler, elevato GmbH 28.11.2012 Einleitung...2 Voraussetzungen für Qooxdoo...2 Rahmenanwendung...3 Anlegen der Qoodoo-Anwendung...3 Stolperdrähte...6

Mehr

TCP/IP Programmierung. C# TimeServer Java6 TimeClient

TCP/IP Programmierung. C# TimeServer Java6 TimeClient TCP/IP Programmierung C# TimeServer Java6 TimeClient Stand 19.10.11 21:24:32 Seite 1 von 16 Inhaltsverzeichnis Erläuterung...3 Software...3 C#TimeServer...4 Klasse ServerThread...6 Starten und Beenden...7

Mehr

4. Servlets Ein kleiner Einstieg. Kurze Java Historie. Erinnerung: Internet Anwendungen. Konzept eines Seitenaufrufs

4. Servlets Ein kleiner Einstieg. Kurze Java Historie. Erinnerung: Internet Anwendungen. Konzept eines Seitenaufrufs 4. s Ein kleiner Einstieg Erinnerung: HTTP und HTML Idee von Web n und Containern Erstellung einfacher s (zunächst software technisch übelst unstrukturiert) Literatur: B. Basham, K. Sierra, B. Bates, Head

Mehr

Benutzerhandbuch. Gästebuch Software - YellaBook v1.0 http://www.yellabook.de. Stand: 01.08.2012. by YellaBook.de - Alle Rechte vorbehalten.

Benutzerhandbuch. Gästebuch Software - YellaBook v1.0 http://www.yellabook.de. Stand: 01.08.2012. by YellaBook.de - Alle Rechte vorbehalten. Benutzerhandbuch Gästebuch Software - YellaBook v1.0 http://www.yellabook.de Stand: 01.08.2012 Inhalt 1 Funktionen... 3 2 Systemanforderungen... 4 3 Installation... 4 4 Einbinden des Gästebuchs... 5 5

Mehr

Android Entwicklung. App Entwickler Konferenz 2010 Bonn, 17. November Markus Junginger. Twitter: #app2010 @greenrobot_de

Android Entwicklung. App Entwickler Konferenz 2010 Bonn, 17. November Markus Junginger. Twitter: #app2010 @greenrobot_de Android Entwicklung App Entwickler Konferenz 2010 Bonn, 17. November Markus Junginger Twitter: #app2010 @greenrobot_de Über mich Markus Junginger, greenrobot 2007: Erste Android App 2001: Erstes Mobile

Mehr