webapps

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

description

webapps. Medien zwischen technologie und gesellschaft Prof. Dr. manfred Thaller Jonas Schophaus | Uni Köln | WS 2012. Agenda. Native versus webbasierte Apps HTML5 & CSS3 Media Queries Geolocation Offline Data Storage WebKit Animations jQuery Mobile WebApps nativ. - PowerPoint PPT Presentation

Transcript of webapps

Page 1: webapps

WEBAPPSMEDIEN ZWISCHEN TECHNOLOGIE UND GESELLSCHAFTPROF. DR. MANFRED THALLERJONAS SCHOPHAUS | UNI KÖLN | WS 2012

Page 2: webapps

AGENDA1. Native versus webbasierte Apps2. HTML5 & CSS3

1. Media Queries2. Geolocation3. Offline Data Storage4. WebKit Animations

3. jQuery Mobile4. WebApps nativ

Page 3: webapps

ALTERNATIVE?

WEBAPPS VS. NATIVE APPS

Page 4: webapps

DARUM WEBAPPSKeine Installation.Keine Updates.Ein Produkt, alle Plattformen!

Page 5: webapps

TECHNOLOGIENWEBBASIERTE APP

HTML5CSS3JavaScript

NATIVE APP

Objective C Java Visual C++...

...

Page 6: webapps

TECHNOLOGIENWEBBASIERTE APP

Eine Codebase bedient97% aller mobilen Endgeräte.

NATIVE APP

(WebKit)

Mehrere Codebases, geringerer Gesamtanteil.

Quelle: Franke/Ippen: Apps mit HTML5 und CSS3. Bonn 2012.

Page 7: webapps

NACHTEILE GEGENÜBER NATIVEN APPSEingeschränkter Zugriff auf Hardware.Schlechtere Performance.Keine OS-integrierten Funktionen: Ausführen im Hintergrund, Notifications etc.Möglicherweise schwerer zu vermarkten als Apps in zentralisierten AppStores.

Page 8: webapps

CHECKLISTE Zugriff auf geschütze

Hardwarekomponenten? Kamera, Mikrofon...

Geschwindigkeit/Performance? Grafik, Hardwarebeschleunigung

Offline-Funktionalitäten? Target Devices? Kenntnisse in relevanten

Programmiersprachen? Monetarisierung

Page 9: webapps

HTML5 & CSS3

WEB(APP) TECHNOLOGIES

Page 10: webapps

RESPONSIVE WEBDESIGNStyling angepasst an Ausgabegerät.

Page 11: webapps

RESPONSIVE WEBDESIGN

Page 12: webapps

Unterschiedliche Stylesheets für unterschiedliche Bildschirmgrößen.

CSS3: MEDIA QUERIES

Page 13: webapps

Unterschiedliche Stylesheets für unterschiedliche Bildschirmausrichtungen.

CSS3: MEDIA QUERIES

Page 14: webapps

Media Queries sind auch im Link-Tag in HTML möglich.

CSS3: MEDIA QUERIES

Page 15: webapps

CSS3: MEDIA QUERIESweitere Medienmerkmale:• aspect-ratio

• color (Farbtiefe in Bit)

• monochrome (Graustufen in Bit)

• resolution (dpi)

Page 16: webapps

GEOLOCATION MIT HTML5navigator.geolocation ermöglicht Positionsbestimmung über JavaScript.

Page 17: webapps

GEOLOCATION MIT HTML5Bewegungen tracken mit geolocation.watchPosition.

Page 18: webapps

GEOLOCATION MIT HTML5Eigenschaften des position-Objekts:• position.coords.accuracy (Radius in Metern)

• position.coords.altitude (Meter über NN)

• position.coords.altitudeAccuracy

• position.coords.heading (Winkel zu N)

• position.coords.speed

Page 19: webapps

WEBKIT TRANSITIONSBestimmen Länge und Art und Weise der Änderung von Elementeigenschaften.

Page 20: webapps

WEBKIT TRANSITIONTransition Styles:ease-in: Animation startet langsamease-out: Animation wird am Ende abgebremstease-in-out: Kombinationlinear: Animation verläuft gleichmäßig

Änderung der Eigenschaft (durch DOM-Manipulation) löst Animation aus.

Page 21: webapps

WEBKIT ANIMATIONErweiterung von webkit transition, mit der Möglichkeit Keyframes zu setzen.

Page 22: webapps

WEBKIT ANIMATION

Page 23: webapps

OFFLINE, UND JETZT? Das Cache-Manifest: • Liste mit Dateien, die offline vorgehalten werden sollen.• Max. 5 MB.

Das localStorage-Objekt:• Persistente Speicherung von Key:Value-Paaren auf dem

Gerät.

Page 24: webapps

HTML5: DAS CACHE-MANIFESTSichert Offline-Funktionalität.

Weitere Vorteile:• Geschwindigkeit.• Server-Auslastung minimieren.

Struktur:• CACHE: nach dem ersten Laden• NETWORK: unter allen Umständen vom Server• FALLBACK: wenn Ressource nicht verfügbar ist

Page 25: webapps

Beispielmanifest.

HTML5: DAS CACHE-MANIFEST

Page 26: webapps

HTML5: DAS CACHE-MANIFESTEinbindung in HTML-Dokument:

AppCache-Objekt: window.applicationCache

Page 27: webapps

HTML5: LOCAL STORAGEPersistente Speicherung auf dem Gerät.Alternative zu Datenbank auf Webserver (MySQL & Co).Key:Value-Paare.

localStorage.setItem(key, value);localStorage.getItem(key);localStorage.removeItem(key);localStorage.clear();

Analog dazu: sessionStorage.

Page 28: webapps

JQUERY MOBILE

WEBAPP FRAMEWORKS

Page 29: webapps

JQUERYFramework/Klassenbibliothek für JavaScript.

Erhebliche Erleichterung von:• Elementselektion (ähnlich CSS)• DOM-Manipulation• Realisation von Effekten und Animationen• AJAX Requests

Download: http://code.jquery.com/jquery-latest.min.js

Page 30: webapps

JQUERY SYNTAX

Codebeispiel: An alle h1-Elemente einen Button anhängen. Wie von CSS gewohnt funktionieren auch:

Page 31: webapps

JQUERY EVENTSEventHandler hinzufügen mit ‚on‘:

Unterstützte Events:dblclick, hover, mousemove, mousedown, mouseup etc.

Page 32: webapps

HTML-ELEMENTE MANIPULIERENEin- und Ausblenden von Elementen:.hide().show().toggle()

Animiertes Ein- und Ausblenden:.slideToggle() .fadeIn().slideUp() .fadeOut().slideDown() .fadeToggle()

Page 33: webapps

HTML-ELEMENTE MANIPULIERENAttribut-Funktionen:.attr({name,wert}).addClass(name).removeClass(name).toggleClass(name)

DOM-Maniupulation:.prepend(code) - HTML am Anfang des Tags einfügen.append(code) - HTML am Ende des Tags einfügen

Page 34: webapps

AJAX REQUESTSDaten von Webservern im JSON-Format laden:

Page 35: webapps

JQUERY MOBILEInterface Framework.Passend zu sämtlichen nativen UIs und Gerätegrößen.Handling von Navigation und Animation.

Einbindung von Stylesheet und jQMobile-Library:

Page 36: webapps

JQUERY MOBILEDefinition von App-Views als Div-Container mittels data-role-Attribut:

Div-Block für eine einzelne Seite.

Page 37: webapps

JQUERY MOBILE

Beispiel einer mit jQuery mobile erstellten App

Page 38: webapps

JQUERY MOBILE: INTERFACE ELEMENTEHeader & Footer:

Navbar im Footer:

Page 39: webapps

jQm-Standard-Icons

JQUERY MOBILE: INTERFACE ELEMENTE

Page 40: webapps

JQUERY MOBILE: INTERFACE ELEMENTE

Header mit Back-Button:Button mit href="index.html"

Liste:

Page 41: webapps

PHONE GAP

WEBAPPS IM APPSTORE?

Page 42: webapps

PHONE GAPOpen-Source-Framework.Wandelt HTML+JavaScript-basierte Webapp in native App um (verschiedene Plattformen).Ermöglicht einfachen Zugriff auf Kamera und Mikrofon.

Page 43: webapps

PHONE GAP: NATIVE BUILD• PhoneGap.js einbinden• PhoneGap Paket für die jeweilige Entwicklungsumgebung

installieren • Alternativ: Phone Gap Build

Page 44: webapps

PHONE GAP: KAMERAZugriff auf Kamera über navigator.camera-Objekt:

Page 45: webapps

APPLE HOMESCREEN OPTIMIERUNG<meta name="apple-mobile-web-app-capable" content="yes"/>im head ermöglicht das Verknüpfen der Website mit einem Home-Screen Icon auf iOS-Geräten.

Setzen des Icons:<link rel=„apple-touch-icon“ href=„img/iphone-icon.png“/>

Page 46: webapps

APPLE HOMESCREEN OPTIMIERUNGWeitere Optionen:

StatusBar:<meta name=„apple-mobile-web-app-status-bar-style“ content=„black“>, möglich sind: default, black, translucent

Splash-Screen:<link rel=„apple-touch-startup-image href=„img.png“>