HTML5 und das Framework jQuery Mobile

Transcription

HTML5 und das Framework jQuery Mobile
HTML5 und das Framework
jQuery Mobile
Seminararbeit im Wintersemester 2011/12
Fachhochschule Aachen
Standort Jülich
Fachbereich Medizintechnik und Technomathematik
Studiengang Scientic Programming
Naeema Anees
Matrikelnr. 836393
1. Betreuer: Prof. Ulrich Stegelmann
2. Betreuer: Dipl.-Inform. Axel Blum
Aachen, den 15.12.2011
,
Vorwort
Diese Seminararbeit beschäftigt sich mit HTML5 und dem Framework jQuery
Mobile. Kapitel 1 gibt eine kurze Einführung in das Thema und erörtert auch
die Relevanz. Die Grundlagen des Webs und der Webprogrammierung werden
in Kapitel 2 vermittelt. Kapitel 3 erläutert Aspekte der Softwareentwicklung
für mobile Endgeräte. In Kapitel 4 werden HTML5, CSS3 und JavaScript-APIs
vorgestellt. Darauf aufbauend wird in Kapitel 5 auf die Entwicklung von Apps
für das Betriebssystem iOS eingegangen. In Kapitel 6 wird ein Fazit gezogen.
Abschlieÿend gibt Kapitel 7 einen kurzen Ausblick.
Alle verwendeten Codebeispiele sind in HTML5 und JavaScript geschrieben
und - wenn nicht anders gekennzeichnet - eigenhändig verfasst. Alle Abbildungen
sind - sofern nicht anders gekennzeichnet - entweder Screenshots oder wurden
mit Microsoft Visio Premium 2010 erstellt.
Inhaltsverzeichnis
Eidesstattliche Erklärung
2
Vorwort
3
Inhaltsverzeichnis
5
Abbildungsverzeichnis
6
Tabellenverzeichnis
7
1 Einleitung
8
2 Grundlagen der Webprogrammierung
11
2.1
TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2
Das HTTP-Protokoll . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.3
Webserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.4
Was ist HTML? . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
2.5
JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.6
CSS
16
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
3 Softwareentwicklung für mobile Endgeräte
17
4 HTML5, CSS3 und JavaScript-APIs
19
4.1
Vergleich zu HTML 4
. . . . . . . . . . . . . . . . . . . . . . . .
19
4.1.1
Neuerungen . . . . . . . . . . . . . . . . . . . . . . . . . .
19
4.1.2
Webapplikationen oine nutzen . . . . . . . . . . . . . . .
20
4.1.3
Video
4.1.4
Browserunterstützung
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
22
23
4.2
JavaScript-APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
4.3
Das JavaScript Framework jQuery Mobile
. . . . . . . . . . . . .
25
. . . . . . . . . . . . . . . . . . . . . . . . . .
25
4.3.1
Einführung
4.3.2
Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
4.3.3
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
5 Appentwicklung für das Apple-Betriebssystem iOS
5.1
Native Apps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
31
Inhaltsverzeichnis
5.2
Vergleich von Webapps mit nativen Apps
. . . . . . . . . . . . .
32
6 Fazit
37
7 Ausblick
38
Literatur- und Quellenverzeichnis
40
Hilfsmittel
43
5/ 43
Abbildungsverzeichnis
2.1
Die vier Schichten von TCP/IP. . . . . . . . . . . . . . . . . . . .
2.2
Aufruf: http://webap-uklac05.klinikum.rwth-aachen.de/barcode/default.html. 13
2.3
1.Beispiel HTML-Dokument . . . . . . . . . . . . . . . . . . . . .
4.1
HTML5 & CSS3 Support, http://www.ndmebyip.com/litmus/,
4.2
vgl. jQuery Mobile Supported Platforms, http://jquerymobile.com/gbs/
2010 (Aufruf am 17.11.2011 um 13:00 Uhr)
. . . . . . . . . . . .
12
15
23
und in Anlehnung an: Original Graded Browser Matrix, http://jquerymobile.com/originalgraded-browser-matrix/; beide: 2010 (Aufruf am 4.11.2011 um
13:00 Uhr) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3
26
2.Beispiel HTML-Dokument . . . . . . . . . . . . . . . . . . . . .
28
3.Beispiel HTML-Dokument
. . . . . . . . .
29
. . . . . . . . .
29
4.5
mit jQuery Mobile .
3.Beispiel HTML-Dokument ohne jQuery Mobile
7.1
Barcode
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
7.2
iPod gekoppelt mit Bluetooth-Barcodescanner . . . . . . . . . . .
39
4.4
Tabellenverzeichnis
3.1
Vergleich: mobile Endgeräte vs. Desktop PCs [Davi12, vgl. S.7f.]
17
5.1
Vergleich von HTML5-Apps mit nativen Apps . . . . . . . . . . .
35
1 Einleitung
Smartphones und mit ihnen die mobilen Applikationen sind auf dem Vormarsch.
1 Dabei ist Smartphone nicht gleich Smartphone: es werden die unterschiedlichs-
ten Geräte mit verschiedenen Betriebssystemen vertrieben. Jedes Betriebssystem
besitzt seine eigenen Architekturen für die Entwicklung von mobilen Applikationen - den sogenannten Apps. Für Android existiert z.B. ein Android-SDK
2
für Java mit Klassenbibliotheken. Apps für Apples Betriebssystem iOS werden
dagegen mittels der Entwicklungsumgebung XCode in der Programmiersprache
Objective-C geschrieben. Damit ist jede so entwickelte App nur auf dem dafür
vorgesehenen Betriebssystem einsetzbar. Hat ein Unternehmen nun das Ziel, eine
App zu entwickeln, die auf möglichst vielen Betriebssystemen eingesetzt werden
soll, so muss für jedes Betriebssystem eine eigene App entwickelt werden.
HTML verspricht Abhilfe: Mittels HTML entwickelte mobile Webseiten sind
auf jedem Gerät aufrufbar - benötigt wird nur ein Browser, der HTML unterstützt. In seinem Buch HTML5 Mobile Websites - Turbocharging HTML5 with
jQuery Mobile, Sencha Touch, and Other Frameworks schreibt Matthew David:
If you look at all ve companies, Apple, Google, Microsoft, RIM and HP, and
their mobile operating systems, one single common thread can be see among
all of them: HTML5-enabled browsing. [Davi12, S.7] Er bezieht sich dabei auf
HTML5 - der neuesten Version von HTML. Diese wird aktuell diskutiert: Am
09.November 2011 verkündete z.B. Adobes Vizepräsident und Generalmanager
Danny Winokur, dass Adobe die Entwicklung vom Flash Player für die Browser
mobiler Geräte einstellen und sich mit HTML5 beschäftigen wird:
However, HTML5 is now universally supported on major mobile devices, in some cases exclusively. This makes HTML5 the best solution
for creating and deploying content in the browser across mobile plat-
1
vgl. http://blogs.sybase.com/ubermobile/2011/07/infographic-forecasting-the-great-appstore-boom/
2
SDK ist die Abkürzung von Software Development Kit. Sie bietet verschiedene Werkzeuge
an, die z.B. von Softwareentwicklern benutzt werden können.
1 Einleitung
forms. We are excited about this, and will continue our work with key
players in the HTML community, including Google, Apple, Microsoft
and RIM, to drive HTML5 innovation they can use to advance their
mobile browsers. [Wino11]
Damit gab Winokur Apple-Gründer Steve Jobs posthum Recht: dieser hat im
April 2010 Adobe aufgefordert, sich mehr auf HTML5 zu konzentrieren als auf
Flash:
New open standards created in the mobile era, such as HTML5,
will win on mobile devices (and PCs too). Perhaps Adobe should
focus more on creating great HTML5 tools for the future, and less
on criticizing Apple for leaving the past behind. [Jobs10]
Steve Jobs weigerte sich, Flash auf seinen Systemen (z.B. dem iPhone) zuzulassen, er warb mehr für HTML5:
Though the operating system for the iPhone, iPod and iPad is proprietary, we [Apple] strongly believe that all standards pertaining to
the web should be open. Rather than use Flash, Apple has adopted
HTML5, CSS and JavaScript all open standards. Apple's mobile
devices all ship with high performance, low power implementations
of these open standards. HTML5, the new web standard that has been adopted by Apple, Google and many others, lets web developers
create advanced graphics, typography, animations and transitions without relying on third party browser plug-ins (like Flash). HTML5 is
completely open and controlled by a standards committee, of which
Apple is a member. [Jobs10]
3
Doch was ist HTML5? Was kann es? Inwieweit können mit HTML5, CSS
4 funktionsfähige Webanwendungen erstellt werden? Und welche
5
weitere Funktionalitäten bringen kostenlose Frameworks wie z.B. jQuery Mobile
und JavaScript
mit sich?
3
Mittels Cascading Style Sheets können Layoutvorlagen erstellt werden
Eine Skriptsprache
5
http://jquerymobile.com/
4
9/ 43
Die vorliegende Seminararbeit wird versuchen, eine Einführung in diese Thematik zu geben, die Fragestellungen zu beleuchten und - falls möglich - zu beantworten.
10/ 43
2 Grundlagen der
Webprogrammierung
Die Menschen sind heute nicht mehr verwurzelt, sondern vernetzt. [Lubk03,
S.109]
2.1 TCP/IP
Im Internet erfolgt die Kommunikation überwiegend mittels der Protokollfamilie TCP/IP. TCP ist die Abkürzung von
die Abkürzung für
Transport Control Protocol,
IP ist
Internet Protocol. IP- und TCP-Implementierungen sind Be-
standteile eines Betriebssystems.
Das TCP/IP-Referenzmodell baut mit seinen Schichten auf den Netzwerkkartentreibern auf. Abbildung 2.1 zeigt die vier Schichten von TCP/IP.
Die Anwendungsschicht - Application Layer - implementiert die Schnittstellen
für die Anwendungen. In der Anwendungsschicht werden Formalien festgelegt
wie z.B. das Format von Nachrichten. Des Weiteren benutzt die Anwendungsschicht Protokolle wie z.B. SMTP für E-Mails oder HTTP zur Übertragung von
Webseiten. Auf HTTP wird im nächsten Unterkapitel eingegangen. Die Anwendungsschicht gibt die Daten an die Transportschicht weiter.
Die Transportschicht - Transport Layer - ist für die Kommunikation zwischen
den Anwendungen (Anwendung 1 auf Gerät A will mit Anwendung 2 auf Gerät B kommunizieren) verantwortlich. Dabei wird TCP genutzt. TCP sorgt für
einen zuverlässigen Datentransport durch verbindungsorientierte Kommunika-
2.1 TCP/IP
Abbildung 2.1: Die vier Schichten von TCP/IP.
tion. Vor der eigentlichen Kommunikation wird eine Verbindung zwischen den
beiden Geräten, die miteinander kommunizieren wollen, aufgebaut und eine exklusive Leitung für die Kommunikation reserviert. Dabei täuscht TCP die Verbindungsorientierung vor, denn es wird nicht explizit eine Leitung für eine Kommunikation reserviert, sondern es wird durch Kontrollsegmente und Quittungen
sichergestellt, dass die Daten am Zielgerät fehlerfrei ankommen. Für den Transport werden die Daten - der Bytestrom - in IP-Pakete zerlegt und verschickt. Auf
dem Zielgerät müssen diese Pakete wieder zusammengesetzt werden. Für kurze
und schnelle Übertragungen existiert das Protokoll UDP - die Abkürzung von
User Datagram Protocol -, welches verbindungslos arbeitet, d.h. die Daten werden zufällig ins Netz geschickt - ohne Reservierung einer exklusiven Leitung.
Jedes IP-Paket erhält einen sogenannten Header, der Informationen zur eindeutigen Identizierung enthält und damit der korrekten Zustellung des Paketes
dient.
Die Internetschicht - Network Layer - sorgt für die Adressierung. Sie stellt
sicher, dass Rechner auch über die Grenzen des eigenen Rechners hinaus miteinander kommunizieren können. Dies geschieht, indem auch sie dem Paket einen
Header mit den erforderlichen Informationen hinzufügt. Das Protokoll dazu ist
IP.
Die Netzwerkschicht - Network Access Layer - verbindet durch ein Protokoll
den Host
1 mit dem Netz und bietet somit die Grundlage zur Versendung von
IP-Paketen. Auch sie fügt dem Paket einen Header hinzu.
1
Ein Host stellt in einem Netzwerk Dienste zur Verfügung.
12/ 43
2 Grundlagen der Webprogrammierung
Der Empfänger durchläuft diese Schichten in genau entgegengesetzter Richtung und jede Schicht liest den jeweiligen Header aus.
2.2 Das HTTP-Protokoll
HTTP ist die Abkürzung von
Hypertext Transfer Protocol, es ist ein Protokoll
der Anwendungsschicht (vgl. Kapitel 2.1). Es wird beim Aufruf von Webseiten
benutzt und verwendet TCP mit Port 80. Ein Port ist ein Kanal, über den ein
Protokoll angesprochen wird. Ports sind durchnummeriert. Bei der Adressierung
eines Protokolls wird folglich nicht nur die IP-Adresse, sondern auch die Portnummer angegeben. Im Allgemeinen dient das HTTP-Protokoll der Übertragung
von Daten in einem Netzwerk. Abbildung 2.2 zeigt an einem Beispiel den Aufruf
einer Webseite.
Abbildung 2.2: Aufruf:
http://webap-uklac05.klinikum.rwth-
aachen.de/barcode/default.html.
2.3 Webserver
Ein Webserver stellt Webanwendungen - genauer gesagt Webseiten, Graken und
andere Inhalte - zur Verfügung. Sie können über das HTTP-Protokoll z.B. von
einem Browser abgerufen werden.
13/ 43
2.4 Was ist HTML?
Im Windows-Umfeld existiert der IIS - die Abkürzung von Internet Information Services - , der für Windows Server verfügbar ist.[Micr11, vgl.] Dieser stellt
Dokumente und Daten über Protokolle wie z.B. HTTP oder FTP bereit.
2.4 Was ist HTML?
HTML ist die Abkürzung für
HyperText Markup Language.
Das Wort Hy-
pertext steht für einen Link, der auf eine andere Webseite führt und der Begri Markup bezeichnet eine Hervorhebung. HTML ist keine Programmiersprache im eigentlichen Sinne, sondern es ist - wie der Name es schon sagt - eine
Hypertext-Beschreibungssprache. Mit HTML können Dokumente erstellt werden, die dann von einem Browser dargestellt werden. HTML basiert auf dem
sogenannten SGML - das ist die Abkürzung für Structured Generalized Markup
Language[Lubk03, vgl. S. 109f.]
Von HTML existieren mehrere Versionen. Diese werden entsprechend durch
fortlaufende Nummern gekennzeichnet: Die neueste Version ist HTML5. Dementsprechend war die allererste Version von HTML das HTML 1, welches im Jahre
1990 veröentlicht wurde[Lubk03, vgl. S. 110]. HTML baut auf dem HTTPProtokoll auf.
Ein HTML-Dokument besteht aus ASCII-Zeichen. Es enthält zum einem Inhalt, welcher dargestellt wird und zum anderem eine Struktur dieses Inhaltes
mittels Tags, welche beschreiben, wie der Inhalt dargestellt wird. Ein Tag ist ein
in der jeweiligen HTML-Spezikation festgelegter Ausdruck, der vom Browser
interpretiert wird. Üblicherweise werden Tags durch spitze Klammern - also <
und > - dargestellt. Es gibt Start- und End-Tags.
Folgender Quellcode ist ein Beispiel für die Struktur eines einfaches HTMLDokuments:
1 < ! DOCTYPE h t m l>
2 <h e a d>
3
< t i t l e >D i e s
ist
ein
T i t e l </ t i t l e >
4 </ h e a d>
5 <b o d y>
6 <h2> D i e s
14/ 43
ist
eine
Ueberschrift
2 . Ordnung</ h2>
2 Grundlagen der Webprogrammierung
7 <a
h r e f =" b e i s p i e l 1 . h t m l ">
Dies
ist
ein
Link
auf
mich
s e l b s t </ a>
8 < ! −−
Dies i s t ein Kommentar−−>
9 </ b o d y>
10 </ h t m l>
Abbildung 2.3 zeigt das Ergebnis.
Abbildung 2.3: beispiel1.html
Die Dateiendung eines HTML-Dokumentes ist üblicherweise .htm oder .html.
2.5 JavaScript
JavaScript ist eine Skriptsprache. Skriptsprachen sind Sprachen, für die kein
Compiler benötigt wird, d.h. der Code muss nicht in Maschinensprache übersetzt
werden. JavaScript wird hauptsächlich clientseitig
2 eingesetzt 3 . JavaScript ist
plattformunabhängig: Die Verwendung von JavaScript ist unabhängig von dem
Betriebssystem eines Clients, es muss nur JavaScript auf dem Client verfügbar
sein.
2
3
D.h. das Skript wird vom Browser des Users ausgeführt und nicht auf dem Webserver
Ein Beispiel für serverseitigen Einsatz von JavaScript ist ASP.NET, mit welchem Webanwendungen - auf dem .NET-Framework aufbauend - erstellt werden.
15/ 43
2.6 CSS
In einem HTML-Dokument kann JavaScript eingebunden werden - entweder
direkt in die Datei oder ausgelagert in einer eigenen Datei. Der JavaScript-Code
wird dann zur Laufzeit von dem Webbrowser interpretiert. Das HTML-Tag zur
Verwendung von JavaScript lautet <script> bzw. für JavaScript-Code <script
type="text/javascript">.
JavaScript wird in einer Sandbox ausgeführt. Sie begrenzt den Zugri von
JavaScript auf Browserobjekte, um zu verhindern, dass JavaScript-Code uneingeschränkt auf Ressourcen des Clients wie z.B. dem Dateisystem zugreifen kann.
2.6 CSS
CSS ist die Abkürzung von
Cascading Style Sheets. CSS wird im Zusammen-
hang mit HTML für die Gestaltung der durch HTML denierten Inhalte benutzt.
Mittels CSS kann eine Vorlage, die Stylesheet genannt wird, angefertigt werden,
die auf das komplette Dokument angewandt wird. Z.B. kann darin festgelegt
werden, dass jeder Link, der bereits von dem User angeklickt wurde, in rot dargestellt wird. Soll die Farbe dann irgendwann z.B. in grün umgewandelt werden,
so muss diese Änderung nur an einer Stelle - in der css-Stylesheet-Deniton und nicht bei jedem Link eingepegt werden.
Auch CSS bendet sich in einem permanentem Entwicklungsprozess: die erste
Version von CSS - CSS 1.0 - wurde im Jahre 1996 veröentlicht. Die aktuelle
Version ist CSS 3.0.
16/ 43
3 Softwareentwicklung für mobile
Endgeräte
Mobile Endgeräte besitzen andere Merkmale als Desktop PCs. Die Tabelle 3.1
vergleicht einige Merkmale von mobilen Endgeräten mit Desktop PCs.
Merkmal
Desktop PC
mobiles Endgerät
Displayauösung
Standard: 1280x1024
zwischen 240x400 und
Pixel
800x480 Pixel
Orientierung
Querformat
Portrait und Landscape
Bedienung
Maus und Tastatur
Hand
Netzwerkverbindung
meist LAN
WLAN oder UMTS
Rechenleistung
Gröÿenordnung
Gröÿenordnung
GFLOPS
1
MFLOPS
Tabelle 3.1: Vergleich: mobile Endgeräte vs. Desktop PCs [Davi12, vgl. S.7f.]
Aus den Unterschieden ergeben sich einige Punkte für die Softwareentwicklung
für mobile Endgeräte, die sich von der für Desktop PCs unterscheiden:
Da die Displayauösungen bei mobilen Endgeräten generell kleiner als bei
Desktop-PCs sind, muss beim Design beachtet werden, dass auch alles erkennbar
ist. Vor allem muss berücksichtigt werden, dass die Bandbreite der Displayauösungen für mobile Endgeräte sehr groÿ ist. Auch sollte - wegen der Überschaubarund Nutzbarkeit - eine Softwarelösung für ein mobiles Endgerät nur Funktionen
anbieten, die wirklich benötigt werden. Auch muss berücksichtigt werden, dass
sich der Bildschirm der meisten mobilen Endgeräten drehen lässt, wodurch sich
die Seitenverhältnisse ändern. Die mobile Anwendung muss darauf reagieren und
das Design dementsprechend anpassen.
Mobile Endgeräte werden in aller Regel über einen berührungssensitiven Bild-
1
FLOPS ist die Abkürzung von
Floating-Point Operations
Per Second
schirm (Touchscreen) - und nicht über Eingabegeräte wie Maus und Tastatur bedient. Die Konsequenz ist, dass Buttons und andere Formen von der Gröÿe
her so dargestellt werden müssen, dass sie mit dem Finger bedienbar sind. Die
Gröÿe darf dementsprechend nicht zu klein sein. Des Weiteren sollte das Eingeben von langen Texten vermieden werden, da dies ein langsamer und unter
Umständen schwieriger Prozess für den User darstellt. Deshalb sollten - wenn es
möglich ist - mehrere Optionen oder ein Standardtext vorgegeben werden. Auch
sollte berücksichtigt werden, dass die eingeblendete Tastatur meistens einen Teil
des Bildschirms verdeckt.
Es muss auch davon ausgegangen werden, dass ein Nutzer eines mobilen Endgerätes sich bewegt, d.h. im Extremfall ändert sich seine Position dauernd. Dies
hat zur Folge, dass keine konstante und schnelle Netzverbindung zu erwarten
ist. Deshalb muss zum einem mit einer niedrigen Übertragungsgeschwindigkeit,
zum anderem mit kurzzeitigen Oine-Phasen gerechnet werden. Konsequenzen
hat dies z.B. für Videos oder groÿen Graken, die auf einem mobilen Endgerät
angezeigt werden sollen. Hier sollte über eine Anpassung der Inhalte nachgedacht werden. Kommt der User mit seinem mobilen Endgerät in ein Gebiet ohne
Empfang, so sollte sich dies so wenig wie möglich auf die Software auswirken.
Dies kann z.B. durch lokale Puer, in denen Daten zwischengespeichert werden,
geschehen.
Auch die deutlich langsamere Rechenleistung im Vergleich zu einem DesktopPC sollte berücksichtigt werden. Deshalb sollte eine Software für mobile Geräte keine unnötigen Operationen ausführen. Eine Lösungsmöglichkeit, dennoch
komplexe Anwendungen auszuführen, ist z.B. die Ausführung dieser auf einem
Server und nicht auf dem Client selbst. Auch sollte die Software nur Funktionen
anbieten, die sinnvoll sind. Dies dient auch der besseren Anwendbarkeit der Software für den User, der dann von unnötigen, zu komplexen oder unverständlichen
Funktionen verschont wird.
18/ 43
4 HTML5, CSS3 und JavaScript-APIs
Die HTML-Spezikationen werden vom World Wide Web Consortiums - abgekürzt als W3C - entwickelt. Dieses Gremium gibt sogenannte W3C Recommendations (deutsch: W3C Empfehlungen) heraus, die Techniken des World
Wide Webs betreen. Gegründet wurde das W3C von Tim Berners-Lee, der
als Gründer von HTML gilt. Die Idee von HTML entwickelte er während seiner Tätigkeit am CERN. Er machte sich Gedanken über einen Informationsaustausch zwischen Wissenschaftlern. Tim Berners-Lee wollte verhindern, dass
Wissen mit Menschen verloren geht, wenn diese den CERN
1 verlassen. Mithilfe
eines Hypertext-Systems wollte er eine Möglichkeit schaen, rasant veränderndes
Wissen aufzuzeichnen.[Bern89, vgl.]
HTML5 ist die neueste Version von HTML. Sie bendet sich oziell allerdings
noch in der Entwicklungsphase durch den W3C, Standard ist zur Zeit HTML
2
4 .
4.1 Vergleich zu HTML 4
4.1.1 Neuerungen
3
HTML5 deniert neue Elemente und Attribute . Die Syntax ist kompatibel
zu der von HTML 4. Im Zusammenhang mit HTML5 sind aber auch neue
JavaScript-APIs deniert worden. Eine API (Abkürzung von application programming interface) ist eine Programmierschnittstelle. Sie stellt Methoden und
1
Europäische Organisation für Kernforschung
Die genaue Spezikation von HTML 4.01 nden Sie unter http://www.w3.org/TR/html401/
3
Die HTML5-Spezikation nden Sie unter http://www.w3.org/TR/html5/
2
4.1 Vergleich zu HTML 4
Funktionen bereit, die ein Softwareentwickler benutzen kann, wenn er die API in
seine Software einbindet. Im folgenden Unterkapitel wird beispielhaft auf einige
Aspekte eingegangen.
4.1.2 Webapplikationen oine nutzen
HTML5 bietet als Möglichkeit zur Oine-Speicherung einer Webanwendung die
Möglichkeit des Caches: Ein Cache ist ein temporärer Zwischenspeicher, in dem
Ressourcen gespeichert werden, auf die öfter zugegrien wird. Bei HTML5 kann
eine Datei - das sogenannte Cache Manifest - erstellt werden, die angibt, welche
Dateien auf dem Client gespeichert werden sollen. Bei dem ersten Aufruf einer
Webseite werden die im Cache Manifest angegebenen Dateien auf dem Client gespeichert. Bei jedem Aufruf der Webseite werden die lokal gespeicherten Dateien
verwendet. Zusätzlich wird das Cache Manifest ausgelesen und überprüft, ob sich
Änderungen in der Datei benden. Falls ja, wird diese erneut komplett abgearbeitet und die neuen Dateien beim nächsten Aufruf der Webseite verwendet. In
dem Cache Manifest kann nicht nur angegeben werden, welche Dateien gecachet
werden sollen, sondern es können auch explizit Dateien angegeben werden, die
nicht gecachet werden sollen, diese sind dann aber z.B. bei nicht vorhandener
Netzwerkverbindung auch nicht von dem Browser darstellbar. Eine dritte Möglichkeit ist, eine gecachte Datei anzugeben, die angezeigt wird, falls die eigentlich
anzuzeigende Datei nicht verfügbar ist (wie es z.B. bei nicht vorhandener Netzwerkverbindung der Fall sein kann) [SpHa11, vgl S.238.].
Web Storage ist eine JavaScript-API, die oftmals als Teil der
HTML5-Spezikation erwähnt wird. Tatsächlich ist es aber eine eigene Spezikation des W3Cs. Web Storage stellt Methoden zur Speicherung von Daten auf
4 können maximal 4096 Byte gespei-
dem Client zur Verfügung. In einem Cookie
chert werden gespeichert werden. Dagegen wird bei Web Storage vom W3C ein
Speicherlimit von 5 MB vorgeschlagen. Wenn dieses Limit erreicht worden ist,
empehlt der W3C, dass der User darüber benachrichtigt wird und dann entscheiden kann, ob das Speicherlimit für die eine Webseite erhöht werden soll.
Eine weitere Empfehlung des W3C ist es, dass der Nutzer einsehen kann, welche
Webseite wie viel Speicherbereich belegt.[W3C11, vgl.] Die Web Storage Daten
werden nicht bei jeder Anforderung zum Webserver geschickt, wie es bei Cookies
der Fall ist. Web Storage kann z.B. benutzt werden, um Benutzereinstellungen
dauerhaft oder sich nicht ändernde Daten zwischenzuspeichern. Durch die Spei-
4
Ein Cookie ist eine Datei mittels der eine Webseite individuell Informationen auf dem Client
speichern und sie später abrufen kann.
20/ 43
4 HTML5, CSS3 und JavaScript-APIs
cherung auf dem Client ist für den Abruf der Daten keine Verbindung zu dem
Webserver notwendig. Dies ist gerade für mobile Geräte nützlich, falls diese z.B.
sich an einem Ort benden, wo kein Netz zur Verfügung steht.
Von Web Storage gibt es zwei Arten: sessionStorage und localStorage.
SessionStorage sind Daten, die nur bis zum Ende einer Session(Sitzung) behalten werden. Wird das Browserfenster oder der Tab geschlossen, so werden
automatisch alle Daten in sessionStorage gelöscht. Dies hat z.B. den Vorteil,
dass sich die sessionStorages verschiedener Sessions nicht gegenseitig beeinus-
5 durchaus möglich ist.
sen können, was z.B. bei Cookies
Im Gegensatz zu sessionStorage stehen Daten aus dem localStorage auch nach
dem Ende einer Session zur Verfügung. Ein Neustart des Browsers oder des Systems hat keinen Einuss. Gelöscht werden die Daten von localStorage entweder
programmatisch oder durch das Einstellen von privatem Browsen auf dem jeweiligem Client.
Sowohl localStorage als auch sessionStorage werden als Schlüssel-Wert-Paare
gespeichert. Beim Ändern von localStorage oder sessionStorage wird ein StorageEvent ausgelöst, welches programmatisch abgefangen werden kann, um angemessen zu reagieren.
Da sessionStorage an die jeweilige Session gekoppelt ist, hat nur die Webseite
der aktuellen Session Zugri auf diese Daten. Anders ist dies bei localStorage, dessen Daten sich so lange auf dem Client benden, bis sie entweder mittels einer Anwendung oder durch einen User explizit gelöscht werden. Ist dies
nie der Fall, können die Daten theoretisch für immer auf dem jeweiligen Client verweilen. Des Weiteren werden diese Daten unverschlüsselt gespeichert. Für
den User sind die Daten folglich einsehbar. Für andere Anwendungen gestaltet
sich der Zugri auf diese Daten etwas komplizierter: Der Zugri auf die Daten
von localStorage geschieht mittels JavaScript. Ein Sicherheitskonzept die sogenannte Same-Origin-Policy, abgekürzt SOP erlaubt JavaScript nur dann auf
localStorage zuzugreifen, wenn es aus derselben Quelle stammt, die diese Daten
auch angelegt hat. Jede Webseiten-Domäne verfügt sozusagen über einen eigenen Speicherbereich auf dem Client. Damit können aber auch andere Webseiten
5
Weitere Informationen zu Cookies nden Sie hier: http://www.faz.net/hilfe/2.335/was-istein-cookie-111792.html
21/ 43
4.1 Vergleich zu HTML 4
der gleichen Domäne, von übergeordneten Domänen oder von Unterdomänen
auf diese Daten zugreifen.[SpHa11, vgl. S. 198] Das W3C empehlt zudem, das
Speicherlimit für eine gesamte Oberdomäne zu begrenzen, damit nicht durch
die Verwendung mehrerer Unterdomänen mehr Speicher als eigentlich vorgesehen benutzt werden kann.[W3C11, vgl.] Die Web Storage-Daten sind genau
wie Cookies an den jeweiligen Browser gebunden. Durch solche Methoden ist
keine permanente Verbindung zu dem Webserver notwendig, diese wird nur im
Falle einer Datenaktualisierung gebraucht. Diese Funktionen sind zwar Teil der
HTML5- bzw. der Web Storage-Spezikation, werden allerdings nicht von jedem
Browser unterstützt.
4.1.3 Video
Videos können durch das Video-Tag - <video> - direkt in eine HTML-Seite
eingebettet werden. Für das Abspielen von Videos in einem HTML-Dokument
war bisher allerdings immer ein Drittanbieter-Plugin wie z.B. QuickTime, RealPlayer oder Flash notwendig. Unterstützt der Browser allerdings HTML5, so
sind in Verbindung mit dem Video-Tag keine Plugins mehr notwendig.
Videos bestehen aus Video- und Audiospuren. Jedes Video hat einen Container und einen Codec. Der Container bestimmt das Dateiformat und enthält die
Daten, die mit einem bestimmten Codec digital kodiert wurden (damit geht auch
eine Komprimierung einher). Der Codec dekodiert die Daten beim Abspielen auf
dem PC wieder. Es existieren zahlreiche verschiedene Container und Codecs. Ein
Video mit der Dateiendung .wmv hat z.B. das Windows Media Video als VideoCodec, der Container ist meistens das Advanced Streaming Format (ASF).
Das resultierende Problem für Webanwendungen mittels HTML5 ist, dass die
verschiedenen Browser verschiedene Codecs benutzen: Firefox und Opera z.B.
benutzen Theora als Video-Codec und Vorbis als Audio-Codec in einem OggContainer. Safari verwendet das MPEG-4-Format mit dem H.264 Video-Codec
und AAC Audio-Codec.[Tw10, vgl.]. Solange kein einheitliches Format exisitert,
kann dieses Problem dadurch gelöst werden, dass im Source-Code für jedes Format, welches unterstützt werden soll, ein Video mit dem entsprechenden Dateityp hinterlegt wird. Der aufrufende Browser geht diese Zeilen so lange durch,
bis er ein Format gefunden hat, welches er dekodieren kann. Für den Fall, dass
ein Browser keines der angebotenen Formate oder generell kein HTML5 unterstützt, ist es möglich ein sogenanntes Fallback anzugeben. Dadurch kann dann
22/ 43
4 HTML5, CSS3 und JavaScript-APIs
auf die Drittanbieter-Plugins wie z.B. Flash zurückgegrien werden oder es wird
ein Text dargestellt, der den User darüber informiert, dass der von ihm benutzte
Browser nicht die notwendige Unterstützung für das Abspielen des Videos bietet.
Vorteil von HTML5-Videos ist z.B., dass nicht mehr ein bestimmter Bereich
einer Webseite für ein Plugin reserviert wird, welches dann das Video darstellt,
sondern die Darstellung des Videos wird komplett selbst von dem HTML5-Code
übernommen.
4.1.4 Browserunterstützung
Wie schon oben erwähnt, wird nicht von jedem Browser jeder Teil der HTML5Spezikation unterstützt. Abbildung 4.1 gibt einen Überblick über die Unterstützung von HTML5-Webanwendungen durch verschiedene Browser.
Abbildung 4.1: HTML5 & CSS3 Support, http://www.ndmebyip.com/litmus/,
2010 (Aufruf am 17.11.2011 um 13:00 Uhr)
23/ 43
4.2 JavaScript-APIs
Die Abbildung lässt erkennen, dass der Browser, der auf einem WindowsBetriebssystem z.Z. die gröÿtmöglichste Unterstützung für HTML5-Webanwendungen
bietet, der Safari 5 ist.
6
4.2 JavaScript-APIs
Mit HTML5 sind einige neue - über JavaScript zugängliche - APIs entwickelt
worden. Die Web Storage-API wurde bereits im Kapitel 4.1.2 vorgestellt. Die
folgende Auistung enthält einige APIs beispielhaft:
•
HTML5 Drag und Drop-API: Umsetzung von Drag und Drop-Operationen
auf Webapplikationen
•
Web Storage: Daten im Browser speichern (siehe Kapitel 4.1.2)
•
Geolocation: Auslesen von Standortinformationen
•
File Writer: Schreiben von Dateien aus dem Browser heraus
•
Google Maps: Laden von Google Maps
•
Application Cache: Ansprechen des Oinecaches
•
Media elements: Audio und Video-Optionen
Nicht jede API ist Teil der HTML5-Spezikation. Einige dieser APIs werden von
W3C als standalone specications weiterentwickelt - wie z.B. die in Kapitel
4.1.2 erwähnte Web Storage API.
6
Einen Überblick über Features des Safari-Browsers
http://www.apple.com/de/safari/features.html.
24/ 43
nden
Sie
unter
4 HTML5, CSS3 und JavaScript-APIs
4.3 Das JavaScript Framework jQuery Mobile
4.3.1 Einführung
jQuery Mobile ist ein auf JavaScript basiertes Framework. Es ist eine Weiterent-
7
wicklung der Bibliothek jQuery :
The jQuery Mobile framework is jQuery's latest rabbit out of the hat
project. The jQuery Mobile framework is open source and is supported by all the big players; iOS, Android, Bada, BlackBerry, Nokia,
Adobe, and so, covering all the names behind the project. [Bai11,
S.1]
jQuery Mobile wurde am 11. August 2010 angekündigt [Bai11, vgl S.8]. Sie
stellt Funktionen - vor allem Layouts und Widgets - zur Entwicklung von Webseiten und Webapps zur Verfügung. Abbildung 4.2 beschreibt, welche Geräte von
jQuery Mobile Beta 1.0 RC2 unterstützt werden. jQuery Mobile verfolgt das Ziel,
eine möglichst groÿe Zahl von Plattformen und Geräten zu unterstützen, nicht
nur High-End-Smartphones:
If you have the latest web browser then you will get all the bells and
whistles; if you have an older browser then the page will still render
and you will still have access to the content. The goal is to allow
you as a developer and designer to add complex features such as 3D
page transitions found in iOS, but you still have the page load and
function on devices that are several years old. [Davi12, S.70]
Falls eine neue Funktion von einem Browser nicht unterstützt wird, wird auf
eine ältere Funktion zurückgegrien, sodass für den User mit dem älteren Browser möglichst keine Nachteile entstehen und die Webseite trotzdem in vollem
Funktionsumfang benutzt werden kann.
Die Nutzung von jQueryMobile geschieht, indem folgende Zeilen in den Header
eingefügt werden:
7
Weitere Informationen zu jQuery nden Sie unter http://jquery.com/
25/ 43
4.3 Das JavaScript Framework jQuery Mobile
Abbildung 4.2: vgl.
jQuery
Mobile
Supported
Platforms,
http://jquerymobile.com/gbs/ und in Anlehnung an: Original
Graded
Browser
Matrix,
http://jquerymobile.com/original-
graded-browser-matrix/; beide: 2010 (Aufruf am 4.11.2011 um
13:00 Uhr)
1 <l i n k
r e l =" s t y l e s h e e t "
h r e f =" h t t p : / / c o d e . j q u e r y . com /
mobile / 1 . 0 / j q u e r y . mobile
2 <s c r i p t
− 1 . 0 . min .
css "
/>
s r c =" h t t p : / / c o d e . j q u e r y . com / j q u e r y
− 1 . 6 . 4 . min .
j s "></ s c r i p t >
3 <s c r i p t
s r c =" h t t p : / / c o d e . j q u e r y . com / m o b i l e / 1 . 0 / j q u e r y .
mobile
− 1 . 0 . min .
j s "></ s c r i p t >
Diese binden die erforderlichen Dateien für jQuery Mobile ein. Alternativ können
die Dateien auch bei http://jquerymobile.com/download/ heruntergeladen und
auf einem eigenen Webserver gehostet werden.
26/ 43
4 HTML5, CSS3 und JavaScript-APIs
4.3.2 Design
Die Denitionsdateien von jQuery Mobile enthalten eine CSS-Datei. Dadurch
ist das Design der Formen einheitlich vorgegeben und muss nicht jedes Mal
vom Entwickler selbst vorgegeben werden. Das Design, welches in dieser CSSDatei kodiert ist, ist optimal auf mobile Apps zugeschnitten - insbesondere,
was die Gröÿe betrit. Trotzdem ist der Entwickler nicht auf einen einzigen
Designstil festgelegt: zu den meisten Widgets existieren sogenannte Themes, die
dem Entwickler eine Auswahl an Designstilen anbieten.
Das folgende Beispiel zeigt mehrere Buttons, die sich nur in ihrem Theme und
der Beschriftung unterscheiden, wie auch aus dem Source-Code ersichtlich ist:
1 < ! DOCTYPE h t m l>
2 <h e a d>
3
< t i t l e>B e i s p i e l
4
<l i n k
2</ t i t l e >
r e l =" s t y l e s h e e t "
h r e f =" h t t p : / / c o d e .
j q u e r y . com / m o b i l e / 1 . 0 / j q u e r y . m o b i l e
. css "
5
<s c r i p t
s r c =" h t t p : / / c o d e . j q u e r y . com / j q u e r y
− 1 . 6 . 4 . min .
6
<s c r i p t
− 1 . 0 . min
/>
j s "></ s c r i p t >
s r c =" h t t p : / / c o d e . j q u e r y . com / m o b i l e
/ 1 . 0 / j q u e r y . mobile
− 1 . 0 . min .
j s "></ s c r i p t >
7 </ h e a d>
8 <b o d y>
9 <a
h r e f =" i n d e x . h t m l "
>Theme
10 <a
h r e f =" i n d e x . h t m l "
>Theme
11 <a
d a t a − t h e m e=" b "
d a t a − r o l e =" b u t t o n "
d a t a − t h e m e=" c "
d a t a − r o l e =" b u t t o n "
d a t a − t h e m e=" d "
d a t a − r o l e =" b u t t o n "
d a t a − t h e m e=" e "
d</ a>
h r e f =" i n d e x . h t m l "
>Theme
d a t a − r o l e =" b u t t o n "
c</ a>
h r e f =" i n d e x . h t m l "
>Theme
13 <a
d a t a − t h e m e=" a "
b</ a>
h r e f =" i n d e x . h t m l "
>Theme
12 <a
d a t a − r o l e =" b u t t o n "
a</ a>
e</ a>
14 </ b o d y>
15 </ h t m l>
Abbildung 4.3 zeigt das Ergebnis.
27/ 43
4.3 Das JavaScript Framework jQuery Mobile
Abbildung 4.3: beispiel2.html
Wie das Design von jQuery Mobile aussieht, kann unter
http://jquerymobile.com/demos/1.0b1/ beobachtet werden. jQuery Mobile setzt
seine komplette Dokumentation auf dem jQuery Mobile-Framework selbst auf.
Mit Hilfe der CSS-Denition ist es folglich mit einfacheren Mitteln möglich,
ein konsistentes und einheitliches Layout zu erstellen und zu pegen.
4.3.3 Features
jQuery Mobile kann mit dem Element <div> benutzt werden. Diesem Element
kann eine Rolle zugewiesen werden, z.B page für eine Seite, header für den
Kopf einer Seite, footer für den Fuÿ einer Seite, navbar für eine Navigationsleiste oder content für Inhalt. Das div-Element wird zur Strukturierung
von Inhalten einer Seite benutzt: logisch zusammengehörende Elemente sollen
auch optisch zusammengehörend dargestellt werden. Es wird auch von älteren
Versionen von HTML verstanden.
28/ 43
4 HTML5, CSS3 und JavaScript-APIs
Folgender Source-Code wird für den Inhalt einer HTML-Seite benutzt:
1 <b o d y>
2 <d i v
d a t a − r o l e =" p a g e ">
3
<d i v
d a t a − r o l e =" h e a d e r "> H e a d e r</ d i v>
4
<d i v
d a t a − r o l e =" c o n t e n t "> C o n t e n t</ d i v>
5
<d i v
d a t a − r o l e =" f o o t e r "> F o o t e r</ d i v>
6 </ d i v>
7 </ b o d y>
Abbildung 4.4 zeigt, wie die Webseite mit Einbindung von jQuery Mobile aussieht, Abbildung 4.5 zeigt das Aussehen der Webseite ohne Einbindung von jQuery Mobile. Dies ist ein wesentlicher Eekt der CSS-Denition von jQuery Mobile,
das Interpretieren dagegen basiert auf der JavaScript-Datei von jQuery und der
darauf aufbauenden Datei von jQuery Mobile.
Abbildung 4.4: beispiel3.html
Abbildung 4.5: beispiel3.html
mit jQuery Mobile
ohne jQuery Mobile
Des Weiteren ist es mit jQuery Mobile möglich, mehrere Seiten in einer HTMLDatei zu denieren. Dadurch kann ein Performance-Gewinn entstehen, da dadurch nicht für jede Seite eine neue Datei geladen werden muss, sondern nur
eine einzige für alle. Das Wechseln von Seiten innerhalb einer Datei beansprucht
dann weitaus weniger Bandbreite.
29/ 43
4.3 Das JavaScript Framework jQuery Mobile
In der aktuellen Version 1.0 hat die CSS-Datei von jQuery Mobile eine Gröÿe
von 7KB, die JavaScript-Datei eine Gröÿe von 24KB. Kleine Dateigröÿen haben den Vorteil, dass nicht viel Bandbreite einer Verbindung beansprucht wird.
Gerade bei mobilen Anwendungen sind solche Performance-Gewinne äuÿerst einussreich.
30/ 43
5 Appentwicklung für das
Apple-Betriebssystem iOS
iOS ist ein von Apple entwickeltes Betriebssystem für mobile Geräte. Das iPhone, der iPod touch und das iPad werden mit iOS ausgeliefert. Es basiert auf
Mac OS X - dem Betriebssystem von Macintosh-Desktop-Computern - , welches
1
wiederum auf Unix basiert. Die neueste Version von iOS ist iOS 5 .
Zentral für iOS ist die Multi-Touch-geeignete Oberäche und Homescreen, auf
dem alle Apps abgelegt sind und von dem User individuell angeordnet werden
können. Einige Apps sind vorinstalliert, wie z.B. iTunes, Kalender, Mail, Kamera,
Erinnerungen oder Safari. Im App Store gibt es kostenpichtige und -lose Apps,
mit denen der User sein Gerät individuell erweitern kann. Dafür muss er einen
User Account bei Apple erstellen - eine sogenannte Apple-ID. Jedes Gerät wird
mit einer Apple-ID registriert.
5.1 Native Apps
Native Apps werden für das Apple-Betriebssystem iOS in der Programmiersprache Objective-C programmiert. Der Einsatz von JavaScript ist auch möglich.
Die von Apple bereitgestellte Entwicklungsumgebung XCode gibt es momentan
2
in der Version 4.2 . XCode kann nur auf einem Apple-Betriebssystem installiert
werden. Die dazugehörige API für das Entwickeln von Apps für iOS ist die Cocoa
Touch API.[Appl11, vgl.]
1
2
Mehr Infos zu iOS 5 unter http://www.apple.com/de/ios/features.html
Sie
ist
nach
kostenloser
Registrierung
als
Apple-Developer
http://developer.apple.com/xcode/ downloadbar.
unter
5.2 Vergleich von Webapps mit nativen Apps
5.2 Vergleich von Webapps mit nativen Apps
Die Frage, ob eine Webapp oder eine native App geeigneter ist, ist nicht pauschal
zu beantworten. Sie ist abhängig von dem jeweiligen Kontext.
Im Folgenden wird von vier verschiedenen Szenarien für die Entwicklung einer
App ausgegangen:
1. rmeninterne App, geschlossene Benutzergruppe
2. rmeninterne App, oene Benutzergruppe
3. weltweite App, geschlossene Benutzergruppe
4. weltweite App, oene Benutzergruppe
Das erste Szenario beschreibt die Entwicklung einer
der der
Nutzerkreis klar deniert
rmeninternen App, bei
ist: es handelt sich um Mitarbeiter oder
einem bestimmten, klar denierten Teil von Mitarbeitern des Unternehmens. Es
kann davon ausgegangen werden, dass die App eingeschränkt oine-fähig sein
sollte, falls das Gerät keine Netzverbindung hat. Dabei bedeutet oine-fähig
nicht, dass die Inhalt trotzdem komplett zur Verfügung stehen müssen, da eine
rmeninterne App in der Regel auf Daten zugreift, die auf netzinternen Servern
liegen. Des Weiteren kann davon ausgegangen werden, dass das mobile Gerät,
mit dem die App aufgerufen wird, sich im Intranet bendet - sei es über WLAN
oder VPN. Damit sollten die bestehenden Sicherheitskonzepte greifen, z.B. sollte
eine Benutzerauthentizierung stattnden.
Das zweite Szenario ist die Entwicklung einer rmeninternen App für eine
oene Benutzergruppe. Dieses Szenario kann vernachlässigt werden, da bei
einer rmeninternen App die Benutzergruppe immer bekannt ist.
Eine
weltweite App für eine geschlossene Benutzergruppe beschreibt
das dritte Szenario. Hierbei sind die Kunden schon bekannt. Dies ist z.B. der
Fall, wenn es sich bei der App um eine mobile Version einer schon vorhandenen
Software oder Webseite handelt.
32/ 43
5 Appentwicklung für das Apple-Betriebssystem iOS
Das letzte Szenario ist eine
weltweite App für eine oene Benutzer-
gruppe. Hierbei muss die Benutzergruppe von der angebotenen App erfahren,
es muss Werbung betrieben werden.
Für rmeninterne Apps empehlt sich eine HTML5-App. Grundsätzlich ist
die HTML5-App mit jedem Browser aufrufbar, einzige Bedingung ist die Unterstützung von HTML5. HTML5 ist plattform- und geräteunabhängig. Bei einer
nativen App dagegen muss für jedes Betriebssystem eine eigene App progammiert werden, da jedes Betriebssystem andere Programmiersprachen und andere
Frameworks unterstützt. Bei HTML5-Apps ist nur ein Webserver notwendig und
Updates können schnell verbreitet werden, indem die neue Version der App auf
den Webserver geladen wird. HTML geht - wie oben beschrieben - oft mit CSS
einher. Apple-Geräte sind für CSS optimiert, wie Matthew David in einem Buch
HTML5 Mobile Websites - Turbocharging HTML5 with jQueryMobile, Sencha
Touch, and Other Frameworks erläutert:
For mobile web design you will use CSS to format your web pages.
[...]Apple has GPU accelerated support for CSS. What this means is
that CSS simply runs faster. Animations, rounded corners, embedded
fonts, and transforms all look great on the iPhone. The powerful new
Nvidia and Qualcomm chipsets appearing in the most smart phones
really give presentation in your web pages an edge. The result is that
you can use CSS to design native app-like solutions without having
to write native code. Just CSS. [Davi12, S.16]
Mittels CSS ist es auf Apple-Geräten möglich, HTML5-Apps so zu entwerfen,
dass kaum ein Unterschied mehr zu einer nativen App besteht. Auch Apples
Browser Safari ist für HTML5 geeignet: er baut sowohl in seiner mobilen als
auch in seiner Desktopversion auf WebKit auf. WebKit ist eine OpenSource
Plattform. Und WebKit unterstützt HTML5[Davi12, vgl. S.4].
Apple bietet zwar eine In-House Distribution an, bei dem im Firmenintranet
ein interner App Store erstellt wird. Hierbei entfällt der Genehmigungsprozess
von Apples App Store. Allerdings ist dieses Programm kostenpichtig und kann
nur für die Verteilung nativer Apps genutzt werden. Auch ist die Entwicklung
von nativen Apps für iOS nur auf einem Macintosh-Computer mit Mac OS X
möglich(s.o.: XCode ist nur auf Mac OS X installierbar).
Bei einer
weltweiten App für eine geschlossene Benutzergruppe emp-
33/ 43
5.2 Vergleich von Webapps mit nativen Apps
ehlt sich - aus den gleichen Gründen wie oben - eine HTML5-App. Schon bestehende Kunden können über die App benachrichtigt werden z.B. durch eine Mail,
Werbung auf der Webseite oder eingeblendete Werbung in der schon bestehenden
Software.
Soll dagegen eine App weltweit für eine oene Benutzergruppe vertrieben werden, so empehlt sich eine native App in den meisten Fällen mehr.
Zwar entfallen bei HTML5-Apps die Kosten für eine jährliche Entwicklerlizenz.
Allerdings gibt es ein enormes Problem: wie wird der User auf den Webserver,
auf dem die HTML5-App angeboten wird, aufmerksam? Ist die App keine mobile Version einer Webseite oder einer Software, so muss die Kunden erst einmal
gefunden werden, das Produkt muss vermarktet werden. Bei einer nativen App
wird die Vermarktung von Apple übernommen. Die Vorteile: der App Store ist
auf jedem iOS-Gerät vorinstalliert, die Vermarktung und Bezahlung wird von
Apple übernommen. Des Weiteren ist der App Store bekannt bei potenziellen
Kunden. Deshalb ist zu erwarten, dass die meisten User -insbesondere die nicht
so technikorientierten User- sich eine App mit der gewünschten Funktionalität
im App Store suchen werden. Allerdings ist dies mit Kosten verbunden: zum
einem fällt eine jährliche Entwicklerlizenz an, zum anderen behält Apple 30%
des Gewinns als Provision. Auch muss jede App einen Genehmigungsprozess erfolgreich durchlaufen, bevor sie im App Store vermarktet werden darf. Dieser
Genehmigungsprozess gewährleistet aber auch, dass gewisse Qualitätsstandards
eingehalten werden.
Aktuell wurde in dem Genehmigungsprozess, den jede App durchläuft, bevor
sie in Apples App Store vertrieben wird, eine Sicherheitslücke entdeckt: Charlie Miller entwickelte eine Börsenticker-App. Diese wurde von Apple für den
App Store freigegeben. Beim Starten dieser App konnte Charlie Miller unsignierten Code nachladen. In einem Video demonstriert er z.B. den Zugri auf
das Adressbuch eines iPhones. Grund dafür ist wohl, dass JavaScript auf einer
tieferen Speicherebene als üblich ausgeführt wird. Damit wollte Apple erreichen,
dass die Geschwindigkeit seines Browser erhöht wird. Die Schutzmechanismen,
die verhindern sollen, dass durch JavaScript-Code Missbrauch betrieben wird,
haben wohl eine Lücke, die Charlie Miller ausnutzte. Als Konsequenz wurde
Charlie Miller seine Entwicklerlizenz entzogen. [Schw11, Pryj11, vgl.]
In den meisten Fällen kann anhand der oben beschriebenen Szenarien entschieden werden, ob eine HTML5- oder eine native App eingesetzt werden soll.
Die Tabelle 5.1 vergleicht einige Kriterien für eine HTML5- und eine native App.
34/ 43
5 Appentwicklung für das Apple-Betriebssystem iOS
Kriterium/Merkmal
HTML5-App
native App
Oine-Fähigkeit
gegeben, ca. 5 MB
voll gegeben
Daten speicherbar
(siehe Kapitel 4.1.2)
Hardware-Zugri
sehr eingeschränkt
möglich, über
bereitgestelle APIs auf
z.B: GPS, 3D-, Push-,
Hardware-Funktionen,
Grakbeschleunigung
Entwicklungsumgebung
Editor
nur auf
Macintosh-Computer
mit Mac OS X möglich
nötiges Know-How
Wiederverwendbarkeit
JavaScript, HTML5,
Objective-C,
CSS3
Cocoa-API
möglich
eingeschränkt möglich
über Webbrowser
automatisch auf
von Code und Logik
Zugri
Homescreen sichtbar
Setzen eines
"Lesezeichens auf den
Homescreen möglich
Plattform- und
ja
nein
geräteunabhängig
Tabelle 5.1: Vergleich von HTML5-Apps mit nativen Apps
In Bezug auf die
Oine-Fähigkeit ist zu beachten, dass dies nicht für jede
App Sinn macht. Wird die App permanent mit aktuellem Inhalt versorgt, wie
es z.B. bei einer Nachrichten-App der Fall ist, so macht eine oine-fähige App
wenig Sinn. Bei einem Spiel dagegen z.B. ist keine permanente Netzverbindung
notwendig, im Gegenteil, der User erwartet, dass die App auch dann funktioniert, wenn das Gerät oine ist. Die Oine-Fähigkeit von HTML5-Apps wurde
bereits in Kapitel 4.1.2 diskutiert, mit Web Storage können ca. 5 MB an Daten
auf dem Gerät gespeichert werden. Bei nativen Apps dagegen kann der gesamte
freie Speicher des Gerätes genutzt werden. Aktuell wurde festgestellt, das iOS
5 andere Oine-Inhalte löscht, falls nicht genügend freier Speicher vorhanden
ist.[Nico11, vgl.] Ist das Datenvolumen, welches auf dem Client für die OineFähigkeit gespeichert werden soll, groÿ, so empehlt sich eine native App. Bei
kleinem Datenvolumen sollte über eine HTML5-App nachgedacht werden. Allerdings ist Web Storage nur für die Speicherung von Zeichenketten geeignet, Objekte müssten zuerst mittels JSON kodiert und beim Auslesen dekodiert werden.
JSON ist die Abkürzung von JavaScript Object Notation und ein Datenformat,
welches überwiegend für den Austausch von Daten verwendet wird.
35/ 43
5.2 Vergleich von Webapps mit nativen Apps
Benötigt die App einen
Zugri auf die Hardware des Clients, so ist ein-
deutig eine native App zum empfehlen. Der Zugri auf Hardware mittels HTML5
ist sehr eingeschränkt, es existiert z.B. eine Geolocation API, mit der die aktuelle
Position des Gerätes ausgelesen werden kann. Apple dagegen bietet APIs für den
Zugri auf z.B.GPS, 3D-, Push-, Hardware-Funktionen oder Grakbeschleunigung. Des Weiteren hat eine native App den Vorteil, dass der Zugri nicht über
eine dritte Komponente geschieht, wie es der Browser bei einer HTML5-App ist.
Des Weiteren sei noch kurz angemerkt, dass für HTML5-Apps Kenntnisse in
HTML5, JavaScript und CSS3, bei nativen Apps in Objective-C und CocoaAPI notwendig sind. Die HTML5-Kenntnisse haben den Vorteil, dass damit
plattform- und geräteunabhängige Apps erstellt werden können.
Der Zugri erfolgt bei HTML5-Apps über den Webbrowser. Der User hat die
Möglichkeit, ein "Lesezeichen auf den Homescreen zu legen. Eine native App
dagegen erscheint nach der Installation sofort auf dem Homescreen.
Nicht immer, ist eine explizite Entscheidung für oder gegen eine native oder
HTML5-App notwendig: auch eine Kombination ist möglich. Es kann eine Oberäche mittels HTML5 erstellt werden, die dann in eine native App eingebettet
wird. Die native App kann dann gerätespezische Aspekte implementieren wie
z.B. den Zugri auf Hardware. Der HTML5-Teil kann bei dieser Methode dann
für eine App für ein anderes Betriebssystem wiederverwendet werden.
Des Weiteren sei an dieser Stelle kurz angemerkt, dass diverse Tools wie z.B.
Titanium von Appcelerator oder PhoneGap von Nitobi existieren, die weitestgehend automatisiert aus Webanwendungen native Apps erstellen. Diese nativen
Apps können dann über den App Store iTunes vertrieben werden - ohne Kenntnisse der Objective-C-Programmierung.
Im nächsten Kapitel werden diese Aussagen noch einmal zusammengefasst.
36/ 43
6 Fazit
In Kapitel 5 wurden die Vor- und Nachteile von nativen und HTML5-Apps
beispielhaft für das Betriebssystem iOS beleuchtet.
Generell spricht weitaus mehr für eine HTML5-App - insbesondere die Plattformund Geräteunabhängigkeit. Auÿerdem ist wohl zu erwarten, dass die Zukunft
noch mehr Features bieten wird. Für Anwendungen, die speziell an die Hardware angepasst und für diese optimiert werden müssen - wie es z.B. bei Spielen
häug der Fall ist - empehlt sich zur Zeit eine native App für das jeweilige
Betriebssystem.
7 Ausblick
Im Folgenden wird eine Einführung in die Problemstellung gegeben, welche
Grundlage der Bachelorarbeit der Verfasserin und mit Hilfe von HTML5 und
dem Framework jQuery Mobile bearbeitet werden soll.
Zur eindeutigen Identizierung eines Produktes werden häug Barcodes eingesetzt wie z.B. an Kassen in Supermärkten. Ein Barcode besteht aus mehreren
zueinander parallelen Strichen. Diese Striche beinhalten Daten und können von
Barcodescannern eingelesen werden. Abbildung 7.1 zeigt beispielhaft einen Barcode.
Abbildung 7.1: Barcode
Auch in einem Krankenhaus spielen Barcodes eine Rolle z.B. bei der Materialnachbestellung oder der Paketverfolgung. Die Bachelorarbeit der Verfasserin
soll sich mit der Entwicklung eines mobiles Softwaresystems befassen, welches
in der Lage sein wird, Barcodes zu verarbeiten und mit anderen erfassten Daten
an ein System zu senden, welches die erfassten Daten weiterverarbeitet. Dies soll
mit einer mittels HTML5 und jQuery Mobile entwickelten Webseite geschehen,
die auf einem mobilen Gerät aufgerufen wird. Das mobile Gerät wird mit einem
externen Bluetooth-Barcode-Scanner gekoppelt. Mit diesem werden die Barco-
7 Ausblick
des eingescannt, weitere Attribute werden eingegeben - z.B. eine Stückanzahl. Ist
das Gerät mit einem Netzwerk verbunden, können die Daten direkt versendet
werden. Ansonsten werden die Daten zunächst lokal gespeichert. Sämtliche gespeicherte Daten können dann gesendet werden, falls eine Netzwerkverbindung
besteht.
Abbildung 7.2: iPod gekoppelt mit Bluetooth-Barcodescanner
39/ 43
Literatur- und Quellenverzeichnis
Quellen
[Appl11]
iOS - Cocoa Touch , http://developer.apple.com/technologies/ios/cocoatouch.html (Aufruf am 24.11.2011 13:03 Uhr)
[Bai11]
Giulio Bai: jQueryMobile First Look, Packt Publishing, 2011
[Bern89]
Tim
Berners-Lee:
Information
Management:A
http://www.w3.org/History/1989/proposal.html,
Proposal,
März
1989,
Mai 1990 (Afruf am 28. 11.2011 11:20)
[Davi12]
Matthew David: HTML5 Mobile Websites - Turbocharging HTML5
with jQuery Mobile, Sencha Touch, and Other Frameworks, Focal
Press, 2012
[Jobs10]
Steve
Jobs:
Thoughts
on
http://www.apple.com/hotnews/thoughts-on-ash/,
Flash,
April
2010
(Aufruf am 11.11.2011 08:23 Uhr)
[Lubk03]
Mark Lubkowitz: Galileo Computing - Websiten programmieren
und gestalten, 3. Auage Galileo Press GmbH, 2007
[Micr11]
IIS, http://www.iis.net/, 2011 (Aufruf am 17.11.2011 08:44 Uhr)
[Nico11]
nicolas: Aufgeräumt: iOS 5 löscht Oine-Inhalte ausgewählter
Apps auf eigene Faust, http://www.iphone-ticker.de/iphone-appsaufraumen-26485/, 14. Oktober 2011 (Aufruf am 15.12.2011 14:45)
[Pryj11]
Witold Pryjda: Apple verbannt den Entdecker einer iOS-Lücke,
http://winfuture.de/news,66475.html, 08. November 2011 (Aufruf
am 28.11.2011 14:45)
[Schw11]
Ben
Schwan:
Charlie
Miller
zeigt
Lücke
im
iOS-Codesigning,
http://www.heise.de/mac-and-i/meldung/Charlie-Miller-zeigt-
Literatur- und Quellenverzeichnis
Luecke-im-iOS-Codesigning-1374906.html
,
08.
November
2011
(Aufruf am 28.11.2011 14:45)
[SpHa11]
Markus Spiering, Sven Haiges: HTML5-Apps für iPhone und Android, 2. Auage Franzis Verlag GmbH, 2011
[Tw10]
tw:
HTML5:
Videos
einbinden,
http://tutorials.magbiz.net/programmierung/htmlprogrammierung/html5-videos-einbinden/, 23. Mai 2010 (Aufruf
am 21.11.2011 10:05 Uhr)
[Wino11]
Danny Winokur: Flash to Focus on PC Browsing and Mobile Apps; Adobe to More Aggressively Contribute to HTML5,
http://blogs.adobe.com/conversations/2011/11/ash-focus.html,
09.11.2011 5:59 (Aufruf am 11.11.2011 07:45 Uhr)
[W3C11]
W3C: Web Storage, http://dev.w3.org/html5/webstorage/,28.11.2011
(Aufruf am 14.12.2011 15:29 Uhr)
Allgemeine Literatur
[BaRiSc03]
Anatol
Badach,
Sebastian
Rieger,
Matthias
Schmauch:
Web-
Technologien Architekturen, Konzepte, Trends, Carl Hanser Verlag, 2003
[BoCeHiLi11] Bert
Bos,
Tantek
Çelik,Ian
Hickson,Håkon
Wium
Lie:
Cas-
cading Style Sheets Level 2 Revision 1 (CSS 2.1) Specication, http://www.w3.org/TR/CSS2/, 07. Juni 2011 (Aufruf am
17.11.2011 09:12 Uhr)
[Erle07]
Helmut Erlenkötter: HTML - Von der Baustelle bis JavaScript,
5.Auage Rowohlt Taschenbuch Verlag, 2007
[LaSh11]
Bruce Lawson, Remy Sharp : HTML5: Eine Einführung für Umsteiger, Addison-Wesley, München, 1. Auage, 29. Juni 2011
[Micro11]
Einführung
zu
DOM-Storage,
http://msdn.microsoft.com/de-
de/library/cc197062%28v=vs.85%29.aspx,
2011
(Aufruf
am
30.11.2011 09:03)
[OeHoSe10]
Florian
Oelmaier,
Jochen
Hörtreiter,
Andreas
Seitz:
Apple's
41/ 43
Literatur- und Quellenverzeichnis
iPad im Enterprise-Einsatz: Einsatzmöglichkeiten, Programmierung, Betrieb und Sicherheit im Unternehmen, 1.Auage Springer
Berlin Heidelberg, 16. Dezember 2010
[Pilg10]
Mark Pilgrim: HTML5: Up & Running,1. Auage O'Reilly Media,
20. September 2010
[Roth05]
Jörg Roth: Mobile Computing - Grundlagen, Technik, Konzepte,
2. Auage dpunkt.verlag, 2005
[Stein11]
Ingo Steinhaus: Das Kräftemessen hat gerade begonnen - In: Mobile
Business, 2011, H. 10, S. 26.
[Tolk97]
Robert Tolksdorf: Die Sprache des Web: HTML 4, 3. Auage
dpunkt.verlag, 1997
42/ 43
Hilfsmittel
•
TexMakerX 2.1
•
MiKTeX 2.9
•
Microsoft Visio 2010
•
Notepad++