Top Banner
Java GUI – Quo vadis? Björn Müller, CaptainCasa
51

Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Sep 02, 2019

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Java GUI – Quo vadis?

Björn Müller, CaptainCasa

Page 2: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Björn Müller

• SAP, 1991– Anwendungsentwicklung

ArchitekturentwicklungJava Application Server

• Casabac Technologies, 2001– AJAX „Pionier“– 2005 Übernahme durch Software AG

• CaptainCasa Community, 2007– Corporate Community im Bereich „Frontends für

Unternehmensanwendungen“

Page 3: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

CaptainCasa Corporate Community

• Softwarehersteller– D / CH / A– 30 – 400 Mitarbeiter– Logistics, Financials, Human Resources,

Administration, ...• Definition und Entwicklung einer gemeinsam

genutzten Rich Client Plattform

Page 4: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

CaptainCasa Community

Page 5: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Die ganze Welt geht in Richtung HTML5.Oder?

Page 6: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Ein „typischer“ Entwickler

HTML5!!!

Page 7: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Ein „typischer“ Entwickler

HTML5!!!Eclipse!

Projektrückmeldung

Zeiterfassung

Word, Visio, Powerpoint

Mail

Page 8: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Eclipse!

Projektrückmeldung

Zeiterfassung

Word, Visio, Powerpoint

Mail

Ein „typischer“ Entwickler

HTML5!!!

NATIV

HTML

Page 9: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Native Java UI Technologien

• Es macht Sinn, sich mit nativen Java UI Technologien zu beschäftigen

– Große Menge an funktionierenden nativen Anwendungen, die existieren und die weiterentwickelt werden

– Große Anzahl an Entwicklern, die Java beherrschen und eine passende UI Technologie nutzen wollen

– Konkrete Szenarien, in denen es auch zukünftig Sinn macht, nicht in Richtung HTML(5) zu gehen

Page 10: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Java UI Technologien

• Java Swing• Java SWT (Eclipse)

• Java auf Android• Java FX

Page 11: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Java Swing und Java SWT

Page 12: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Java Swing und Java SWT

• Schnell• Stabil• „Programmierung!“ von Oberflächen• Auf allen Desktopplattformen

– Nicht auf mobilen Plattformen!• Langfristig supported

• ...es tut sich nicht viel...!

Page 13: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Java Swing versus Java SWT

• SWT ist schneller. - Stimmt nicht!– Eclipse <==> NetBeans

• Augenfälligster Unterschied– Swing: eigenes Control-Rendering

● Sieht anders aus als OS– SWT: Controls aus Betriebssystem

● Sieht so aus als OS

Page 14: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Java Swing versus Java SWT

• Einsatz von Java SWT– Im Eclipse Umfeld!

• Einsatz von Java Swing– Industrieanwendungen– Utilities– Applets / Webstart– ...– (NetBeans)

Page 15: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Java Swing und Java SWT

• Java 1.6 Update 10

– Der „Hammerrelease“ für Java Frontendentwicklung!

– Wesentliche Verbesserung der Lauffähigkeit von Applets

● Eigener Prozess● Eigene Konfiguration● Individuelle Versionierung

Page 16: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Java Swing Umfeld

• Überschaubarer Markt an hochwertigen Controls

• Eine Reihe Swing unterstützende Frameworks– JFreeChart– Jasper Reports– Swinglabs-Output

● PDF Renderer● OSM Viewer

Page 17: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Java Swing „Pain Points“

• Browserintegration

– Teilweise recht „nette“ Lösungen

SwingSWTBridgeSWTBrowser

• Animationen

Page 18: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Java SWT Umfeld

• Überschaubarer Markt an hochwertigen Controls

• Eine Menge Frameworks im Eclipse Umfeld– BIRT– EMF– ...“Eclipse Projects“

Page 19: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Java Android

Page 20: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Java Android != Java...

• Sprachumfang – OK, voll umgesetzt!

• Bibliotheken – Grrr.– java.lang.*, java.util.*, ... - OK.– Swing – Nicht umgesetzt, eigene UI Bibliothek.

– Generell: Immer wieder ärgerliche Lücken.

• Fazit: komplett eigene Java UI Implementierung notwendig.

Page 21: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Android Demo

• Demo.

Page 22: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Java Android UI Entwicklung

• Einfach...– Einfache APIs.– „Guter“ Entwicklungsprozess.– „Gutes“ Tooling.– Einfache Animationen

• Kommentare zum Einsatz– Deskriptiv & per Programm– Einsatz von Styles– Eine Reihe von Restriktionen

• Fazit– Umstieg von Swing: KEIN PROBLEM, aber...

Page 23: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Java Android UI Entwicklung

• Restriktionen, „Pain Points“

– Android Java != Java– Memory Konfiguration der Anwendung– Begrenzte Höhe des Control Trees– Multiple Scroll Level– Styles nicht zur Laufzeit änderbar– Nur ein Listener für Events

• ...wird den Stallgeruch „komme von Mini-Devices“ noch nicht ganz los.

Page 24: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Java FX

Page 25: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Java FX

• Java 1.* - Katastrophe– Eigene Scriptingsprache...

• Java 2.0 – Wunderbar!– Zurück zu Java!– Java FX als neue UI Control Library

• „Swing Pain Points“ wurden adressiert– Browser Integration– Styling– Animationen

...und in ansprechender Weise gelöst!

Page 26: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Java FX Demo

• Demo

Page 27: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Java FX UI Entwicklung

• Einfach...– Einfache APIs.– „Guter“ Entwicklungsprozess.– „Gutes“ Tooling.– Einfache Animationen. Einfaches Styling.

• Kommentare zum Einsatz– Deskriptiv & per Programm– „Sauberer“ Einsatz von Styles.– Schnell.– Viele Controls verfügbar, aber doch noch ein paar

fehlende Grund-Controls• Fazit

– Umstieg von Swing: KEIN PROBLEM

Page 28: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Java FX UI - Fragezeichen...

• Politische Positionierung– Konkurrent 1: HTML5– Konkurrent 2: Swing

• Plattform Support außerhalb der Desktop Welt– Android– iOS

Page 29: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Positionierung

Page 30: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Java native <=> HTML5

• Klare Positionierungen für „Java native“– Eigenständige Client Anwendungen.– Android > autarke Apps– Desktop > lokal laufende Clients

• Klare Positionierung für „HTML5“– Server basierte Anwendungen für anonyme Endnutzer

● „Reach“ ist entscheidend!– Installationsaufwand– Plattformabdeckung

– Zusammenarbeit mit Designern

Page 31: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

„Java native“ im Umfeld vonUnternehmensanwendungen

• Merkmale von Unternehmensanwendungen– Viele Dialoge (>> 100)– Bandbreite der Dialoge:

● Super-komplex / flexibel / ...● Einfach

– Server-seitige Logik / Regeln– Typische Nutzer

● Sachbearbeiter – massive Nutzung● Management – Reporting● Mitarbeiter – Self Service

Page 32: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

„Java native“ im Umfeld vonUnternehmensanwendungen

AJAX (>100 Frameworks)

Ruby Adobe FlexMS SilverlightHTML5 Android

JavaFX

One hype after the next

Lifecycle >> 8-15 years

LogisticsFinancials

HR

Page 33: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

„Java native“ im Umfeld vonUnternehmensanwendungen

• Mittelständische Softwarehersteller

– Kleine Teams stemmen große Anwendungen.

– Keine Zeit und erst recht keine Lust auf● Browserinkompatibilitäten● Javascript Fummeleien● ...

– Schuld ist immer der Softwarehersteller.

Page 34: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Wo schlägt das Herz der Anwendung?

ManufacturingExecution

System

Suppliers

Customers

Page 35: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Wo schlägt das Herz der Anwendung?

ManufacturingExecution

System

Suppliers

Customers

long term concepts

„mid term“concepts

Page 36: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

HTML(5) Hemmnisse

• Heterogene Browserwelt– Desktop *x, Android *x, iOS

• JavaScript• Unmenge an Framework und Hypes• Höhe der Frameworkstacks

• ...ist HTML(5) wirklich die passende Technologie für den Kernteil der Anwendung?

Page 37: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

http://html5readiness.com/

Page 38: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Valide Option

• Java Native für den Kernteil der Anwendung– Sachbearbeiterdialoge– Datenerfassung– Konfiguration– ...langfristige Stabilität!

• HTML(5) für die Außenbereiche der Anwendung– Partnerdialoge– Self Service Dialoge– Portalintegration– ...kurzfristige Reaktion!

Page 39: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Zweifelhafte Option

• Ein UI Framework als „Eierlegende Wollmilchsau“– Überforderung der Frameworks!

• HTML5– Design von einzelnen Dialogen– Scripting– Einfach!

• Java native– Style Guide für viele Masken– Programmierung– Flexibel!

Page 40: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Bessere Option

• Nutzung von jeweils adäquaten Technologien

• Native Java– „Kern“– Sachbearbeitermasken– Operative Nutzung

• HTML5– Massennutzung, Self Service– Mobile Szenarien– Partnereinbindung

Page 41: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Architektur von nativenJava Clients

Native != Fat

Page 42: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Thin or Fat Architecture

Frontend

Server

RenderingEngine

Dialog Controller

ApplicationEvents

+ Eingaben

Layout

Frontend

Server

UI Steuerung

Application

BusinessAPI

Bus.API

Bus.API

Bus.API

DialogController

Thin Client Fat Client

Page 43: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Thin or Fat Architecture

• „Thin Client“ - Vorteile– Nur Server-side Entwicklung– EIN Interface zwischen Client und Server– EIN Roundtrip pro Interaktion– Kein Client Rollout bei Änderungen/Korrekturen

– Architektonische Entkopplung des Clients vom Server

• „Fat Client Falle“– Unbewusste Entscheidung für Fat Client durch

fehlende Architektur

Page 44: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

CaptainCasa

Page 45: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Application

WebStart /Applet / Stand alone

BrowserSwing based,

generic

UI Client

Java Server Faces

Optimized for deltaRendering

JSFComponent

Library

http(s) XML Layout Definition „full“ or „delta“

Data changes & events

Page 46: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

CaptainCasa Enterprise Client

• Mini Demo...

Page 47: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Fazit

Page 48: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Fazit

Page 49: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Fazit

• Untersuchen Sie Ihre Anwendung / Ihr Vorhaben

– Wo liegt der Kern der Anwendung?– Wie langfristig ist meine Entwicklung in diesem Kern?– Wer sind die Nutzer?

– Wo muss ich langfristig denken? Wo will ich flexibel denken?

• Schließen Sie von Ihrer eigenen Toolumgebung auf das, was Sie Ihren Anwendern „antun“.

Page 50: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Fazit

• Gestatten Sie sich ein Recht auf Ihre eigene Meinung!Die UI Welt ist „volatil“ und wird es bleiben...

• Ihre Anwendung braucht kein „UI Dogma“ sondern ein stabiles User Interface!

Page 51: Java GUI – Quo vadis? - alt.java-forum-stuttgart.dealt.java-forum-stuttgart.de/jfs/2012/folien/E2.pdf · Java Android UI Entwicklung • Restriktionen, „Pain Points“ – Android

Conclusions III

• Interested in CaptainCasa Community?

• Visit our booth outside...• Visit http://www.CaptainCasa.com

– Downloads– Demos– Infos

• Contact us: [email protected]