UI-Berechnungen erfolgen nicht mehr auf dem Server, wie in JSF, Wicket etc
Mehr und mehr Client-Logik
JEE 7 zeigt diesen Trend, z.B. JSON und WebSockets
Zuerst wird für mobile Geräte wie Smartphones und Tablets geplant
App gehts?
Apps benötigen wenig Speicherplatz
Apps sind schnell heruntergeladen und blitzschnell installiert
Apps sind präzise Werkzeuge, die in der Regel genau die Funktionen bieten, die man braucht
Apps sind einfach zu bedienen und benötigen wenig Einarbeitungszeit
Apps lassen sich leicht auf den neuesten Stand bringen
Apps sind preiswert
Apps lassen sich leicht zu installieren und zu entfernen
Apps bieten die Möglichkeit, auch exotische oder ungewöhnliche Aufgaben zu lösen
Apps sind ein Vertriebskanal, den sich viele Unternehmen erstmal lange und mühsam erarbeiten müsse
Apps bieten ein direkten Monetarisierungsansatz
Technische Typen von Mobile Apps
Native
Hybrid
Web
GPU
Direkte API
Canvas, SVG
Canvas, SVG
Native UI
Ja
Emuliert
Emuliert
Verteilung
AppStore / Market
AppStore / Market
Web
Kamera
Ja
Ja mit Plugins
Teilweise
Notifications
Ja
Nur lokal
Nur lokal
Kalender / Kontakte
Ja
Ja mit Plugins
Nein
Speicher
FS
HTML5 & FS
HTML5
Offline
Ja
Ja
Eingeschränkt
Sprache
Hochsprachen
Hochsprachen / Web
Web
Flynn, die Book-Scanner-App
Flynn hilft, Buchtitel zu erfassen, zu verwalten und zu katalogisieren
Nutzer liest bequem die ISBN über den Barcode-Scanner ein
Wir behalten Überblick über gekauften Bücher
ein Tool für ein konkretes Problem ...
Flynn - Architektur
Flynn komplett lokal nutzbar
WebSQL über PouchDB
Bilder in Datenbank
offline
Synchronisation mit CouchDB möglich
Apache Cordova
Open-Source Framework um hybride Apps, basiert auf PhoneGap
2011 an Apache übertragen, aus markenrechtlichen Gründen in Apache Cordova umbenannt, PhoneGap Projekt wird derweil von Adobe weitergeführt und weiterentwickelt
Interaktion mit nativen Biblotheken über Plugins
Ist JavaScript schnell genug für RIA?
JavaScript != jQuery
"jQuery = die schmerzfreie Art mit JavaScript zu arbeiten"
JavaScript Performance
überraschend, dass Safari schneller als Chrome ist
Auch bei Flynn feststellbar
JavaScript ist Enterprise-ready mit Frameworks wie z.B. AngularJS
Framework von Google zur Entwicklung von Web Apps (2009)
basiert auf einer “Model View Controller” (MVC) Architektur
läuft komplett im Browser ab
Features:
Dependency Injection
Routing
Data Binding
Templates (HTML-Views)
Modularisierung
Ideal zur Entwicklung von grossen “Enterprise” Anwendungen
Angular Basics
niemals DOM aus Controller manipulieren
Module können andere Module wieder benutzen
Präsentation der Daten im “View” mit Hilfe von HTML
Direktiven
Templates
Direktive übernimmt eine klar umrissene Aufgabe
nötige Code ist in der Direktive gekapselt (Wiederverwendbarkeit)
Manipulation nur innerhalb der Direktove ($scope)
Lesbarkeit (kein Boilerplate Code im HTML)
Modell enthalt Daten, die mit Services befüllt werden
Services werden zur Kommunikation mit Außenwelt genutzt
Backend-Kommunikation
typischerweise REST
Controller verbindet View mit "Databinding" am Modell
Ionic
HTML5-basierendes UI Framework, dass ansprechende Frontends ermöglicht