Inhaltsverzeichnis

Transcription

Inhaltsverzeichnis
Plattformunabhängie_Smartphone-Entwicklung_auf_Basis_von_Web-Technologien
Hochschule:
Standort:
Studiengang:
Veranstaltung:
Betreuer:
Typ:
Themengebiet:
Autor(en):
Studienzeitmodell:
Semesterbezeichnung:
Studiensemester:
Bearbeitungsstatus:
Prüfungstermin:
Abgabetermin:
Fallstudienarbeit
Hochschule für Oekonomie & Management
Essen
Bachelor Wirtschaftsinformatik
Fallstudie / Wissenschaftliches Arbeiten
Dipl-Inf._(FH)_Christian_Schäfer
Fallstudienarbeit
HTML 5
Marco Daube, Michael Fuhrmann
Abendstudium
WS10
4
begutachtet
Inhaltsverzeichnis
• 1 Einleitung
♦ 1.1 Vorwort
♦ 1.2 App-Kategorien
◊ 1.2.1 Native Apps
◊ 1.2.2 Java Apps
◊ 1.2.3 Web Apps
♦ 1.3 Plattformen
◊ 1.3.1 Apple iOS
◊ 1.3.2 Google Android
◊ 1.3.3 BlackBerry
◊ 1.3.4 Symbian-Plattform
◊ 1.3.5 Samsung Bada
◊ 1.3.6 webOS
• 2 Hauptteil
♦ 2.1 HTML, XHTML und
HTML5
♦ 2.2 JavaScript-Frameworks für
mobile Endgeräte
◊ 2.2.1 PhoneGap
◊ 2.2.2 Sencha Touch
◊ 2.2.3 jQuery Mobile
◊ 2.2.4 Sonstige
Web-Frameworks
♦ 2.3 Vergleich mit nativen Apps
◊ 2.3.1 User Interface
Elemente
◊ 2.3.2 Sicherheit
⋅ 2.3.2.1
Sicherheitsrisken
⋅ 2.3.2.2
Verschlüsselung
• 3 Fazit
• 4 Abkürzungsverzeichnis
Inhaltsverzeichnis
1
Plattformunabhängie_Smartphone-Entwicklung_auf_Basis_von_Web-Technologien
• 5 Fußnoten
• 6 Quellenverzeichnis
1 Einleitung
1.1 Vorwort
Diese Seminararbeit zum Thema "Plattformunabhängie Smartphone-Entwicklung auf Basis von
Web-Technologien" ist im Rahmen des Wirtschaftsinformatik-Studiums "Bachelor of Science" an der Hochschule
für Ökonomie & Management am Standort Duisburg im vierten Semester entstanden.
Seit dem die Firma Apple Computer im Jahre 2007 das iPhone auf den Markt brachte, hat sich das durch den
deutlichen Zugewinn der technischen Möglichkeiten das Verhalten vieler Internetbenutzer völlig verändert. Für
die notwendige Netzinfrastruktur sorgte Apple beispielsweise in Deutschland durch den längerfristig vereinbarten
Exklusivvertrag mit T-Mobile. Dadurch ebnete sich der Weg für günstige und somit attraktive Datentarife, was
durch die steigende Nutzung einen deutlichen Ausbau der notwendigen Netze sorgte. In anderen Ländern ging
Apple ähnlich vor, wie z.B. in den USA mit dem Mobilfunkanbieter AT&T[1]. Ende 2010 wurde bereits in
Deutschland der Exklusivvertrag mit T-Mobile aufgelöst, sodass seitdem auch das iPhone von vielen anderen
Mobilfunkanbietern subventioniert erworben werden kann. Durch die Belebung des Marktes werden mit sehr
hoher Wahrscheinlichkeit die Netze in den nächsten Jahren auch weiterhin stark Entwickeln.
Schnell zog der Erfolg des iPhone die ersten Anbieter von Online-Inhalten in die mobile Welt. Internetdienste, die
Jahrelang nur am PC verwendet werden konnten, wurden seit dem immer häufiger auf dem Mobiltelefon
verwendet.
Die Erfolgsgeschichte des iPhones als neue mobile Gerätegeneration, zog in kürzester Zeit viele weitere
Hersteller wie Google, Nokia, RIM (BlackBerry) und Samsung in den mit auf den fahrenden Zug, sodass der
Kunde im Jahre 2010 bereits eine sehr große Auswahl hat. Eines der Erfolgsfaktoren des iPhones waren dabei
zweifelsfrei nicht nur die Möglichkeit überall im Internet zu surfen, sondern viele Dienste mittels spezieller Apps
zu bequem verwenden zu können.
Ein (Luxus)-Problem dieser Apps, ergibt sich jedoch leider in Bindung an den jeweiligen Smartphone-Hersteller,
da jede dieser Plattformen anders programmiert werden muss.
In dieser Seminararbeit wird auf einen möglichen Lösungsansatz eingegangen um diese Apps so zu Entwickeln,
dass Sie auf mehr als nur einem Gerät wie dem iPhone laufen.
1.2 App-Kategorien
Auf dem Markt existieren diverse Arten von Apps. Eine App ist die Kurzform von Application, wobei damit ein
Anwendungsprogramm gemeint ist. Durch Apple hat sich die Bezeichnung App für Anwendungen auf dem
Smartphonemarkt durchgesetzt. Dabei werden unterschiedliche Technologien zur Steuerung der Smartphones
genutzt. In den nächsten drei Abschnitten werden auf die großen Architekturen, native Apps, Java Apps und Web
Apps, eingegangen. Diese sind auf allen Smartphones je nach Kompilation und Portierung ausführbar.
1 Einleitung
2
Plattformunabhängie_Smartphone-Entwicklung_auf_Basis_von_Web-Technologien
1.2.1 Native Apps
Die ersten mobilen Telefone erschienen mit kleinen vorinstallierten Programmen, wie Taschenrechner, Kalender
usw. Diese Programme wurden explizit für das hauseigene Betriebssystem des Herstellers geschrieben, waren fest
installiert und daher nicht löschbar. Später erschien die "Java Micro Edition" (JavaME) von Sun für mobile
Endgeräte und die Gesellschaft bekam die Möglichkeit nachträglich Anwendungen oder Spiele zu installieren und
bei Bedarf auch wieder zu löschen. Die Besonderheit daran war, dass es theoretisch die Möglichkeit gab,
plattformunabhängige Anwendungen zu erstellen.
Kurz danach kamen die ersten Endgeräte heraus, die auch die Installation nativer Software ermöglichten.
Problematisch war es jedoch geeignete Software zu finden und auch zu installieren, da man das Gerät zuerst mit
dem PC verbinden musste um die Anwendung auf das Gerät zu kopieren. Dies änderte sich mit dem iPhone von
Apple. Dieses beinhaltete eine fest installierte Anwendung mit dem Namen "App Store" die es dem Anwender
ermöglichte, bequem diverse Apps per Fingergeste zu kaufen, herunterzuladen und zu installieren. Die Apps
kosten je nach Funktionsumfang zwischen ein paar Cent und ca. 90 Euro, wie z.B. Navigationssoftware. Nach
apfelnews.eu existieren aktuell (30.08.2010) mehr als 250.000 Apps für das iPhone.[2] Durch diesen Erfolg von
Apps und dem "App Store" zogen andere Hersteller wie Google oder Nokia nach. Diese fahren jedoch teilweise
ein anderes Geschäftsmodell.
[3]
Dieses Bild zeigt das Zusammenspiel von nativen Apps (in diesem Fall C++) im Zusammenhang mit
verschiedenen Plattformen.
1.2.2 Java Apps
Die Programmiersprache Java ist eine betriebssystem- und plattformunabhängige Programmiersprache ("Write
Once, ? Run Anywhere"[4]). Unter anderem ist dies auch der Grund, warum sie auf dem mobilen Sektor so
populär wurde.
1990 wurde mit der Entwicklung von Java durch James Gosling und Bill Joy begonnen und erschien 1995. Java
1.2.1 Native Apps
3
Plattformunabhängie_Smartphone-Entwicklung_auf_Basis_von_Web-Technologien
Programme laufen in einer Laufzeitumgebung die von der "Java Virtual Machine" zur Verfügung gestellt wird.
1998 erschien das "Java Development Kit" (JDK) und aus Java wurde Java2. Fortschreitende JDKs verbesserten
die Performance, Darstellungsmöglichkeiten und die gesamte mitgelieferte Bibliothek. Seit dem Versionswechsel
auf JDK 5 (JDK 1.5) können keine Java Anwendungen die mit dem Java 1.5 Compiler kompiliert wurden in einer
JVM 1.4 ausgeführt werden. In der weiteren Entwicklung wurden viele Erweiterungen eingespielt, so ist es
möglich mit der umfassenden mitgelieferten Bibliothek professionelle Anwendungen im Bereich Internet,
Datenbanken, verteilte Systeme und Netzwerkzugriff zu entwickeln. Die JVM kann kostenfrei von dem
Internetauftritt des Herstellers heruntergeladen werden.
Bei der Entscheidung, warum Java gewählt werden sollte, verwiesen Deck und Neuendorf unter anderem auf
folgende Argumente[5]:
• Betriebssystem- und plattformunabhängig
• Überschaubarer homogener Sprachumfang und eine klare Syntax
• Objektorientiertes Sprachdesign
• Speicherverwaltung wird durch die JVM durchgeführt. Das bedeutet der Programmierer muss sich nicht
um die Allokation / Deallokation von Speicher kümmern.
[6]
Dieses Bild zeigt das Zusammenspiel von Java im Zusammenhang mit verschiedenen Plattformen.
1.2.3 Web Apps
Aktuell könnte ein Umbruch stattfinden, indem die derzeitig beliebten nativen Apps per Webanwendungen über
das Internet aufgerufen werden. Eine lokale Installation dieser wäre auch denkbar. Mit den Entwicklungen durch
den britischen Informatiker Timothy Berners-Lee, wurden die grundlegenden Bausteine für die Erstellung von
Webanwendungen gelegt (6.8.1991). Durch die Beschreibungssprache HTML, der einfachen Einrichtung eigener
Webserver und der Bekanntmachung in der Öffentlichkeit wurde das Internet beliebter. Gegen Ende der 90er
Jahre entstand nach einiger Zeit ein richtiger Internetboom. Als Konsequenz daraus entstanden neue Leitungen,
E-Commerce und Online-Banking. Somit wurde das Internet auch von Großunternehmen entdeckt und entstand
eine neue Wirtschaftsbranche, die "New Economy" oder auch "Net Economy".[7]
1.2.2 Java Apps
4
Plattformunabhängie_Smartphone-Entwicklung_auf_Basis_von_Web-Technologien
Die ersten großen Internetdienstleister entstanden zwischen 1993 und 1998, zu nennen wäre da beispielsweise
Amazon, Google, EBay, PayPal und viele mehr, die heute jedoch kaum noch bekannt sind. Diese Unternehmen
wurden auch "Dotcom-Unternehmen" genannt. Zu dieser Zeit waren Investoren an neuen Internetprojekten
interessiert und investierten teilweise in Projekte, die keinen tragfähigen Businessplan vorlegen konnten. Sie
erwarteten, dass sie das eingesetzte Kapital durch den Internet Boom vervielfältigen konnten. Da die meisten
Investoren auf Grund des hohen Risikos, dass sie eingingen, ihr Kapital verloren, platzte die Dotcom-Blase.
Aus der darauf folgenden Krise entstand ein Umdenken beim Bewerten neuer Konzepte. Diese wurden nun
realistischer betrachtet. Diese Zeit wurde von Investoren und der interessierten Öffentlichkeit beobachtet. Es
entstanden einige neue Konzepte und Ideen und es war möglich erste Trends des Internets zu erkennen. Durch
schnellere Internetanschlüsse bei den Verbrauchern, neuen Tools bei den Entwicklern und technisch besser
ausgerüstete Server entstanden revolutionäre Dienste wie Flickr, YouTube, Facebook und MySpace. Da nun
durch den technologischen Fortschritt und den innovativen Ideen das Internet revolutioniert wurde, wurde der
Begriff "Web 2.0" gefunden.
Dieses Bild zeigt das Zusammenspiel zwischen Webserver, Source Code und Clients bei Web Apps.
1.3 Plattformen
Die drei großen Architekturen können auf verschiedene Plattformen ausgeführt werden. Je nach Plattform ist es
mehr oder weniger schwierig die Apps zu portieren. Die einzelnen Unterschiede in der Historie und der Art der
Entwicklung werden in den folgenden Abschnitten aufgeführt.
OS
Hersteller
Q4 2010 Auslieferungen
(mio.)
Aufteilung
(%)
Q4 2009 Auslieferungen
(mio.)
Aufteilung
(%)
Wachstum
Total
101.2
100.0%
53.7
100.0%
88.6%
Google
33.3
32.9%
4.7
8.7%
615.1%
Nokia
31.0
30.6%
23.9
44.4%
30.0%
1.2.3 Web Apps
5
Plattformunabhängie_Smartphone-Entwicklung_auf_Basis_von_Web-Technologien
Apple
16.2
16.0%
8.7
16.3%
85.9%
RIM
14.6
14.4%
10.7
20.0%
36.0%
Microsoft
3.1
3.1%
3.9
7.2%
-20.3%
Diverse 3.0
2.9%
1.8
3.4%
64.8%
ist eine Statistik zu den Auslieferungen der aktuell bekanntesten Plattformen. Verglichen wurden dabei die
Auslieferungen zwischen 2009 Quartal 4 und 2010 Quartal 4. Wie man sieht konnte Google Android deutlich
zulegen und die anderen überholen.
[8]Dies
1.3.1 Apple iOS
Das iOS ist ein Betriebssystem für die mobilen Geräte von Apple. Im Kern basiert dieses auf Mac OS X. Das iOS
wird derzeitig im iPhone, iPad und in der zweiten Generation des Apple TV eingesetzt.
Das iOS wurde erstmalig am 9.1.2007 vorgestellt und hieß zu diesem Zeitpunkt noch iPhone OS. Dabei handelte
es sich um eine Portierung des Mac OS X auf den im iPhone verwendeten ARM-Prozessor. Da Apple plante, dass
dieses Betriebssystem auch in anderen Geräte verwendet werden soll, wurde es am 7.6.2010 in iOS umbenannt.
Anwendungen für mobile Geräte mit iOS als Betriebssystem werden in der Programmiersprache Objective-C
geschrieben. Diese basiert nach Sadun auf dem standardmäßigen C und wurde um einige objektorientierte
Ansätze erweitert.[9] C ist eine prozedurale Programmiersprache, die Anfang der 70er Jahren von AT&T
entwickelt wurde. Objective-C wurde Ende der 80er Jahren bekannt, als das Unternehmen NeXT das
Betriebssystem NeXTStep unter der Führung von Steve Jobs programmierte. Die Entwicklung von OS X wurde
durch NeXTStep inspiriert und wurde im Oktober 2007 veröffentlicht. Nach Sadun war das überarbeitete
Objective-C in der Version 2.0 enthalten.[10]
1.3.2 Google Android
Das Betriebssystem Android des Unternehmens Google wurde das erste mal am 5.11.2007 vorgestellt.
24android.com berichtet, dass während der Veröffentlichung von Android am 9.12.2008 47 Unternehmen im
Konsortium mit dem Namen Open Handset Alliance als Mitglieder eingetragen waren.[11] In dieser Gruppe
werden Ziele für die Schaffung von offenen Standards für mobile Geräte festgelegt. Android entwickelte sich zu
einer umfassenden Softwareplattform für mobile Endgeräte. Derzeitig wird es in Smartphones, Tablets und
Netbooks verwendet. Zudem ist es kostenlos und als Open-Source veröffentlicht worden.
Anwendungen für mobile Geräte mit Android als Betriebssystem werden in der Programmiersprache Java
geschrieben. Es werden dabei viele Pakete der Java Standard Edition (Java-SE) und Android spezifische
Bibliotheken (Core Libraries) verwendet. Nach Kose läuft im Hintergrund eine Virtual Machine (VM) die
registerbasiert aufgebaut ist, die normalen VMs arbeiten im Gegensatz zu dieser stackbasiert.[12] Dadurch, dass
mobile Endgeräte hohen Einschränkungen im Bereich CPU, Akku und Speicher unterworfen sind, wurde diese
optimierte Laufzeitumgebung erstellt. Speziell an der sogenannten Dalvik Virtual Machine ist, dass sie keinen
Java-Bytecode ausführen kann, sondern ausschließlich einen eigenen Bytecode, mit der Dateiendung ?dex?,
ausführt. Jedoch ist es möglich Java-Bytecode in dex-Bytecode zu konvertieren.
1.3 Plattformen
6
Plattformunabhängie_Smartphone-Entwicklung_auf_Basis_von_Web-Technologien
1.3.3 BlackBerry
Das BlackBerry OS ist ein kostenlos nutzbares proprietäres Betriebssystem für Smartphones. Es ist
multitaskingfähig, stammt von dem Unternehmen Research in Motion und wird verwendet in Geräten der Marke
BlackBerry. Ursprünglich wurde dieses zum Abholen mittels eines speziellen Push-Mail-Systems und Senden von
Emails entwickelt.[13] Das OS wurde in C++ programmiert und bietet dem Entwickler mit einer Java-Umgebung
(J2ME) Schnittstellen zur Erstellung eigener Anwendungen. Die Java-Umgebung bietet dabei zusätzliche
Schnittstellen um auf bestimmte Dienste des Betriebssystems zuzugreifen.
1.3.4 Symbian-Plattform
Die Symbian-Plattform (Symbian) ist ein Betriebssystem für mobile Endgeräte. Das System stammt von Nokia
(Open-Source) und wird von der Symbian Foundation lizenziert. Symbian besitzt Multitasking, Multithreading
und Speicherschutz.[14] Zudem können Programme in diversen Programmiersprachen ausgeführt und installiert
werden. So werden z.B. C++, Java. Flash Lite, OPL und Python unterstützt.
1.3.5 Samsung Bada
Bada ist ein Betriebssystem von Samsung Electronics und kommt zum Einsatz in Smartphones. Am 10.11.2009
wurde Bada, abgeleitet aus dem koreanischen Wort für Ozean, angekündigt. Im Mai 2010 erschien das erste
Handy mit dem neuen Betriebssystem. Wie beim iPhone und Android gibt es einen App Store in dem viele
Anwendungen und Tools nachträglich heruntergeladen und installiert werden können.
Die Architektur besteht aus vier Schichten, der Kernel, das Device, die Services und das Framework. Auf
letzterem setzen die erstellten Apps auf. Das zugehörige SDK wurde zum ersten Mal im Mai 2010
veröffentlicht.[15]
1.3.6 webOS
Die Plattform webOS von HP Palm wurde das erste Mal am 8.01.2009 auf der Consumer Electronics Show in Las
Vegas vorgestellt. Es ist der direkte Nachfolger des Palm-OS, welches durch fehlende Ansteuerung von UMTS
und GPS nicht mit Betriebssystemen anderer Hersteller mithalten konnte. Angepasst wurde webOS für die
Bedienung mittel Touchscreens und ist somit für Smartphones geeignet. Zudem ist es multitaskingfähig und
basiert auf Linux. Der Name entstand aus der engen Verzahnung von WebServices und Anwendungen.
2 Hauptteil
Im folgenden Hauptteil werden die technologischen Aspekte berücksichtigt, die zum Aufbau von WebApps
verwendet werden müssen. Im ersten Abschnitt wird kurz die Entwicklung von HTML5 erläutert. Die folgenden
Abschnitte beziehen sich auf JavaScript und die für das mobile Umfeld besonders relevanten Frameworks zur
Realisierung dieser WebApps.
2 Hauptteil
7
Plattformunabhängie_Smartphone-Entwicklung_auf_Basis_von_Web-Technologien
2.1 HTML, XHTML und HTML5
HTML5 entwickelte sich als Webstandard "beim W3C, genauer gesagt beim W3C Workshop on Web
Applications and Compound Documents im Juni 2004."[16] Anders als bisher üblich begann die Entwicklung von
HTML5 außerhalb des W3C, da dieses einige Ideen von den Browser-Herstellern Mozilla, Safari und Opera nicht
standardisieren wollte. Diese Gründeten als Konsequenz die "Web Hypertext Applications Technology Working
Group", welche im folgendem kurz mit WHATWG bezeichnet wird. Die Gründungsmitglieder der WHATWG
stellten insgesamt drei Spezifikation zu Beginn auf die Agenda, die schnell in Form von Web Apps konsolidiert
wurden. Die Zusammenarbeit war von Beginn an auf die Community ausgerichtet, welche sich über die
Homepage der WHATWG[17] abstimmen konnte.
Währenddessen versuchte die XHTML2 Working Group des W3C einen völlig neuen Web-Standard zu
entwerfen, welcher im Gegensatz zu den Ansätzen der WHATWG weniger auf Abwärtskompatibilität zu älteren
HTML Versionen erreichen sollte. Das Projekt wurde sehr schnell zu Grabe getragen, da viele Browserhersteller
aufgrund der zu radikalen Änderungen keine Unterstützung angeboten haben. Anschließend kündigte Timothy
Berners-Lee im Oktober 2006 die Gründung einer neuen HTML Working Group (im weiteren HTML WG
genannt) an, bei der auch von Anfang an alle interessierten Browserhersteller auf breiter Basis einbezogen
wurden. Auch die Mitglieder der WHATWG traten schon nach kurzer Zeit im Zuge einer Einladung der HTML
WG bereitwillig bei. Der weitere Weg für die Entwicklung von HTML5 war von diesem Zeitpunkt an wieder
frei.[18]
Der aktuelle Working Draft vom Stand 20.01.2010 von HTML5 sieht zahlreiche Neuerungen vor, die auch für
Mobile WebAppkikationen völlig neue Möglichkeiten eröffnen.
Eine Finalisierung der ersten HTML5 Version ist für April 2011 erwartet.
2.2 JavaScript-Frameworks für mobile Endgeräte
Zur Realisierung von Geschäftslogik, die für eine Applikation benötigt wird wurde in der Vergangenheit der
meiste Teil der Verarbeitung auf dem Server abgewickelt. Da mit dieser Methodik für jede Aktion die Seite
vollständig neu geladen werden muss, entsteht zwangsläufig ein erhebliches Datentransfervolumen, welches auch
heute noch eine gewisse Zeit in Anspruch nimmt und je nach Mobilfunkvertrag entsprechende Kosten nach sich
ziehen kann. Es entsteht trotz der Verwendung des Browser-Caches beim Laden jeder Anfrage eine zu
übertragende Datenmenge von mehreren 100 Kilobytes. Um Anwendungen so zu programmieren, dass der größte
Teil der Applikation direkt auf dem eigenen Gerät ausgeführt wird bedarf es einer ausgefeilten Kommunikation
mit dem Server um nur noch notwendige Daten nachzuladen. Zur Steuerung dieser Abhängigkeiten steht unter
HTML seit vielen Jahren die Skriptsprache JavaScript zur Verfügung, welche im Kern als ECMAScript (ECMA
262)[19] standardisiert ist. Insbesondere durch das Web 2.0 hat diese gegenüber alternativen Technologien wie
Adobe Flash in den letzten Jahren enorm an Marktbedeutung gewonnen.
Auf Basis von JavaScript sind einige Frameworks entstanden, die häufig wiederkehrende Anwendungsfälle
vereinheitlichen. Insbesondere im mobilen Umfeld für Smartphones und Tablet PCs gibt es einige
Sonderfunktionen, die bisher im Internet keine Bedeutung hatten. So war es bisher nicht möglich an den genauen
Aufenthaltsort oder an die eingebaute Smartphone-Kamera des Benutzers zu gelangen. Um diese technisch
komplexen Aktionen möglichst einfach verwendbar zu machen wird mit "PhoneGap" im nächsten Abschnitt ein
JavaScript Framework vorgestellt, welches derartige Zugriffe ermöglicht. In den darauf folgenden Abschnitten
werden Frameworks zur Realisierung von intuitiven benutzerfreundlichen Oberflächen dargestellt.
2.1 HTML, XHTML und HTML5
8
Plattformunabhängie_Smartphone-Entwicklung_auf_Basis_von_Web-Technologien
2.2.1 PhoneGap
Die Firma Nitobi Software veröffentlichte 2008 das JavaScript-Framework PhoneGap, welches wie der Name
bereits vermuten lässt speziell auf die Anforderungen von Smartphones ausgelegt ist. Die API[20] des Frameworks
geht sehr detailliert und fast ausschließlich auf Spezialfunktionen ein, die mit HTML und JavaScript ohne jegliche
Erweiterungen bisher nicht möglich waren.
PhoneGap stellt für den Zugriff auf die Gerätefunktionen eine Brücke zur Verfügung, die per JavaScript
verwendet werden kann.
[21]Abbildung
der technischen Zugriffsebenen von Smartphones als Brücke
Mit folgendem Javascript-Sourcecode lässt sich geräteübergreifend die aktuelle Position mithilfe des
GPS-Sensors ermitteln:
function onDeviceReady() {
// Nach der Positionsbestimmung wird die Callback-Methode "onSuccess" (s.u.) ausgeführt
navigator.geolocation.getCurrentPosition(onSuccess, onError);
}
function onSuccess(position) {
// Schreibe in den Absatz mit der Id "geolocation" die Positionsdaten des GPS-Sensors
var element = document.getElementById('geolocation');
element.innerHTML = 'Breitengrad: ' + position.coords.latitude +
'Längengrad: ' + position.coords.longitude +
'Genaugikeit: ' + position.coords.accuracy +
'Bewegungsgeschwindikeit: ' + position.coords.speed +
'Datum / Uhrzeit: '
+ new Date(position.timestamp);
}
Im HTML-Body muss ein Element mit der Id "geolocation" enthalten sein, welches von der onSuccess-Methode
manipuliert wird, z.B. <br><p id="geolocation">Finding geolocation...</p>
Das Beispiel zeigt auf beeindruckende Art und Weise, wie einfach auf die Betriebssystemsfunktionen des
Mobilgerätes mit JavaScript zugegriffen werden kann. Allerdings gibt es auch Schattenseiten, die beim Einsatz
des Frameworks berücksichtigt werden müssen. Zum Zeitpunkt der Anfertigung dieser Seminararbeit gab es in
der API immer wieder einige Inkonsistenzen, die sich dadurch zeigten, dass einige Zugriffsfunktionen auf den
unterschiedlichen Geräten minimal anders verhalten. Im schlimmsten Fall führt dies dazu, dass die Anwendung
nur auf einer Plattform optimal läuft. Die nachfolgende Matrix zeigt die Unterstützung der Plattformen mit
PhoneGap in der aktuellen Version 0.9.3:
2.2.1 PhoneGap
9
Plattformunabhängie_Smartphone-Entwicklung_auf_Basis_von_Web-Technologien
[22]Support
Matrix for PhoneGap 0.9.3
Eine Weitere wichtige Eigenschaft von PhoneGap ist die Möglichkeit, dass eine in JavaScript + HTML (5)
erstellte Anwendung in einem App-Container eingebettet und anschließend auf die verschiedenen Plattformen
verteilt werden kann. Dadurch ist der gravierendste Unterschied zwischen nativen Apps und WebApps deutlich
geringer geworden. Bezüglich der Verteilung dieser Anwendungen gibt es seitens des Herstellers einige Barrieren
in Form von Richtlinien, welche berücksichtigt werden müssen.
2.2.2 Sencha Touch
Das freie Open-Source Framework Sencha Touch[23] ist das neueste Vorzeige-Produkt der Firma Sencha aus Palo
Alto, die ursprünglich Ext JS hieß. Es kombiniert die JavaScript-Frameworks Ext JS, jQTouch[24] und Raphaël[25]
welche speziell für die Darstellung von Diagrammen geeignet ist.[26] Ext JS ist ein bekanntes JavaScript
Framework, welches vor einiger Zeit "aus einer Sammlung von Yahoo! User Interface Bibliotheken entstand. Zu
dieser Zeit trug es den Namen ext-yui."[27] Das speziell für mobile Applikationen ausgerichtete
Technologie-Pendant Sencha Touch beansprucht für sich, das erste Framework zu sein, dass die Vorteile aus
HTML5 und CSS3 nutzt.
Ein wichtiges Merkmal von Sencha Touch ist, dass der Aufbau der UI-Elemente komponentenweise Objekt
Literale als Übergabeparameter verwendet werden. Die Verwendung dieser [...] Schreibweise bietet dem
Entwickler den Vorteil der besseren Lesbarkeit des Programmcodes.[28]. Nicht existierende Parameter werden
dabei ignoriert und die Reihenfolge der Literale spielt keine Rolle, sofern die korrekte Ebene der Zielkomponente
weiterhin stimmt.
2.2.2 Sencha Touch
10
Plattformunabhängie_Smartphone-Entwicklung_auf_Basis_von_Web-Technologien
var myScreen = new Ext.TabPanel({
fullscreen: true,
type: 'dark',
items: [{
title: 'Tab 1',
html: '1',
cls: 'card1'
}, {
title: 'Tab 2',
html: '2',
cls: 'card2',
invalid-property: 'wrong' // Wird von Sencha Touch ignoriert!
}, {
title: 'Tab 3',
html: '3',
cls: 'card3'
}]
});
Zur Gestaltung des User Interfaces ist das steht das Panel als grundlegendes Container-Element zur Verfügung.
An diesem können je nach Bedarf weitere Toolbars, Tableisten, sog. Karoussel-Komponenten für spezielle
"Swipe"-Fingergestern angehangen werden. Dabei können alle Elemente an den Bildschirmrand oder zentral als
modaler Dialog angeordnet werden. Alle Elemente lassen sich nach dem Containerprinzip beliebig ineinander
verschachtelt in die Seite einbinden. Zur Unterscheidung zwischen Smartphones und Tablet-PCs stehen spezielle
Variablen bereit um die Darstellung der Anwendung optimal an die Bildschirmgröße des jeweiligen Endgerätes
Anpassen zu können.
Für den bei WebApps essentiellen Datenaustausch stehen Funktionen zum asynchronen Laden von Daten per
Ajax, JSON by Padding (JSON-P [29]) und YML[30] bereit. Selbst Bandbreitenintensive Anwendungen wie
Google Maps inkl. StreetView (http://maps.google.de) lassen sich sehr einfach Darstellen und über die API mit
stecknadelähnlichen Markern versehen.
Ein möglicherweise projektentscheidender Nachteil bei Sencha Touch liegt zumindest in der Version 1.0 von
Dezember 2010 allerdings noch vor: Es werden von Sencha offiziell nur Android und iOS unterstützt. Durch die
Verwendung von HTML5 und CSS3 kann zum heutigen Zustand aufgrund der ausstehenden Verabschiedung des
ersten offiziellen Standards keine vollständige Geräte übergreifende Unterstützung gewährleistet werden.
Die Lizenzierung[31] des Frameworks erfolgt auf zwei verschiedenen Arten, aus denen der Entwickler wählen
kann. Entweder er erwirbt für den kommerziellen Einsatz eine entsprechend kostenpflichtige Lizenz und sichert
sich damit die vollen Rechte auf das entwickelte Produkt oder er wählt die LGPL-Lizenz[32]. Bei letzterer bleibt
die Entwicklung und Verbreitung des Produktes kostenfrei, jedoch verpflichtet sich der Entwickler seinen
erstellten Quellcode frei zur Weiteren Verfügung zu stellen.
2.2.3 jQuery Mobile
Als eines der jüngsten und derzeit stark in der Entwicklung befindlichen JavaScript-Frameworks für den mobilen
Einsatz liegt jQuery Mobile in der zweiten Alpha Version (Stand 20.01.2011) vor. Es basiert auf dem Jahrelang
etablierten JavaScript-Framework jQuery und wird vorraussichtlich eines der wichtigsten Frameworks für diesen
Bereich werden.
2.2.3 jQuery Mobile
11
Plattformunabhängie_Smartphone-Entwicklung_auf_Basis_von_Web-Technologien
jQuery Mobile 1.0 Alpha 2 Demo
Die Plattformunabhängigkeit ist für das jQuery Mobile Framework im Gegensatz zu Sencha Touch eines der
wichtigsten Ziele. Die Entwickler haben bereits viel Zeit in die Untersuchung der Fähigkeiten der verschiedenen
Geräte investiert, um diese zu klassifizieren. In Zukunft sollen alle Anpassungen in der mobilen Version von
jQuery in das Core-jQuery-Framework zurückfließen, sodass langfristig keine verschiedenen Versionen gepflegt
werden müssen. Ist der Browser HTML5 fähig, sollen dessen Eigenschaften verwenden können. Andernfalls gibt
es kleine Einschränkungen, die aber die Funktion nicht weiter beeinträchtigen sollen.
Die Entwicklung von jQuery Mobile wird in Form von Finanzierung und Bereitstellung von freien Entwicklern
durch zahlreiche prominenten Firmen unterstützt. Darunter sind Firmen wie auch Yahoo!, Filament Group[33],
Mozilla und Nokia[34]
2.2.4 Sonstige Web-Frameworks
Für andere Programmiersprachen entstehen zahlreiche weitere Frameworks, welche häufig eine Sonderstellung
einnehmen. Für Ruby-Entwickler wurde z.B. das Rhodes-Framework[35] entwickelt, welches für die Distribution
der damit entwickelten WebApps einen speziellen Build-Service mitbringt. Dadurch muss sich der Entwickler
keine Gedanken mehr um die Zielplattform machen und benötigt auch kein installiertes Android-SDK oder
Apples Entwicklungsumgebung XCode.
2.3 Vergleich mit nativen Apps
2.2.4 Sonstige Web-Frameworks
12
Plattformunabhängie_Smartphone-Entwicklung_auf_Basis_von_Web-Technologien
[36]
Das mobile Web Dilemna am Beispiel von Amazon - Links Native App, Rechts WebApp
User Interfaces müssen im mobilen Umfeld durch Berührung optimal bedienbar sein, weshalb das Thema UI eine
sehr große Bedeutung gewonnen hat. Apple beschreibt in der iOS Referency Library im Abschnitt iOS Human
Interface Guidelines[37] einige Prinzipien, die teils sogar Vorraussetzung für die Freigabe in Apple's App Store im
Zuge des vorgelagerten Überprüfungsprozesses sind. In der Vergangenheit wurden u.a. wegen zweckentfremdeter
Verwendung der Kamera-Taste oder UI-Gestaltungsarten, aufgrund eines Verstoßes der somit verletzten
Richtlinien[38] die Zulassung seitens Apple verweigert[39]
Spiegel Online berichtete 2010 über einen Aufstand gegen Apple's App-Zensur, von der auch kurzzeitig der
Spiegel Verlag selbst betroffen war. Aufgrund von pornografischen Inhalten, welche über das Internet in der
Anwendung dargestellt wurden, ist aus der Sicht von Apple gegen dessen Richtlinien verstoßen worden [40].
Insgesamt zeigt sich, dass Google mit Zensierungen von Apps für seine Android Plattform deutlich
zurückhaltender vorgeht.
Daraus folgt, dass diese Apps, die für die jeweilige Plattform speziell entwickelt wurden und auch nur auf dieser
einen Plattform laufen, mehrmals entwickelt werden müssten. Diese Plattformen bringen aber inzwischen alle
relativ moderne Browser mit, auf denen ähnliche Funktionalitäten bereit gestellt werden können. Damit bei jedem
Start der Anwendung nicht die Adresse des Servers im Browser eingegeben werden müssen stehen entweder
konventionelle Lesezeichen bereit oder sie werden z.B. in einem App-Container mit PhoneGap eingebettet.
In der Anfangsphase verweigerte Apple die Aufnahme der somit erstellten Apps in den App Store aufgrund der
oben genannten Richtlinien. Erst im April 2010 bestätigte Apple nach einen offenen Brief aus einer
Entwickler-Community, die sich speziell in Web-Technologien verschrieben hat, dass der Einsatz dieser auch für
die Verbreitung über den AppStore erlaubt ist.[41] Für diesen Zweck wurde meist PhoneGap verwendet um die
Web-App innerhalb des App-Containers über den Apple AppStore oder auch den Android Market, sowie auch
BlackBerry und co. zu verbreiten.
Wichtiges Merkmale der Verbreitungsart sind unter anderen
• Geschwindigkeit bis die App für die Benutzer zur Verfügung steht
• Verzögerung bei der Bereitstellung von Updates
• Dauer, bis die erzielten Gewinne durch den Verkauf ausgezahlt werden
2.3 Vergleich mit nativen Apps
13
Plattformunabhängie_Smartphone-Entwicklung_auf_Basis_von_Web-Technologien
• Kosten der Distribution
Die Global Intelligence Alliance (GIA) führte April 2010 in Form einer Befragung unter anderem mehrere
Untersuchungen zu diesen Merkmalen durch. Das Whitepaper ist auf der Webseite der GIA öffentlich
zugänglich[42]
Auch VisionMobile führt eine ähnliche Untersuchung zu der Entwicklung von Apps durch. Diese steht ebenfalls
öffentlich zur Verfügung.[43]
Grundsätzlich gilt, dass bei Verwendung der Web-Frameworks alle Möglichkeiten zur Verfügung stehen, die
auch mit HTML (5) in Verbindung mit CSS funktionieren. HTML5 bringt dabei hinsichtlich besserer
Multimediaunterstützung z.B. durch optional abgerundete UI-Elemente, dem Browser Storage sowie nativer
Video- und Audiounterstützung deutliche Vorteile gegenüber seinen Vorgängerversionen.
2.3.1 User Interface Elemente
Am Beispiel von Android wird in diesem Abschnitt ein kleiner Vergleich zwischen einer nativen App mit den
Standard User Interface Elementen (UI) und denen von Sencha Touch durchgeführt.
In den Dokumentationen[44] von Android werden alle UI-Elemente genau beschrieben. Im Folgenden wird ein
kleiner Überblick über Widgets für Tabs, Datumsselektoren und Google Maps Karten dargestellt:
Android UI
KartendarstellungDatumsauswahlTabs
Sencha Touch
KartendarstellungDatumsauswahlTabs
2.3.2 Sicherheit
2.3.2.1 Sicherheitsrisken
Da der gesamte Quellcode i.d.R. für den Anwender völlig offen eingesehen werden kann und auch die komplette
Datenübertragung über spezielle Browsererweiterungen wie z.B. das Firebug-Plugin für den Mozilla Firefox
nachverfolgt werden kann, ergeben sich hohe Sicherheitsrisiken.
2.3.1 User Interface Elemente
14
Plattformunabhängie_Smartphone-Entwicklung_auf_Basis_von_Web-Technologien
Daher muss bei der Konzeption von Web-Anwendungen, die regen Gebrauch von der AJAX-Technologie
machen beachtet werden, dass nur Daten vom Server ausgeliefert werden dürfen, die auch für den Nutzer
bestimmt sind. So dürfen keine Daten anderer Benutzeraccounts durch fehlerhafte Verarbeitung oder
manipulierter Anfragen wie z.B. Cross-Domain-Scripting (XSS) oder SQL-Injection vom Server unmittelbar und
ungefiltert ausgeführt werden. Diese Grundsätze galten allerdings schon immer für Web-Anwendungen, sind aber
insbesondere in komplexeren Szenarien mit vielen asynchon ausgeführten AJAX-Requests ein sehr schwieriges
Unterfangen. Insbesondere wenn es um Geld oder personenbezogenen Daten geht kann eine umfassendes
Auditierung durch einen Experten viele Probleme vermeiden.
2.3.2.2 Verschlüsselung
Jede Kommunikation zwischen mobilen Endgerät kann standardmäßig abgehört werden, sofern keine
Sicherheitsvorkehrung wie Verschlüsselung z.B. durch SSL getroffen worden sind. Daher gilt wie auch bei jeder
anderen Webseite, auf der Personenbezogene oder sonstige sensible Daten gespeichert werden, diese durch
geeignete Maßnahmen abzusichern.
3 Fazit
Die Entwicklung von Apps für Smartphones und auch Tablet-PCs wird in den nächsten Jahren ein sehr
spannendes Thema bleiben und auch in vielen Unternehmen einen hohen Stellenwert behalten. WebApps haben
den Vorteil, dass die Anwendung nur einmal entwickelt werden muss. Native Apps hingegen müssen für jede
Plattform von Grund auf neuentwickelt werden.
Dafür werden native Apps in absehbarer Zeit schneller laufen und werden den optimalen Zugriff auf alle
Gerätefunktionen ermöglichen. Dies kann jedoch nur geschehen, wenn der Zugriff von den Herstellern genau
spezifiziert wird.
Zusammengefasst kann man also derzeit noch keine klare Aussage treffen, ob eine WebApp oder eine native App
die bessere Lösung ist. Es ist jedoch feszustellen, dass sich auf Grund der immer besseren Webtechnologien wie
HTML5, CSS3 und moderne JavaScript-Frameworks, der Anwender ein komfortablerer Zugriff auf die
Gerätefunktionen erhält. Bisherige technische Grenzen entfallen dabei deutlich. Lediglich bei aufwändigen
3D-Spielen wird es auf absehbare Zeit kein Weg an nativen Apps vorbeiführen. Selbst bei aller Vollständigkeit ist
es letztlich der Benutzer, der mit der Anwendung zufrieden sein muss. Daher bringt es auch keinen Vorteil, wenn
die App nicht vollfunktional auf allen vorhanden Plattformen läuft. Daraus ergibt sich, dass der Endanwender nur
einen Teil der Funktionalitäten die die Geräte bieten, vollständig nutzen kann. Umgangssprachlich kann man
dieses Problem folgendermaßen formulieren: "Nichts Halbes, nichts Ganzes".
4 Abkürzungsverzeichnis
Abkürzung
4 Abkürzungsverzeichnis
Erklärung
15
Plattformunabhängie_Smartphone-Entwicklung_auf_Basis_von_Web-Technologien
JVM / JRE
Die Java Virtual Machine (JVM) ist für die Ausführung von Bytecode zuständig. Sie ist
ein Teil der Java Runtime Environment (JRE).
JavaME
Die Java Micro Edition ist eine spezielle kleingehaltene JRE, die nicht alle Funktionen
der normalen JRE zur Verfügung hat.
JDK
Das Java Development Kit von Oracle ist das offizielle Java-SDK.
HTML
Beschreibungssprache (Hypertext Markup Language) um Webseiten im Browser
darstellen zu können.
GUI
Das GUI (Graphic User Interface) ist für die Darstellung auf dem Display da.
SSL
Verschlüsseltes Datenübertragungsverfahren im Browser.
CSS
Formatierungssprache zur Steuerung des Aussehens einer Website.
AJAX
AJAX bedeutet Asynchronous JavaScript and XML und zeigt einen Weg dynamisch
einzelne Elemente einer Website nachzuladen.
XSS
Cross-Site Scripting ist das Ausnutzen von Sicherheitslücken, indem ein Content einer
Seite , der nicht vertrauenswürdig ist, in den Content der anderen Seite injiziert wird.
SQL
Structured Query Language ist eine Datenbanksprache zur Definition, Abfrage und
Manipulation von Daten in relationalen Datenbanken.
SDK
Ein Software Development Kit stellt dem Entwickler viele Werkzeuge zur Verfügung.
JSON
JavaScript Object Notation ist ein komaktes Austauschformat zwischen Webserver und
Client. Es wird verwendet, da XML einen großen Overhead besitzt.
5 Fußnoten
1. ? Vgl. att.com (03.02.2011 21:08)
2. ? Vgl. apfelnews.eu (03.02.2011 10:54)
3. ? In Anlehnung an: Deck, Neuendorf (2010), Seite 22
4. ? Flanagan (2005), Seite 4
5. ? Vgl. Deck, Neuendorf (2010), Seite 23f
6. ? In Anlehnung an: Deck, Neuendorf (2010), Seite 22
7. ? Vgl. Kollmann 2009, Seite 66
8. ? In Anlehnung an: Canalys (03.02.2010 10:24)
9. ? Vgl. Sadun (2009), Seite 20
10. ? Vgl. Sadun (2009), Seite 145
11. ? Vgl. 24android.com (03.02.2011 11:11)
12. ? Vgl. Mosemann, Kose (2009), Seite 7
13. ? Vgl. Immler (2008), Seite 20
14. ? Vgl. Tanenbaum (2009), Seite 1070
15. ? Vgl. Morris et al (2010), Seite XXI
16. ? Öggl, Förster (2010), Seite 15
17. ? Vgl. whatwg.org (03.02.2011 19:08)
18. ? Vgl. Öggl, Förster (2010), Seite 15ff
19. ? Vgl. ecma-international.org (03.02.2011 21:04)
20. ? Vgl. docs.phonegap.com (03.02.2011 21:22)
21. ? In Anlehnung an: c't Ausgabe 16/2010, Seite 100
22. ? In Anlehnung an: phonegap.com features (03.02.2011 19:00)
23. ? Vgl. sencha.com
5 Fußnoten
16
Plattformunabhängie_Smartphone-Entwicklung_auf_Basis_von_Web-Technologien
24. ? Vgl. jqtouch.com (03.02.2011 19:17)
25. ? Vgl. raphaeljs.com (03.02.2011 19:23)
26. ? Vgl. Allen, Graupera, Lundrigan (2010), Seite 225
27. ? Steller (2008), Seite 37
28. ? Steller (2008), Seite 37
29. ? Vgl. json-p.org (03.02.2011 19:23)
30. ? Vgl. developer.yahoo.com (03.02.2011 19:16)
31. ? Vgl. sencha.com (03.02.2011 19:20)
32. ? Vgl. gnu.de (03.02.2011 18:32)
33. ? Vgl. filamentgroup.com (03.02.2011 21:13)
34. ? Vgl. golem.de (14.08.2010 19:13)
35. ? Vgl. rhomobile.com (03.02.2011 21:18)
36. ? Vgl. mobilemetrics.de (03.02.2011 19:50)
37. ? Vgl. developer.apple.com Introduction (03.02.2011 18:44)
38. ? Vgl. developer.apple.com Guidelines (03.02.2011 18:45)
39. ? Vgl. macnews.de (03.02.2011 18:47)
40. ? Vgl. spiegel.de (03.02.2011 18:48)
41. ? Vgl. phonegap.com license (03.02.2011 19:20)
42. ? Vgl. Luo (2010), Seite 22ff
43. ? Vgl. Constantinou, Camilleri, Kapetanakis (2010), Seite 32
44. ? Vgl. developer.android.com Guide (03.02.2011 23:00)
6 Quellenverzeichnis
Verweis
Quelle
Sadun (2009)
Sadun, Erica: Das iPhone Entwicklerbuch - Rezepte für Anwendungsprogrammierung
mit dem iPhone SDK: Addison-Wesley Verlag, München
Canalys (03.02.2010
10:24)
Canalys: Google?s Android becomes the world?s leading smart phone platform:
Marktforschungsanalyse von Canalys
Mosemann, Kose
(2009)
Mosemann, Heiko / Kose, Matthias: Android - Anwendungen für das
Handybetriebssystem erfolgreich programmieren: Carl Hanser Verlag, München /
Wien
Immler (2008)
Immler, Christian: Das inoffizielle Handy-Buch: 2. Auflage, Franzis Verlag GmbH,
Poing
Tanenbaum (2009)
Tanenbaum, Andrew S.: it Informatik - Moderne Betriebssysteme: 3. Auflage,
Pearson Studium, München
Morris et al (2010)
Morris et al, Ben.: Introduction to bada - A Developer's Guide: 1. Auflage, Samsung
Electronics, Co., Ltd., Cornwall
apfelnews.eu
(03.02.2011 10:54)
apfelnews.eu: AppStore ? 250.000 verschiedene Apps: AppStore Statistik
Flanagan (2005)
Flanagan, David: Java in a nutshell - A Desktop Quick Reference: 5. Auflage, Reilly
Media, Inc., Sebastopol
24android.com
(03.02.2011 11:11)
24android.com: Was ist die Open Handset Alliance?: Open-Handset-Alliance
Information
6 Quellenverzeichnis
17
Plattformunabhängie_Smartphone-Entwicklung_auf_Basis_von_Web-Technologien
Kollmann (2009)
Prof. Dr. Kollmann, Tobias: E-Entrepreneurship - Grundlagen der
Unternehmensgründung in der Net Economy: 3. Auflage, Gabler, GWV Fachverlage
GmbH, Wiesbaden
Deck, Klaus-Georg / Neuendorf, Herbert: Java-Grundkurs für
Deck, Neuendorf (2010) Wirtschafsinformatiker: 2. Auflage, Vieweg+Teubner Verlag, Springer Fachmedien
Wiesbaden GmbH, Wiesbaden
gnu.de (03.02.2011
18:32)
gnu.de: Lesser General Public Licence : Offizielle GNU Website
developer.apple.com
Introduction
(03.02.2011 18:44)
developer.apple.com: Introduction : Offizielle Apple Introduction Website
developer.apple.com
Guidelines (03.02.2011
18:45)
developer.apple.com: Guidelines : Offizielle Apple Guidelines Website
macnews.de
(03.02.2011 18:47)
macnews.de: Apples App-Store-Richtlinien: "Wir brauchen keine weiteren
Furz-Apps" : App Store Richtlinien
spiegel.de (03.02.2011
18:48)
spiegel.de: Medien auf dem iPhone : Aufstand gegen Apples App-Zensur
phonegap.com features
phonegap.com: Supported Features : Supported Features von PhoneGap
(03.02.2011 19:00)
whatwg.org (03.02.2011
phonegap.com: Welcome to the WHATWG community : WHATWG community
19:08)
golem.de (14.08.2010
19:13)
golem.de: Eine Bibliothek für alle mobilen Plattformen : jQuery Mobile
phonegap.com license
(03.02.2011 19:20)
phonegap.com: PhoneGap and the Apple developer license agreement : Blog
jqtouch.com
(03.02.2011 19:17)
jqtouch.com: A jQuery plugin for mobile web development on the iPhone, iPod
Touch, and other forward-thinking devices. : jqtouch
raphaeljs.com
(03.02.2011 19:23)
raphaeljs.com: Raphaël?JavaScript Library : raphaeljs
Steller (2008)
Steller, Marcus: Entwicklung und Einsatz von Richt Internet Applikationen in
kommerziellen Einsatz: GRIN Verlag, veröffentlichte Diplomarbeit
json-p.org (03.02.2011
19:23)
json-p.org: Defining Safer JSON-P : json-p
developer.yahoo.com
(03.02.2011 19:16)
developer.yahoo.com: Chapter 6. Yahoo! Markup Language (YML) : yml
sencha.com (03.02.2011
sencha.com: Sencha Touch license options : license
19:20)
mobilemetrics.de
(03.02.2011 19:50)
mobilemetrics.de: Das Mobile Web Dilemma ? Native App oder Web App? : webapp
Luo (2010)
Luo, Lie: Native or Web Application?: Global Intelligence Alliance, E-Book PDF
Adresse (03.02.2010 20:28)
6 Quellenverzeichnis
18
Plattformunabhängie_Smartphone-Entwicklung_auf_Basis_von_Web-Technologien
Constantinou,
Constantinou, Andreas \ Camilleri, Elizabeth \ Kapetanakis, Matos : Mobile
Camilleri, Kapetanakis Developer Economics 2010 and Beyond: VisionMobile, E-Book PDF Adresse
(2010)
(03.02.2010 20:36)
Öggl, Förster (2010)
Öggl, Bernd \ Förster, Klaus: HTML 5: Leitfaden für Webentwickler: Addison-Wesley
Verlag, München
Allen, Graupera,
Lundrigan (2010)
Allen, Sarah \ Graupera, Vidal \ Lundrigan, Lee: Pro Smartphone Cross-Platform
Development: Apress
ecma-international.org ecma-international.org: ECMAScript Language Specification: ECMAScript Language
(03.02.2011 21:04)
Specification PDF
att.com (03.02.2011
21:08)
att.com: AT&T iPhone: iPhone
filamentgroup.com
(03.02.2011 21:13)
filamentgroup.com: Filament Group, Inc: filamentgroup
rhomobile.com
(03.02.2011 21:18)
rhomobile.com: Cross-Platform Mobile App Development: rhomobile
docs.phonegap.com
(03.02.2011 21:22)
rhomobile.com: API Reference: API Reference PhoneGab
developer.android.com
Guide (03.02.2011
developer.android.com: Android Dev Guide: Guide
23:00)
6 Quellenverzeichnis
19

Documents pareils