Des Rätsels Lösung. In die Tiefe. Marcus Ross Cross-Plattform-Apps mit PhoneGap entwickeln

Größe: px
Ab Seite anzeigen:

Download "Des Rätsels Lösung. In die Tiefe. Marcus Ross Cross-Plattform-Apps mit PhoneGap entwickeln"

Transkript

1 Werkzeuge :53 Marcus Ross Cross-Plattform-Apps mit PhoneGap entwickeln Des Rätsels Lösung Bei der Entwicklung von mobilen Anwendung können Anspruch und Wirklichkeit weit auseinanderliegen. Welcher IT-Leiter oder Entwickler möchte schon für eine einzelne App mehrere Entwicklungsprojekte für diverse mobile Plattformen auf die Beine stellen? Und welcher Geschäftsführer möchte das bezahlen? Für dieses Problem bietet PhoneGap eine Lösung. Vereinfacht lässt sich die Arbeitsweise von PhoneGap so erklären: Eine App, die mit dem Framework erstellt wurde, ruft den Webbrowser der Smartphone-Zielplattform auf und lässt eine Webanwendung lokal darin ablaufen. Dabei unterdrückt PhoneGap alles, was an den Browser erinnert, also dessen Rahmen und alle Bedienelemente wie Internetadresszeile oder Menüs. Auf den ersten Blick hat man es also nur mit einem Browser im Vollbildmodus zu tun, darin verpackt die mobile Applikation bestehend aus HTML, JavaScript und CSS. Damit aber auch der Zugriff auf die Hardware wie Kamera, Adressbuch oder anderes wie bei einer normalen Anwendung funktioniert, lädt die App in den anzuzeigenden HTML-Seiten eine JavaScript-Bibliothek. Die laufende Browserkomponente fängt dabei die PhoneGap- Aufrufe der eigenen JS-Bibliothek ab und überführt sie in native Aufrufe der jeweiligen Plattform. Das Ergebnis erhält die Anwendung per JavaScript Callback zurück. In die Tiefe Bei genauerer Betrachtung lässt sich feststellen, dass PhoneGap aus zwei wesentlichen Bausteinen besteht. Der erste ist die Bibliothek cordova.js (die JavaScript Seite), mit der die in JavaScript, HTML5 und CSS geschriebene Webapplikation arbeitet. Nachdem sie in die Anwendung eingebunden ist, stellt sie eine API für plattformunabhängige Zugriffe auf Komponenten des Smartphones zur Verfügung. Die JavaScript- Bibliothek interagiert auch mit dem zweiten Baustein von PhoneGap/Apache Cordova[1], der sogenannten Native Engine. Sie existiert in verschiedenen Implementierungen, jeweils einer pro Zielplattform, und ermöglicht die Abfragen von Sensoren des jeweiligen Betriebssystems. Wenn die enthaltenen Möglichkeiten zum Zugriff auf die Hardware per Native Engine nicht ausreichen, gibt es die Option, sie durch Plug-ins zu

2 erweitern. Dabei gilt für jede Ergänzung: Es wird sowohl eine JavaScript-Datei als auch eine plattformabhängige Klasse benötigt. Erstere stellt den Aufruf der Funktion in PhoneGap dar. Damit ihn das jeweilige Smartphone-System umsetzen kann, wird noch eine Implementierung des Plug-ins in der Native Engine benötigt. Durch die oben beschriebene Architektur ist es PhoneGap möglich, prinzipiell jedes System zu unterstützen, dass eine Webbrowser- Komponente besitzt. Aktuell lässt sich PhoneGap in der Version 3.0 offiziell mit ios, Android Blackberry (10), Windows Phone 7 und 8, Windows 8 und Tizen verwenden. Auf den Downloadseiten der Apache Foundation stehen noch einige weitere zur Verfügung wie WebOs oder Bada. Es gibt darüber hinaus ersten Code für den Support von Firefox OS und Ubuntu mobile, die dieses Jahr noch komplett unterstützt werden sollen. PhoneGap installieren War noch vor kurzer Zeit für jede Plattform einiges an Aufwand zu leisten, beschränkt sich nun die Installation von PhoneGap auf die Zeile $ sudo npm install -g phonegap Da PhoneGap seit Version 3.0 offiziell Node Packaged Modules nutzt, ist nur ein node.js-server nötig. Zur Entwicklung muss darüber hinaus das jeweilige Hersteller-SDK für die Plattform installiert sein. Als Beispiel sollen an dieser Stelle Apples ios und Googles Android SDK dienen. Bei Apple reicht das Beziehen von XCode aus dem AppStore. Dabei sollte man nicht vergessen, den ios-simulator und das Xcode-Kommandozeilen-Tool nachträglich über das Preferences- Menü zu installieren. Für Android sind die Build-Tools und ein Android-SDK notwendig, wobei sich am besten auf das von Google angebotene Installer-Paket[2] zurückgreifen lässt. Sind diese Voraussetzungen erfüllt, ist alles für einen Test bereit. Mit $ phonegap create meine-erste-app lässt sich eine erste Anwendung erstellen und es wird ein Verzeichnis samt notwendiger Struktur angelegt. Nach dem Wechsel in das Verzeichnis,

3 $ cd create meine-erste-app besteht die Möglichkeit, die jeweiligen Plattformen mit $ phonegap run <plattform> aufzurufen. Hier kann zum Beispiel android oder ios stehen. Das Kommandozeilenprogramm sucht dann automatisch nach dem jeweiligen SDK-Pfad und kompiliert die App. Durch den run-parameter wird außerdem die Bereitstellung auf ein angeschlossenes Smartphone oder der Start des Emulators durchgeführt. Da der Aufruf von phonegap create bereits eine Struktur nebst Demo-Code erstellt hat, lässt sich die Anwendung nun via $ phonegap run ios für ios oder $ phonegap run android für Android testen. Nach einer kurzen Wartezeit sollte im Emulator das Ergebnis erscheinen. (Abb. 1)

4 Emulatorreaktion auf den run-befehl in der Version für ios und Android. (Abb.1) Grüße an den Rest des Planeten Nach dem Überprüfen der Installation lässt sich mit dem Entwickeln beginnen. Der Zugriff auf die Hardware findet wie schon beschrieben über JavaScript statt. Daher eignet sich die einfache Device-API am besten als Einstiegspunkt. Über sie meldet PhoneGap, auf welchem Gerät es gerade läuft, nebst Details wie der Version des Betriebssystems oder der von PhoneGap. Mit der Kommandozeile des Frameworks lässt sich zunächst ein Projekt erstellen, diesmal mit etwas detaillierterem Aufruf: $ phonegap create deviceinfoapp --name "DeviceInfoApp" --id "de.heisedeveloper.deviceinfoapp" Erfahrene App-Entwickler haben sich sicherlich schon gefragt, wie die App-ID gesetzt werden kann. Sie wird dazu genutzt, eine App über eine einzigartige Kennung zu identifizieren. Hier eine kurze Konvention für die Namensvergabe: In der Regel wird die App-ID mit der Reverse- Domain-Name-Notation beschrieben. Im vorliegenden Fall also de.heisedeveloper.deviceinfoapp. Damit kann es mehrere Anbieter des selben App-Namens DeviceInfoApp geben, aber die App-ID ist dabei immer verschieden. Auch der Name der Anwendung, der später unter dem App- Icon zu lesen ist, lässt sich als Parameter mitgeben. Beides ist im gerade gezeigten Aufruf zu sehen.

5 Es sollte nun ein Verzeichnis mit dem Namen deviceinfoapp existieren. Im für Entwickler wichtigsten Ordner www, hinterlegt PhoneGap alle für die App notwendigen Dateien. Momentan sollten sich in ihm bereits einige Demodaten befinden: Ein js-verzeichnis für JavaScript-Code, eine Datei index.html sowie ein CSS-Ordner. Forscht man etwas weiter, findet sich noch ein icon.png, das das App-Icon repräsentiert, und einen Image-Ordner. Für Tests steht darüber hinaus das Verzeichins spec mit der Datei spec.html bereit. Hier lässt sich Code mit einem mitgelieferten Framework wie Jasmine testen. Um nun die Device API nutzen zu können, ist zunächst der in der index.html vorhandene Code mit dem folgenden zu ersetzen (zur vereinfachten Darstellung wurde Inline-JavaScript genutzt): <!DOCTYPE html> <html> <head> <title>gerätedaten-beispiel</title> <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> <script type="text/javascript" charset="utf-8"> // Warten auf Cordova document.addeventlistener("deviceready", ondeviceready, false); // Cordova ist geladen. function ondeviceready() { var element = document.getelementbyid('deviceproperties'); element.innerhtml = 'Device Name: ' + device.name + '<br />' + 'Device Cordova: ' + device.cordova + '<br />' + 'Device Platform: ' + device.platform + '<br />' + 'Device UUID: ' + device.uuid + '<br />' + 'Device Version: ' + device.version + '<br />'; } </script> </head> <body> <p id="deviceproperties">laden der Gerätedaten...</p> </body>

6 </html> Durch diesen Code wird zunächst PhoneGaps JavaScript-Bibliothek geladen. Bei der Arbeit mit Versionen vor PhoneGap 3.0 wäre statt der phonegap.js folgender Aufruf von Nöten: <script type="text/javascript" charset="utf-8" src="cordova js"> </script> Gleich nach dem Laden wird ein DOM-konformer Event Listener registriert. document.addeventlistener("deviceready", ondeviceready, false); Es folgt die Reaktion auf das Ereignis deviceready und der Aufruf der Funktion ondevice-ready. Mit letzterem lässt sich sicherstellen, dass PhoneGap komplett geladen ist, weshalb es sich empfiehlt, ihn in alle Anwendungen einzufügen. Das Ereignis (Event) erzeugt PhoneGap selbst. Wie schon erwähnt enthält PhoneGap sowohl eine native Codebasis als auch eine JavaScript-Bibliothek. Während der native Codeteil initialisiert wird, kann es sein, dass der JavaScript-Teil bereits komplett geladen und ausgeführt ist. Dabei könnte es passieren, dass der Nutzer per JavaScript auf Funktionen zugreift, deren nativer Codeteil noch nicht bereit ist, um die Aufrufe umzuwandeln und sie an die Plattform zu senden. Um diesem Timing-Problem zuvorzukommen, wird das Event deviceready von PhoneGap tatsächlich erst dann an den Browser geschickt, wenn auch der native Teil vollständig bereit steht. Das Warten auf das Event dient also als Vorsichtsmaßnahme. var element = document.getelementbyid('deviceproperties'); Das Element mit der ID deviceproperties im HTML-Dokument sorgt für die Anzeige der ermittelten Gerätedaten. Der Zugriff auf diese erfolgt eine Zeile danach. Nach der Umstellung auf PhoneGap 3 müssen erst alle verwendeten APIs registriert werden. (Abb.2) 'Device Platform: ' + device.platform

7 Der hier gezeigte Aufruf von device.platform stammt aus der PhoneGap-API. Sie erstellt ein device-objekt im globalen Namensraum. Je nach Plattform gibt die API die Werte Android, BlackBerry, ios oder Tizen zurück. Die Eigenschaften des device-objektes umfassen device.name (Name des Gerätes, zum Beispiel "Danielas iphone"), device.cordova (aktuell genutzte Version von PhoneGap, zum Beispiel 3.0.), device.platform (Plattform, auf der die App gerade läuft, zum Beispiel iphone), device.uuid (der Universally Unique Identifier des Gerätes - bei ios ist es eine 16 Byte lange Zahl, bei Android ein 64-Bit-Integer, bei Windows Phone ein Hash-Wert aus Geräte-ID und Benutzer-ID, bei BlackBerry die neunstellige Gerätenummer) und device.version (aktuelle Betriebssystemversion des Gerätes, zum Beispiel 5.1.). Das oben aufgeführte Codebeispiel ist nun nur noch per phonegap run ios beziehungsweise phonegap run android zu starten. In den älteren Versionen von PhoneGap ließe sich schon jetzt ein Erfolg verzeichnen. Die aktuelle Version quittiert den Aufruf allerdings nur mit "Lade Gerätedaten"(Abb. 2), denn durch eine Umstellung bei PhoneGap mit der Version 3.0 muss jede verwendete API erst registriert werden. Das gilt auch für die sogenannte Core-API. Mit dieser Änderung hält das Framework die Basis-Anwendung schlank, da unnützer Code nicht länger geladen werden muss. Damit das Beispiel wie erhofft läuft, ist also via phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git das entsprechende Core-Plug-in hinzuzufügen. Wie man dem Aufruf entnehmen kann, bezieht die Anwendung die Codebasis der Device-API aus einem Git-Repository. Damit ist sichergestellt, dass immer die aktuellste Version eingebunden ist beziehungsweise eine zuvor ausgewählte. Eine der wichtigsten Änderungen mit Version 3.0 ist, dass die App nach dem Laden des Plug-ins erneut zu bauen ist. Danach sollte ein Ergebnis wie in Abb. 3 zu sehen sein. Damit ist die erste kleine App auch schon erzeugt. Doch was ist mit dem App-Namen? Und wie lassen sich App-Icons definieren? Antwort auf alle diese Fragen finden sich in der Datei config.xml, die ebenfalls im www-verzeichnis zu finden ist.

8 App mit geladenen Plug-ins für ios und Android (Abb.3) Mehr Details? - config.xml! Neben der Möglichkeit, den Name der App oder die ID zu ändern, bietet diese Datei noch mehr Einstellungsmöglichkeiten. So zum Beispiel eine Anordnung für App-Icons oder Splashscreens, die je nach Format angegeben werden. Das AppIcon für ein Android-Gerät mit hoher Displayauflösung lässt sich beispielsweise mit <icon gap:density="hdpi" gap:platform="android" src="res/icon/android/icon-72-hdpi.png" /> festlegen, während der Entwickler den Splashscreen für ein ipad mit Retina-Display mit dem Befehl <gap:splash gap:platform="ios" height="960" src="res/screen/ios/screen-iphone-portrait-2x.png" width="640" /> definieren kann. Dabei sieht man auch gleich, wofür der Ordner res genutzt wird. Die config.xml[3] legt aber nicht nur Metadaten wie den Autor oder die Beschreibung fest, im preference-bereich wird auch über

9 plattformabhängige Konfiguration entschieden. Zum Beispiel lässt sich die minimale Android-Version per <preference name="android-minsdkversion" value="7"/> oder die Erscheinungsart des ios-statusbalken mittels <preference name="ios-statusbarstyle" value="black-opaque" /> festlegen. Für die eine vollständige Liste aller Konfigurationsmöglichkeiten sei die Online-Dokumentation[4] empfohlen. Wichtig ist außerdem, dass Datenverbindungen mit einem JavaScript-XmlHttpRequest oder dem PhoneGap eigenen Filetransfer unbedingt durch ein Whitelisting in der config.xml erlaubt werden müssen. Wäre in der App zum Beispiel ein Dateidownload vom Server dev.heise.de vorgesehen, würde dieser sonst so lange verweigert, bis man die Konfigurationsdatei um den Eintrag <access origin="http://dev.heise.de*" /> ergänzte. Damit lässt sich die hinterlegte Domain für den Zugriff durch die App freischalten. Der Stern am Schluss bewirkt, dass jeder Pfad im Verzeichnis freigegeben ist. Bitte recht freundlich Die Kamera ist nach wie vor eins der Top-Features eines jeden Smartphones. Sie in Anwendungen einzubauen, liegt also nah. Obwohl es nur einen Methodenaufruf für die Kamera gibt, navigator.camera.getpicture(successcb, failcb, {option}); sind die Möglichkeiten mit diesem vielfältig. Beim Aufruf werden drei Parameter übergeben, im Erfolgsfall erfolgt ein success-callback. Bei einem Fehler oder Abbruch kommt ein fail-callback zum Einsatz. <!DOCTYPE html> <html> <head> <title>capture Photo</title> <script type="text/javascript" charset="utf-8"

10 src="phonegap.js"></script> <script type="text/javascript" charset="utf-8"> // Warten, bis Cordova geladen ist // document.addeventlistener("deviceready", ondeviceready, false); // Cordova ist bereit // function ondeviceready() { capturephoto(); } function capturephoto() { navigator.camera.getpicture(onsuccess, onfail, { quality: 50, destinationtype: Camera.DestinationType.FILE_URI }); } function onsuccess(imageuri) { var image = document.getelementbyid('myimage'); image.src = imageuri; } function onfail(message) { alert('fehler: ' + message); } </script> </head> <body> <button onclick="capturephoto();">foto erstellen</button> <br> <img id="myimage" src="" />

11 </body> </html> Im oben gezeigten Codebeispiel wird nach dem obligatorischen ondeviceready-event die eigentlichen Bilderfassung mit der Funktion capturephoto() aufgerufen. Hier findet sich auch die Funktion navigator.camera.getpicture(). Im option-objekt ist eine Komprimierung des Bilder um 50 Prozent eingestellt und als Rückgabewert soll der Pfad des erstellten Bildes dienen. Im Falle der erfolgreichen Bildaufnahme löst das Programm die onsuccess-funktion als Callback aus und bekommt den Pfad der Bilddatei übergeben. Das vorliegende Beispiel übernimmt diesen dann einfach für die Anzeige des Bildes als src-attribut in das img-tag. Im Fehlerfall wird eine einfache Nachricht mit entsprechender Meldung ausgegeben. Führt man beispielsweise den Code im Emulator ohne Kamera aus, meldet das Programm "keine Kamera vorhanden". Spezielle Funktionen wie das Einstellen der Bildqualität oder Nachbearbeitung lassen sich in einem options-objekt festlegen und so konfigurieren. Damit bildet das Objekt den dritten Parameter, der unter anderem folgende Werte annehmen kann: quality: Hier wird ein Wert zwischen 1 und 100 erwartet. Er gibt an, wie stark das Bild komprimiert werden soll. destinationtype: Mit dieser Option lässt sich festlegen, ob der Pfad des Bildes oder eine Repräsentation als base64-codierten String für den Rückgabewert dienen soll. Eine Rückgabe als Binärstrom ist nicht vorgesehen. Dafür wäre der Bildpfad weiterzuverarbeiten und per Dateioperationen darauf zuzugreifen. Camera.DestinationType = { // base64 encoded String DATA_URL : 0, // Bildpfad als URI FILE_URI : 1 }; allowedit: Diese Option ermöglicht den Bearbeitungsdialog nach der Aufnahme. Hier lässt sich das Bild beschneiden und seine Größe verändern eben alles, was der Hersteller des Smartphones anbietet. Soll die Nachbearbeitung zugelassen werden, ist die Variable auf "true" zu setzen. PictureSourceType: Der Wert besagt, welche Quelle für das Bild zu nutzen ist. Hierbei ist nicht nur die Kamera gemeint. Es lässt sich auch auf eine Fotogalerie oder Albenauswahl zugreifen. Der getpicture-aufruf steht so als Möglichkeit zur Bildauswahl zur Verfügung. Camera.PictureSourceType = { PHOTOLIBRARY : 0, CAMERA : 1,

12 }; SAVEDPHOTOALBUM : 2 Damit die API-Aufrufe auch funktionieren, ist das Camera-Core-Plug-in erforderlich. Es wird mit phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-camera.git eingebunden und schon lässt sich mit dem obigen Codebeispiel experimentieren. Neben den bis jetzt vorgestellten APIs gibt es noch eine ganze Menge zusätzlicher[5]. Davon sind einige, wie die Geolocation-API, mit zu HTML5 kompatiblen Aufrufen ausgestattet, die für alle Plattformen harmonisiert sind. Das heißt, sollte ein Smartphone solche Anfragen nicht verarbeiten, da es vielleicht nur Drafts auf dem verwendeten System sind, wird PhoneGap sie trotzdem in dieser Syntax ausführen. Damit bildet es an vielen Stellen eine Brücke für einen einheitlichen HTML5-Standard. Das die Zeit nicht stehen bleibt, sieht man sehr schön an Themen wie der Batterie-API. Noch von einiger Zeit war dessen Abfrage PhoneGap vorbehalten, nun schickt sich die W3C an, die Funktion in HTML5 als Candidate Recommendation direkt in die Browser zu integrieren. Das große Ziel von PhoneGap ist es folglich, in der Zukunft nicht mehr benötigt zu werden alles sollte durch den HTML-Standard zugänglich sein. Ob es allerdings jemals so weit kommt, ist fraglich. Einmal durch den Lifecycle Der Lebenszyklus einer Smartphone-App umfasst alle Phasen, in denen sich eine Applikation zu einem bestimmten Zeitpunkt befindet. Er beginnt beim Start der App und endet bei ihrem Schließen und ermöglicht dem Entwickler, bei bestimmten Ereignissen zu reagieren, zum Beispiel beim Pausieren oder erneuten Starten einer App aus dem Hintergrund. Hier kann es sinnvoll sein, den Status der Anwendung oder die Menüposition zu speichern. PhoneGap signalisiert diese Events dabei per HTML-Eventlistener. Es entfallen daher Objekte und Methoden. Für Webentwickler ergibt sich demnach keine Umstellung, nur die Event-Namen sind andere. Im folgenden werden die einzelnen Events mit einem kleinen Beispiel vorgestellt. Das onready-event beim Starten der App ist aus den bisherigen Codeauszügen bekannt, es fehlen also noch pause und resume. Das pause-ereignis tritt immer ein, wenn das System die App in den Hintergrund bringt, beispielsweise als Reaktion auf das Drücken des Home-Buttons des iphones. Aber auch das Wechseln zwischen Anwendungen unter Android bewirkt ein Anhalten der Applikation. Sind in diesem Moment wichtige Daten zu speichern oder der Applikationsstatus zu sichern, lässt sich das Event hierfür nutzen. Die Registrierung ist dabei die gleiche wie bei herkömmlichen HTML-Events und lässt sich per

13 document.addeventlistener("pause", IhreCallbackFunktion, false) durchführen. Sollte das Ereignis eintreffen, wird die Funktion IhreCallbackFunktion ausgeführt. Der dritte Teil im Lebenszyklus einer Applikation ist das resume-event. Es wird gemeldet, wenn eine Applikation aus dem Hintergrund tritt. Wichtig dabei ist, dass sich die Anwendung nur im Hintergrund befand und nicht neu gestartet wurde. Folgendes Beispiel enthält alle drei Events: <!DOCTYPE html> <html> <head> <title>cordova-resume-beispiel</title> <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> <script type="text/javascript" charset="utf-8"> // Warten, bis Cordova vollständig geladen ist // document.addeventlistener("deviceready", ondeviceready, false); // Cordova ist geladen. // function ondeviceready() { document.addeventlistener("resume", onresume, false); document.addeventlistener("pause", onpause, false); } // Resume-Event verarbeiten // function onresume() { } // Pause-Event behandeln // function onpause() {

14 } </script> </head> <body></body> </html> Und nach dem Entwickeln? Nach der Entwicklung stellt sich meist die Frage, wie sich die Anwendung in die App-Marktplätze der Anbieter befördern lässt. Nach einem erfolgreichen $ phonegap build <Plattform> sind zunächst entweder ein APK oder XCode-Projekt zum Signieren und Senden nötig. Diese Dateien befinden sich im Ordner plattforms des PhoneGap-Projektes. Dort gibt es Unterverzeichnisse für android, ios und gegebenenfalls weitere Zielsysteme, in denen die erstellten nativen Projekte liegen. Bei ios bedeutet das ein XCode-Projekt, das sich normal weiter nutzen lässt. Im Android-Ordner finden sich hingegen im bin- Verzeichnis APK-Dateien. Mit ihnen stehen die normalen Distributionswege der jeweiligen Plattformen frei. Und was ist mit der Feature XYZ? Oft wird die Frage aufgeworfen, ob PhoneGap auch eine Datenbanken erstellt oder die neuen UI-Komponenten von ios beherrscht. Die Antwort ist in allen Fällen, selbst wenn es um Dinge wie Facebook-Integration, geht: So lange es eine normale Webanwendung kann, kann es auch eine mit PhoneGap erstellte App. Da sie einen Browser aufruft, ist sie in der Lage, alle möglichen JavaScript- Bibliotheken zu nutzen. Egal ob es um das Erstellen von Diagrammen mit Highcharts.js oder touch-optimierte Oberfläche mit jquerymobile geht. Die Frage nach der Datenbank (websql) ist auch einfach geklärt: Wenn die Plattform es unterstützt, lassen sich wie gewohnt sqlite-datenbanken erstellen. Sicherlich ist die Performance einer App mit PhoneGap nicht die einer nativen Anwendung. Allerdings haben auftretende Performanceprobleme häufig mehr mit dem Programmierstil und den verwendeten Zusatz-Bibliotheken zu tun als mit dem Framework. Ein einfaches Beispiel ist hier das Laden von Zeilen im Framework jquery-mobile. Hier wird das zähe Scrollen gerne auf PhoneGap geschoben, allerdings braucht das Rendern von Einträge immer seine Zeit und eine Implementierung von LazyLoading wäre sicherlich besser gewesen. Also lässt sich nicht jedes Performance-Problem auf PhoneGap schieben.

15 PhoneGap hilft an vielen Stellen, aber nicht überall. Der Entwickler muss sich beispielsweise selbst entscheiden, ob die Oberfläche für jede Plattform neu zu erstellen ist oder die Wahl lieber auf ein generell gültiges, mobiles UI fallen soll. Für solche Vorhaben stehen diverse HTML/CSS-Bibliotheken wie jquerymobile, Sencha-Touch, Topcoat, Twitter Bootstrap und Ratchet zur Verfügung. Auch das Erstellen von Charts oder Entwickeln von performantem JavaScript-Code ist nicht die Aufgabe des Frameworks. Fazit PhoneGap kann helfen, datengetriebene Apps für mehrere mobile Plattformen zu erstellen. Der Ansatz, HTML und JavaScript zum App-Bau zu nutzen, bietet Einsteigern schnelle Ergebnisse und Profis eine solide Basis für größere Projekte. Der Schritt auf Version 3.0 hat PhoneGap nicht geschadet. Es gibt zwar ein paar Brüche in API und Nutzung, allerdings werden diese durch die Verbesserungen der Plug-in-Schnittstelle und das einfache Installieren mittels Node-Modul aufgewogen. Auch die eigentliche Speichergröße der Anwendung nimmt durch die Umstellung ab. Lässt man die Benutzeroberfläche und ein Backend für die Daten nicht unbeachtet, kann sich PhoneGap als Grundlage für die Entwicklung von Cross-Plattform-Anwendungen als nützlich erweisen. Marcus Ross ist Dipl.-Informatik-Betriebswirt und arbeitet als freier IT-Berater und Trainer mit den Schwerpunkten Datenbanken und Webportale. Seit 2010 widmet er sich dem Thema der mobilen Cross-Plattform-Entwicklung und ist zudem PhoneGap-Comitter. PhoneGap oder Apache Cordova In der Berichterstattung taucht der Name PhoneGap oft synonym zu Apache Cordova auf. Eigentlich sollte die Frage nach der richtigen Bezeichnung einfach zu klären sein. Denn: Apache Cordova ist schlicht der neue Name vom PhoneGap-Code. In Zukunft ist also damit zu rechnen, dass dieser Name weitere Verbreitung findet, auch wenn der Entwicklergemeinde "PhoneGap" noch lange erhalten bleiben wird. Die Geschichte hinter der Namensentwicklung war ungefähr wie folgt: Das Unternehmen Nitobi wurde 1998 in Vancouver, Kanada, gegründet. An ihrem Anfang standen rund 15 Personen, die sehr früh die Mächtigkeit von JavaScript erkannten und schon vor dem iphone an Ideen arbeiteten, um das mobile Web voranzubringen. Ihr Ziel war es, die Einfachheit der Webapplikationsentwicklung mit mobilen Geräten zu verbinden. Das Projekt, das sie dazu initiierten, nannten sie PhoneGap. Am Anfang tat PhoneGap nicht mehr, als Webseiten, die in einem lokalen Ordner lagen, auf mobilen Geräten anzuzeigen. Damit konnten Webentwickler plötzlich einfache Apps (Eventkalender, Produktinfos, Anleitungen) erstellen. Am 3. Oktober 2011 sorgte ein Blogpost von Nitobi für Aufregung in der Open-Source-Community, in dem es bekannt gab, von Adobe übernommen worden zu sein. Ziel der Übernahme war es vermutlich, die Erzeugnisse des Unternehmens als Ersatz für Flash in Adobe-Produkten zu verwenden. Schnell kam die Befürchtung auf, dass PhoneGaps Open-Source-Status nicht länger sicher sei. Durch die Übergabe an die Apache Software Foundation machte Adobe diese Ängste allerdings schnell zu nichte. Seit Version 1.4 läuft das Projekt nun also dort unter dem Namen Apache Cordova.

16 Adobe arbeitet jedoch mit eigenen Entwicklern weiterhin am Projekt mit und stellt neuen Code bereit. Für seinen in der Cloud arbeitenden Build-Service PhoneGap Build und die Website[6] für Dokumentation und Beispiele verwendet das Unternehmen jedoch immer noch den alten Namen. Auch das im Verlauf des Artikels verwendete phonegap-kommandozeilen-tool ist nur ein Aufsatz für das eigentliche cordova-cli von Apache. PhoneGap ist also eine Art Distribution, vergleichbar mit den verschiedenen Linux-Versionen auf dem Markt. Adobe sponsert das Projekt und so hat es bereits Einzug in Produkte wie Adobes Dreamweaver gehalten. Doch das große Engagement hat zur Folge, dass der Name PhoneGap weiterhin dominant ist, weshalb er im Folgenden hauptsächlich Verwendung findet. Liste der Core-Plug-ins Da die Online-Dokumentation[7] hier noch etwas hinter dem aktuellen Stand des Projektes her ist, hier nun eine Auflistung der Core-Plug-ins inklusive ihrere Repositories. Device Information: $ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git Netzwerk: $ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-network-information.git Batterie Status: $ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-battery-status.git Accelerometer, compass, and geolocation: $ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device-motion.git $ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device-orientation.git $ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation.git Camera, media capture, and media playback: $ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-camera.git $ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture.git $ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-media.git Access files on device or network: $ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-file.git

17 $ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer.git Notifications via dialog box or vibration: $ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-dialogs.git $ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-vibration.git Contacts: $ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-contacts.git Globalization: $ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-globalization.git Splash Screen: $ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen.git In-app browser: $ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser.git Debug console: $ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-console.git Zusätzlich sind auch Erweiterungen wie ein Barcode-Scanner zu bekommen. Diese finden Sie auf GitHub[8]. Allerdings sei hier gewarnt: Die neue Plug-in-Struktur bedingt, dass die existierenden Erweiterungen erst noch zu portieren sind. In einigen Monaten dürfte hier mehr zu sehen sein, erste Ports von bestehenden Plug-ins sind jedoch schon jetzt verfügbar. URL dieses Artikels: Links in diesem Artikel: [1] [2] [3] [4] [5] [6] [7]

18 [8] https://github.com/phonegap/phonegap-plugins Copyright 2013 Heise Zeitschriften Verlag Content Management by InterRed International: The H, The H Security, The H Open Source

3 Die Zielplattformen

3 Die Zielplattformen 21 In diesem Kapitel werden Sie das Aufsetzen der Entwicklungsumgebungen der verschiedenen Smartphone-Systeme kennenlernen. Jede Smartphone-Plattform stelle ich Ihnen dabei in einem eigenen Unterkapitel

Mehr

1 Entwickeln mit PhoneGap

1 Entwickeln mit PhoneGap 1 1.1 Das Cross-Plattform-Problem Bevor ich mit Ihnen in die praktische Entwicklung einsteige, möchte ich Ihnen von einem kurzen Gespräch berichten, das sich vor einiger Zeit in der IT-Abteilung eines

Mehr

5.4 Die Benachrichtigung (Notification)

5.4 Die Benachrichtigung (Notification) 160 Bekannte Probleme Windows Phone Im Emulator wird immer die Connection.UNKNOWN zurückgegeben. ios und Bada Es wird leider nur unterschieden, ob es eine mobile oder WiFi-Verbindung gibt. Der Grad der

Mehr

7 Plugins einbinden. 7.1 Beispiel»Die Taschenlampe«

7 Plugins einbinden. 7.1 Beispiel»Die Taschenlampe« 201 PhoneGap bringt einen standardisierten Hardwarezugriff für Smartphones mit. Aber was passiert, wenn Sie mehr wollen: Wenn Sie eine Hardware per Bluetooth ansprechen wollen oder Features der jeweiligen

Mehr

Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap

Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap Proseminar Objektorientiertes Programmieren mit.net und C# Florian Schulz Institut für Informatik Software & Systems Engineering Einführung Was hat Cross-Plattform

Mehr

App Entwicklung mit Hilfe von Phonegap. Web Advanced II - SS 2012 Jennifer Beckmann

App Entwicklung mit Hilfe von Phonegap. Web Advanced II - SS 2012 Jennifer Beckmann App Entwicklung mit Hilfe von Phonegap Web Advanced II - SS 2012 Jennifer Beckmann http://www.focus.de/digital/internet/netzoekonomie-blog/smartphone-googles-android-laeuft-konkurrenz-in-deutschland-davon_aid_723544.html

Mehr

Programmierung mobiler Geräte

Programmierung mobiler Geräte Programmierung mobiler Geräte SoSe 2015 Hybride Apps Markus Berg Hochschule Wismar Fakultät für Ingenieurwissenschaften Bereich Elektrotechnik und Informatik http://mmberg.net 2 Letzte Woche: Webapps Nativ

Mehr

Inhaltsverzeichnis. Ralph Steyer. Apps mit PhoneGap entwickeln. Universelle Web-Apps plattformneutral programmieren. ISBN (Buch): 978-3-446-43510-0

Inhaltsverzeichnis. Ralph Steyer. Apps mit PhoneGap entwickeln. Universelle Web-Apps plattformneutral programmieren. ISBN (Buch): 978-3-446-43510-0 sverzeichnis Ralph Steyer Apps mit PhoneGap entwickeln Universelle Web-Apps plattformneutral programmieren ISBN (Buch): 978-3-446-43510-0 ISBN (E-Book): 978-3-446-43543-8 Weitere Informationen oder Bestellungen

Mehr

Einführung in die Cross-Plattform Entwicklung Zugriff auf Sensoren mit dem Intel XDK

Einführung in die Cross-Plattform Entwicklung Zugriff auf Sensoren mit dem Intel XDK Einführung in die Cross-Plattform Entwicklung Zugriff auf Sensoren mit dem Intel XDK Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel XDK und dem Zugriff auf Sensoren vertraut. Es wird

Mehr

JDroidLib mit Eclipse (Mac/Linux/Windows)

JDroidLib mit Eclipse (Mac/Linux/Windows) JDroidLib mit Eclipse (Mac/Linux/Windows) Version 1.3, 25. März 2013 (Unter Windows besser die ADT-Bundle Version installieren, siehe entsprechende Anleitung) Vorbereitungen: 1. JDK SE neuste Version installieren,

Mehr

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP)

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP) MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP) Oliver Steinhauer Markus Urban.mobile PROFI Mobile Business Agenda MOBILE ENTERPRISE APPLICATION PLATFORM AGENDA 01 Mobile Enterprise Application Platform

Mehr

Apps-Entwicklung mit Netbeans

Apps-Entwicklung mit Netbeans JDroid mit Netbeans Seite 1 Apps-Entwicklung mit Netbeans Version 2.2, 30. April 2013 Vorbereitungen: 1. JDK SE neuste Version installieren, (http://www.oracle.com/technetwork/java/javase/downloads/index.html)

Mehr

Apps-Entwicklung mit Eclipse

Apps-Entwicklung mit Eclipse JDroid mit Eclipse Seite 1 Apps-Entwicklung mit Eclipse Version 1.1, 30. April 2013 Vorbereitungen: 1. JDK installieren JDK SE neuste Version (64 oder 32 Bit) herunterladen und installieren (http://www.oracle.com/technetwork/java/javase/downloads/index.html)

Mehr

Mobile Application Development

Mobile Application Development Mobile Application Development Android: Einführung Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Lernziele Der/die Kursbesucher/in kann

Mehr

Einführung in die Cross-Plattform Entwicklung Das Intel XDK

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

Mehr

Integration mobiler Endgeräte in Medizinprodukte und Medizintechnik-nahe Produkte

Integration mobiler Endgeräte in Medizinprodukte und Medizintechnik-nahe Produkte Integration mobiler Endgeräte in Medizinprodukte und Medizintechnik-nahe Produkte Agenda Problemstellung Medizinprodukt App Grundlagen Szenarien (Problemstellungen und Lösungsansätze) 03.06.2013 2 Innovationen

Mehr

Appery.io Mobile Apps schnell und einfach entwickeln

Appery.io Mobile Apps schnell und einfach entwickeln Appery.io Mobile Apps schnell und einfach entwickeln Cloud-basierte Entwicklungsumgebung, keine lokale Installation von Entwicklungsumgebung nötig. Technologie: HTML5. JQuery Mobile, Apache Cordova. Plattformen:

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

Bin ich fit für myconvento?

Bin ich fit für myconvento? Bin ich fit für myconvento? Sie planen den Einsatz unserer innovativen Kommunikationslösung myconvento und fragen sich gerade, ob Ihr Rechner die Anforderungen erfüllt? Hier erfahren Sie mehr. Inhalt Was

Mehr

AJAX SSL- Wizard Referenz

AJAX SSL- Wizard Referenz AJAX SSL- Wizard Referenz Version 1.0.2+ - 04.04.2011 Präambel Die vorliegende Dokumentation beschreibt den AJAX basierten SSL- Wizard der CertCenter AG. Der SSL- Wizard kann mit wenigen Handgriffen nahtlos

Mehr

Mobile: Die Königsfrage

Mobile: Die Königsfrage Mobile: Die Königsfrage - Native App,Mobile Website oder doch Responsive Design? - Native App oder Mobile Website? Wer am Boom der mobilen Anwendungen teilhaben möchte, hat im Prinzip zwei Möglichkeiten:

Mehr

Möglichkeiten, Vorteile und Grenzen der Cross-Plattform-Entwicklung

Möglichkeiten, Vorteile und Grenzen der Cross-Plattform-Entwicklung Möglichkeiten, Vorteile und Grenzen der Cross-Plattform-Entwicklung iks Thementag Mobile Applikationen Es lebe die Vielfalt?! 18.06.2013 Autor: Jan Laußmann Agenda Warum Cross-Plattform entwickeln? Hybrid

Mehr

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP)

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP) MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP) Oliver Steinhauer.mobile PROFI Mobile Business Agenda MOBILE ENTERPRISE APPLICATION PLATFORM AGENDA 01 Mobile Enterprise Application Platform 02 PROFI News

Mehr

C++ und mobile Plattformen

C++ und mobile Plattformen Dieser Artikel stammt aus dem Magazin von C++.de (http://magazin.c-plusplus.de) C++ und mobile Plattformen Mit diesem Artikel möchte ich euch einen kurzen Überblick über die verschiedenen Plattformen für

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

JavaScript Frameworks für Mobile

JavaScript Frameworks für Mobile JavaScript Frameworks für Mobile MoBI Expertenrunde Usability, 1. März 2012 doctima GmbH JavaScript Frameworks für Mobile MoBI 1.3.2012 Edgar Hellfritsch Inhalt Native App-Entwicklung Klassische Web-Entwicklung

Mehr

Mobility mit IBM Worklight Erste Schritte zu einer mobilen App. Benjamin Stein, Consultant Stuttgart, 03.04.2014

Mobility mit IBM Worklight Erste Schritte zu einer mobilen App. Benjamin Stein, Consultant Stuttgart, 03.04.2014 Mobility mit IBM Worklight Erste Schritte zu einer mobilen App Benjamin Stein, Consultant Stuttgart, 03.04.2014 Agenda Was ist IBM Worklight eigentlich? Hintergrund und Idee, Architektur und Bestandteile

Mehr

Apps entwickeln mit HTML und Javascript

Apps entwickeln mit HTML und Javascript Apps entwickeln mit HTML und Javascript Framework "PhoneGap" (Apache Cordova) Apps für diverse Mobil-Plattformen (Android, ios, etc.) Apps als Web-Anwendung Vor- und Nachteile zu nativen Apps. Frank Bartels

Mehr

App-Entwicklung für Android

App-Entwicklung für Android App-Entwicklung für Android Einleitung - Systemarchitektur Hochschule Darmstadt WS15/16 1 Inhalt Historie Systemarchitektur Sandbox 2 Motivation Kontra Pro Limitierte Größe Begrenzte Ressourcen Kein Standardgerät

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

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

Installation des edu- sharing Plug- Ins für Moodle

Installation des edu- sharing Plug- Ins für Moodle Installation des edu- sharing Plug- Ins für Moodle [edu-sharing Team] [Dieses Dokument beschreibt die Installation und Konfiguration des edu-sharing Plug-Ins für das LMS Moodle.] edu- sharing / metaventis

Mehr

Präsentation Von Laura Baake und Janina Schwemer

Präsentation Von Laura Baake und Janina Schwemer Präsentation Von Laura Baake und Janina Schwemer Gliederung Einleitung Verschiedene Betriebssysteme Was ist ein Framework? App-Entwicklung App-Arten Möglichkeiten und Einschränkungen der App-Entwicklung

Mehr

FileMaker Go Alternativen

FileMaker Go Alternativen Thomas Hahn @ walkingtoweb.com Thomas Hahn @ walkingtoweb.com Programmierung mit Basic und C++ ab 1987 FileMaker Pro Entwicklung seit 1992 (FileMaker Pro 2.1) Weblösungen seit 1993 Entwicklung von komplexen

Mehr

Installation und Registrierung von WinGAEB 3.5 unter Linux mit CrossOver Office

Installation und Registrierung von WinGAEB 3.5 unter Linux mit CrossOver Office Installation und Registrierung von WinGAEB 3.5 unter Linux mit CrossOver Office 1. WINGAEB UND LINUX... 2 1.1. Systemvoraussetzungen... 2 1.2. Anmerkungen... 2 2. DIE INSTALLATION VON WINGAEB... 3 2.1.

Mehr

Cross-Platform Mobile Apps

Cross-Platform Mobile Apps Cross-Platform Mobile Apps 05. Juni 2013 Martin Wittemann Master of Science (2009) Arbeitet bei 1&1 Internet AG Head of Frameworks & Tooling Tech Lead von qooxdoo Plattformen Java ME 12 % Rest 7 % Android

Mehr

Mobile Kartenanwendungen im Web oder als App?

Mobile Kartenanwendungen im Web oder als App? Mobile Kartenanwendungen im Web oder als App? Agenda Anforderungen an eine mobile Kartenanwendung Warum mobile Anwendungen? Mobil ist nicht genug! Knackpunkte bei der Entwicklung mobiler Kartenanwendungen

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 Applications. Adrian Nägeli, CTO bitforge AG

Mobile Applications. Adrian Nägeli, CTO bitforge AG Mobile Applications Adrian Nägeli, CTO bitforge AG Inhalt Vorstellung Marktübersicht Entwicklung Adrian Nägeli Dipl. Inf.-Ing FH Seit 2005 bei bitforge bitforge AG Standort Rapperswil-Jona Gründung 2004

Mehr

Entwicklungswerkzeuge & - methoden

Entwicklungswerkzeuge & - methoden Entwicklungswerkzeuge & - methoden Debugging und Logging von mobile Apps Jürgen Menge Sales Consultant, Oracle Deutschland E-Mail: juergen.menge@oracle.com +++ Bitte nutzen Sie die bevorzugte Telefonnummer

Mehr

HYBRID-APPS ENTWICKELN. UWE MUTZ Univ.-Lektor Ing. MSc MAS

HYBRID-APPS ENTWICKELN. UWE MUTZ Univ.-Lektor Ing. MSc MAS HYBRID-APPS ENTWICKELN UWE MUTZ Univ.-Lektor Ing. MSc MAS ZIEL DES WEBINARS Einblick in die Entwicklung einer App auf Basis einer Website Verständnisgewinn zum Thema App-Entwicklung generell: Website Responsive

Mehr

@HERZOvision.de. Änderungen im Rahmen der Systemumstellung 20.04.2015. v 1.1.0 by Herzo Media GmbH & Co. KG www.herzomedia.de

@HERZOvision.de. Änderungen im Rahmen der Systemumstellung 20.04.2015. v 1.1.0 by Herzo Media GmbH & Co. KG www.herzomedia.de @HERZOvision.de Änderungen im Rahmen der Systemumstellung 20.04.2015 v 1.1.0 by Herzo Media GmbH & Co. KG www.herzomedia.de Inhaltsverzeichnis Inhaltsverzeichnis... 2 Modernisierung des herzovision.de-mailservers...

Mehr

Mobile Backend in der

Mobile Backend in der Mobile Backend in der Cloud Azure Mobile Services / Websites / Active Directory / Kontext Auth Back-Office Mobile Users Push Data Website DevOps Social Networks Logic Others TFS online Windows Azure Mobile

Mehr

IMBA. Installationsanleitung. SQL Server-Datenbankadapter. Das Instrument für den fähigkeitsgerechten Personaleinsatz

IMBA. Installationsanleitung. SQL Server-Datenbankadapter. Das Instrument für den fähigkeitsgerechten Personaleinsatz Das Instrument für den fähigkeitsgerechten Personaleinsatz IMBA SQL Server-Datenbankadapter Installationsanleitung gefördert durch das Bundesministerium für Gesundheit und Soziale Sicherung Vorbereitung

Mehr

Facebook iframe-tabs: individuelle Fanseiten-Reiter mit eigener Anwendung erstellen

Facebook iframe-tabs: individuelle Fanseiten-Reiter mit eigener Anwendung erstellen Facebook iframe-tabs: individuelle Fanseiten-Reiter mit eigener Anwendung erstellen Anfang März 2011 hat Facebook das Erstellen von sogenannten iframe-tabs als individuelle Gestaltungsmöglichkeit von Fanseiten

Mehr

Ihr IT-Dienstleister aus Bonn

Ihr IT-Dienstleister aus Bonn Ihr IT-Dienstleister aus Bonn Wer wir sind Sie sind auf der Suche nach einem Partner, der Sie bei der technischen Umsetzung Ihrer Online-Projekte zuverlässig und kompetent unterstützt? Wer wir sind Die

Mehr

Microsoft PowerPoint 2013 YouTube-Video einfügen

Microsoft PowerPoint 2013 YouTube-Video einfügen Hochschulrechenzentrum Justus-Liebig-Universität Gießen Microsoft PowerPoint 2013 YouTube-Video einfügen YouTube-Video einfügen in PowerPoint 2013 Seite 1 von 6 Inhaltsverzeichnis Einleitung... 2 Vorbereitungen...

Mehr

3.9 Grundelemente einer Benutzeroberfläche

3.9 Grundelemente einer Benutzeroberfläche 92 3 Grundlagen einer ios-anwendung 3.8.4 Target-Actions Einer der häufigsten Anwendungsfälle bei einer Oberfläche ist das Betätigen einer Schaltfläche durch einen Anwender, woraufhin eine bestimmte Aktion

Mehr

AVR-Programmierung unter Mac OSX

AVR-Programmierung unter Mac OSX AVR-Programmierung unter Mac OSX im Studiengang BEL3 Lehrveranstaltung Embedded Systems Tutorial ausgeführt von: Jürgen Hausladen A-2460 Bruck/Leitha, Obere Neugasse 6 Wien 01.02.2011 Inhaltsverzeichnis

Mehr

WEBAPPS MEDIEN ZWISCHEN TECHNOLOGIE UND GESELLSCHAFT PROF. DR. MANFRED THALLER JONAS SCHOPHAUS UNI KÖLN WS 2012

WEBAPPS MEDIEN ZWISCHEN TECHNOLOGIE UND GESELLSCHAFT PROF. DR. MANFRED THALLER JONAS SCHOPHAUS UNI KÖLN WS 2012 WEBAPPS MEDIEN ZWISCHEN TECHNOLOGIE UND GESELLSCHAFT PROF. DR. MANFRED THALLER JONAS SCHOPHAUS UNI KÖLN WS 2012 AGENDA 1. Native versus webbasierte Apps 2. HTML5 & CSS3 1. Media Queries 2. Geolocation

Mehr

Top-Themen. Workshop: Drucken mit iphone und ipad... 2. Seite 1 von 15

Top-Themen. Workshop: Drucken mit iphone und ipad... 2. Seite 1 von 15 Top-Themen Workshop: Drucken mit iphone und ipad... 2 Seite 1 von 15 AirPrint in der Praxis Workshop: Drucken mit iphone und ipad von Thomas Joos, Malte Jeschke Seite 2 von 15 Inhalt Drucken mit iphone

Mehr

RIWA NetUpdater Tool für automatische Daten- und Softwareupdates

RIWA NetUpdater Tool für automatische Daten- und Softwareupdates RIWA NetUpdater Tool für automatische Daten- und Softwareupdates Grundlegendes... 1 Ausführbare Dateien und Betriebsmodi... 2 netupdater.exe... 2 netstart.exe... 2 netconfig.exe... 2 nethash.exe... 2 Verzeichnisse...

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

E-Commerce: IT-Werkzeuge. Web-Programmierung. Kapitel 4: Einführung in JavaScript Stand: 03.11.2014. Übung WS 2014/2015. Benedikt Schumm M.Sc.

E-Commerce: IT-Werkzeuge. Web-Programmierung. Kapitel 4: Einführung in JavaScript Stand: 03.11.2014. Übung WS 2014/2015. Benedikt Schumm M.Sc. Übung WS 2014/2015 E-Commerce: IT-Werkzeuge Web-Programmierung Kapitel 4: Stand: 03.11.2014 Benedikt Schumm M.Sc. Lehrstuhl für ABWL und Wirtschaftsinformatik Katholische Universität Eichstätt-Ingolstadt

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

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

Aufsetzen Ihres HIN Abos

Aufsetzen Ihres HIN Abos Aufsetzen Ihres HIN Abos HIN Health Info Net AG Pflanzschulstrasse 3 8400 Winterthur Support 0848 830 740 Fax 052 235 02 72 support@hin.ch www.hin.ch HIN Health Info Net AG Grand-Rue 38 2034 Peseux Support

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

www.jsf-academy.com JSF goes Mobile Mit JavaServer Faces mobile Welten erschließen Copyright 2013, Andy Bosch, www.jsf-academy.

www.jsf-academy.com JSF goes Mobile Mit JavaServer Faces mobile Welten erschließen Copyright 2013, Andy Bosch, www.jsf-academy. www.jsf-academy.com JSF goes Mobile Mit JavaServer Faces mobile Welten erschließen Copyright 2013, Andy Bosch, www.jsf-academy.de Slide 1 Was habe ich heute vor? Aufzeigen, welche Möglichkeiten JSF bietet,

Mehr

Möglichkeiten, Vorteile und Grenzen der Cross-Plattform-Entwicklung

Möglichkeiten, Vorteile und Grenzen der Cross-Plattform-Entwicklung Möglichkeiten, Vorteile und Grenzen der Cross-Plattform-Entwicklung iks Thementag Mobile Applikationen Es lebe die Vielfalt?! 20.11.2012 Autor: Jan Laußmann Agenda Warum Cross-Plattform entwickeln? Hybrid

Mehr

Brainloop Secure Dataroom Version 8.30. QR Code Scanner-Apps für ios Version 1.1 und für Android

Brainloop Secure Dataroom Version 8.30. QR Code Scanner-Apps für ios Version 1.1 und für Android Brainloop Secure Dataroom Version 8.30 QR Code Scanner-Apps für ios Version 1.1 und für Android Schnellstartanleitung Brainloop Secure Dataroom Version 8.30 Copyright Brainloop AG, 2004-2015. Alle Rechte

Mehr

Multivariate Tests mit Google Analytics

Multivariate Tests mit Google Analytics Table of Contents 1. Einleitung 2. Ziele festlegen 3. Einrichtung eines Multivariate Tests in Google Analytics 4. Das JavaScript 5. Die Auswertung der Ergebnisse Multivariate Tests mit Google Analytics

Mehr

Mit Cloud Power werden Sie zum

Mit Cloud Power werden Sie zum Mit Cloud Power werden Sie zum Herzlich Willkommen! Christian Hassa Managing Partner TechTalk Software AG Agenda Mobile App Development mit Xamarin Pause Azure Mobile Services Q&A 9h00-10h30 10h30-10h50

Mehr

D.5 Eine Klasse für serielle Geräte schreiben

D.5 Eine Klasse für serielle Geräte schreiben D.5 Eine Klasse für serielle Geräte schreiben 285 D.5 Eine Klasse für serielle Geräte schreiben Man kann viel lernen, wenn man in einer interaktiven Umgebung mit einer neuen Bibliothek herumspielt. Allerdings

Mehr

BillSAFE Modul für xt:commerce 4 ab Version 4.0.13

BillSAFE Modul für xt:commerce 4 ab Version 4.0.13 BillSAFE Modul für xt:commerce 4 ab Version 4.0.13 Herzlich willkommen, Sie haben sich für BillSAFE, den beliebtesten Rechnungskauf-Anbieter bei Deutschlands Online-Shoppern entschieden. (TNS Emnid Studie

Mehr

Installation unter LINUX mit PostgreSQL DB

Installation unter LINUX mit PostgreSQL DB Installation unter LINUX mit PostgreSQL DB Inhaltsverzeichnis 1. Installation und Konfiguration der PostgreSQL Datenbank... 3 2. Installation von Intrexx Xtreme 4.5... 5 Schreibkonventionen In diesem Handbuch

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

Die Installation des GeoShop Redirector für IIS (Internet Information Server, Version 4.0, 5.0 und 6.0) umfasst folgende Teilschritte:

Die Installation des GeoShop Redirector für IIS (Internet Information Server, Version 4.0, 5.0 und 6.0) umfasst folgende Teilschritte: Installation des GeoShop Redirector für IIS (Stand 24.8.2007) ============================================================= 0 Überblick ----------- Die Installation des GeoShop Redirector für IIS (Internet

Mehr

Kurzanleitung. SpaceController

Kurzanleitung. SpaceController Kurzanleitung SpaceController V ielen Dank, dass Sie sich für den SpaceController entschieden haben. Natürlich haben Sie hinreichende Erfahrung in der Installation von Treibern und Software. Dennoch sollten

Mehr

Installation Anleitung für JTheseus und MS SQL Server 2000

Installation Anleitung für JTheseus und MS SQL Server 2000 Installation Anleitung für JTheseus und MS SQL Server 2000 Inhaltsverzeichnis 1 Installation der Datenbank 3 1.1 Erstellen der Datenbank 3 1.2 Tabellen und Minimal Daten einlesen 4 1.3 Benutzer JTheseus

Mehr

Autorensysteme für mobile Anwendungen - Totgesagte leben länger. Prof. Dr. Michael Bauer 25.10. 2012 Autorensysteme

Autorensysteme für mobile Anwendungen - Totgesagte leben länger. Prof. Dr. Michael Bauer 25.10. 2012 Autorensysteme Autorensysteme für mobile Anwendungen - Totgesagte leben länger Was ist, was will ein Autor? Produzent interaktiver, multimedialer Inhalte geschlossene Einheiten (Apps) keine Grenzen für Kreativität Entwicklungs-

Mehr

eytron VMS Webanwendung Fehlersuche und -Behebung

eytron VMS Webanwendung Fehlersuche und -Behebung eytron VMS Webanwendung Fehlersuche und -Behebung 2009 ABUS Security-Center GmbH & Co. KG, Alle Rechte vorbehalten Diese Anleitung soll Ihnen Unterstützung für den Fall geben, dass die Webanwendung nach

Mehr

bnsyncservice Installation und Konfiguration bnnetserverdienst Voraussetzungen: KWP Informationssysteme GmbH Technische Dokumentation

bnsyncservice Installation und Konfiguration bnnetserverdienst Voraussetzungen: KWP Informationssysteme GmbH Technische Dokumentation bnsyncservice Voraussetzungen: Tobit DAVID Version 12, DVWIN32: 12.00a.4147, DVAPI: 12.00a.0363 Exchange Server (Microsoft Online Services) Grundsätzlich wird von Seiten KWP ausschließlich die CLOUD-Lösung

Mehr

Einrichten eines News-Systems in Typo3

Einrichten eines News-Systems in Typo3 Einrichten eines News-Systems in Typo3 Generelles: tt_news ist eine der beliebtesten Erweiterungen für Typo3 und wir bereits auf vielen Sites Vorarlberger Schulen verwendet: Beispiele: http://www.vobs.at/hsl

Mehr

EXPANDIT. ExpandIT Client Control Kurzanleitung. utilities. be prepared speed up go mobile. Stand 14.11.07

EXPANDIT. ExpandIT Client Control Kurzanleitung. utilities. be prepared speed up go mobile. Stand 14.11.07 ExpandIT Client Control Kurzanleitung Stand 14.11.07 Inhaltsverzeichnis ExpandIT Client Control 3 Installationshinweise 3 System-Voraussetzungen 3 Installation 3 Programm starten 6 Programm konfigurieren

Mehr

LaVida. Mobile Endgeräte. Andreas Neupert

LaVida. Mobile Endgeräte. Andreas Neupert LaVida Mobile Endgeräte Andreas Neupert Einleitung 1 33 Was? 1) Android a. Hardware b. Entwickeln i. Tools ii. Architektur & Konzepte iii. Google App Inventor c. Benutzen versus 2) WP 7 a. Hardware b.

Mehr

Inhaltsverzeichnis. Teil 1 Node.js... 1

Inhaltsverzeichnis. Teil 1 Node.js... 1 xiii Teil 1 Node.js... 1 1 Was ist Node.js? 3 1.1 Die Zeitalter des Webs................................... 3 1.1.1 1990 bis 2000: Das Web 1.0....................... 3 1.1.2 2000 bis 2010: Das Web 2.0.......................

Mehr

Lauter nützliche Apps!? Was sind Apps, und wie werden diese entwickelt?

Lauter nützliche Apps!? Was sind Apps, und wie werden diese entwickelt? Lauter nützliche Apps!? Was sind Apps, und wie werden diese entwickelt? Prof. Dr. Jörg R. Weimar, Fakultät Informatik 1 Smartphones Anwendungen Apps Prof. Dr. Jörg R. Weimar Wolfenbüttel Fakultät Informatik

Mehr

Sind Cloud Apps der nächste Hype?

Sind Cloud Apps der nächste Hype? Java Forum Stuttgart 2012 Sind Cloud Apps der nächste Hype? Tillmann Schall Stuttgart, 5. Juli 2012 : Agenda Was sind Cloud Apps? Einordnung / Vergleich mit bestehenden Cloud Konzepten Live Demo Aufbau

Mehr

inserteffect GmbH Kurzvorstellung und Arbeitsbeispiele

inserteffect GmbH Kurzvorstellung und Arbeitsbeispiele inserteffect GmbH Kurzvorstellung und Arbeitsbeispiele WebApps ios Apps App Konzeption Plattformübergreifend Mobile Usability Android Apps Hybrid Apps Mobile Design Branchenübergreifend Windows (Phone)

Mehr

DLS 7.0 Microsoft Windows XP Service Pack 2. Anleitung zur Konfiguration

DLS 7.0 Microsoft Windows XP Service Pack 2. Anleitung zur Konfiguration DLS 7.0 Microsoft Windows XP Service Pack 2 Anleitung zur Konfiguration Projekt: DLS 7.0 Thema: MS Win XP SP 2 Autor: Björn Schweitzer Aktualisiert von: Andreas Tusche am 18.08.2004 2:38 Dateiname: xpsp2.doc

Mehr

Serverumzug mit Win-CASA

Serverumzug mit Win-CASA Serverumzug mit Win-CASA Wenn Sie in Ihrem Netzwerk einen Umzug der Server-Version durchführen müssen, sollten Sie ein paar Punkte beachten, damit dies ohne Probleme abläuft. 1. Nachweis-Ordner In der

Mehr

Installation und Benutzung AD.NAV.ZipTools

Installation und Benutzung AD.NAV.ZipTools Installation und Benutzung AD.NAV.ZipTools Version 1.0.0.0 ALTENBRAND Datentechnik GmbH Am Gelicht 5 35279 Neustadt (Hessen) Tel: 06692/202 290 Fax: 06692/204 741 email: support@altenbrand.de Die Komponente

Mehr

Das Interceptor Muster

Das Interceptor Muster Das Interceptor Muster Implementierung des Interceptor Musters basierend auf OSGi and Friends Benjamin Friedrich Hochschule für Technik und Wirtschaft des Saarlandes Praktische Informatik - Entwurfsmuster

Mehr

Entwicklung und Integration mobiler Anwendungen. Oracle Deutschland B.V. & Co. KG

Entwicklung und Integration mobiler Anwendungen. <Speaker> Oracle Deutschland B.V. & Co. KG Entwicklung und Integration mobiler Anwendungen Oracle Deutschland B.V. & Co. KG Global Users (Millions) Der Trend ist eindeutig. Trend zu mobilen Endgeräten Wachstum des mobilen Datenverkehrs

Mehr

Eine App, viele Plattformen

Eine App, viele Plattformen Eine App, viele Plattformen Anwendungsentwicklung für Mobile Heiko Lewandowski 23.04.2013 EINLEITUNG Festlegung App-Strategie: Welche Ziele möchte ich erreichen? Die Vielzahl der Plattformen und Geräte(hersteller)

Mehr

Zugriff auf die Installation mit dem digitalstrom- Konfigurator mit PC und Mac

Zugriff auf die Installation mit dem digitalstrom- Konfigurator mit PC und Mac Zugriff auf die Installation mit dem digitalstrom- Konfigurator mit PC und Mac Zusatz zum digitalstrom Handbuch VIJ, aizo ag, 15. Februar 2012 Version 2.0 Seite 1/10 Zugriff auf die Installation mit dem

Mehr

DOK. ART GD1. Citrix Portal

DOK. ART GD1. Citrix Portal Status Vorname Name Funktion Erstellt: Datum DD-MMM-YYYY Unterschrift Handwritten signature or electronic signature (time (CET) and name) 1 Zweck Dieses Dokument beschreibt wie das auf einem beliebigem

Mehr

Vodafone Cloud. Einfach A1. A1.net/cloud

Vodafone Cloud. Einfach A1. A1.net/cloud Einfach A1. A1.net/cloud Ihr sicherer Online-Speicher für Ihre wichtigsten Daten auf Handy und PC Die Vodafone Cloud ist Ihr sicherer Online-Speicher für Ihre Bilder, Videos, Musik und andere Daten. Der

Mehr

Witbox. Anleitung Repetier-Host. Witbox

Witbox. Anleitung Repetier-Host. Witbox Anleitung Repetier-Host Anleitung Repetier-Host Deutsch INHALT 3 Installation und Konfiguration von Repetier-Host 4 Installation 4 Installation unter Linux 5 Installation unter MacOS 5 Installation unter

Mehr

TM1 mobile intelligence

TM1 mobile intelligence TM1 mobile intelligence TM1mobile ist eine hochportable, mobile Plattform State of the Art, realisiert als Mobile BI-Plug-In für IBM Cognos TM1 und konzipiert als Framework für die Realisierung anspruchsvoller

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

Nächste Generation von Web-Anwendungen mit Web Intents

Nächste Generation von Web-Anwendungen mit Web Intents Nächste Generation von Web-Anwendungen mit Web Intents Willie Chieukam adorsys GmbH & Co. KG 1 Erkennen Sie den? Willie Chieukam Senior Software Entwickler/Berater seit 7 Jahren aktiv noch immer mit fragendem

Mehr

AK Medientechnologien 08 App Deployment. Josef Kolbitsch josef.kolbitsch@tugraz.at http://businesssolutions.tugraz.at/

AK Medientechnologien 08 App Deployment. Josef Kolbitsch josef.kolbitsch@tugraz.at http://businesssolutions.tugraz.at/ AK Medientechnologien 08 App Deployment Josef Kolbitsch josef.kolbitsch@tugraz.at http://businesssolutions.tugraz.at/ Übersicht Allgemeines Personen (Zertifikate) Devices Apps Provisioning Profiles Deployment

Mehr

:: Anleitung Demo Benutzer 1cloud.ch ::

:: Anleitung Demo Benutzer 1cloud.ch :: :: one source ag :: Technopark Luzern :: D4 Platz 4 :: CH-6039 Root-Längenbold LU :: :: Fon +41 41 451 01 11 :: Fax +41 41 451 01 09 :: info@one-source.ch :: www.one-source.ch :: :: Anleitung Demo Benutzer

Mehr

MEHR FUNKTIONEN, MEHR E-COMMERCE:

MEHR FUNKTIONEN, MEHR E-COMMERCE: MEHR FUNKTIONEN, MEHR E-COMMERCE: XT:COMMERCE PLUGIN BB CAMPAIGN MONITOR XT:COMMERCE PLUGIN BB CAMPAIGN MONITOR Das xt:commerce Modul BB Campaign Monitor erlaubt es Ihren Shop-Kunden, sich komfortabel

Mehr

IT Engineering Continuous Delivery. Development Tool Chain Virtualisierung, Packer, Vagrant und Puppet. Alexander Pacnik Karlsruhe, 20.05.

IT Engineering Continuous Delivery. Development Tool Chain Virtualisierung, Packer, Vagrant und Puppet. Alexander Pacnik Karlsruhe, 20.05. IT Engineering Continuous Delivery Development Tool Chain Virtualisierung, Packer, Vagrant und Puppet Alexander Pacnik Karlsruhe, 20.05.2014 Einleitung... worum es in diesem Vortrag geht Ziele Continuous

Mehr

Mobile Backend in. Cloud. Azure Mobile Services / Websites / Active Directory /

Mobile Backend in. Cloud. Azure Mobile Services / Websites / Active Directory / Mobile Backend in Cloud Azure Mobile Services / Websites / Active Directory / Einführung Wachstum / Marktanalyse Quelle: Gartner 2012 2500 Mobile Internet Benutzer Desktop Internet Benutzer Internet Benutzer

Mehr

Anleitung: Notebook für den Betrieb in der DHBW einrichten und nutzen

Anleitung: Notebook für den Betrieb in der DHBW einrichten und nutzen Anleitung: Notebook für den Betrieb in der DHBW einrichten und nutzen 1 Inhaltsverzeichnis 1 Zugangsdaten an der DHBW... 3 2 OpenVPN Client installieren... 4 3 OpenVPN starten und mit dem Lehrenetz der

Mehr

Designänderungen mit CSS und jquery

Designänderungen mit CSS und jquery Designänderungen mit CSS und jquery In der epages-administration gibt es in den Menüpunkten "Schnelldesign" und "Erweitertes Design" umfangreiche Möglichkeiten, das Design der Webseite anzupassen. Erfahrene

Mehr