Java Anwendung mobil machen

Hallo zusammen, ich hab eine recht monolitische JSF Anwendung, welche leider nicht responsive ist. Nun möchte ich das Programm auch auf mobile Geräte verfügbar machen. Dabei habe ich folgende Überlegungen angestellt und würde mich freuen wenn ihr euren Senf dazu gebt was ihr machen würdet :slight_smile:

Wichtiges vorab: Es kann vorkommen, dass der Nutzer keinen Empfang hat (Nutzung unterirdisch) Datenerfassung muss aber dennoch gehen. Kommunikation dann eben wenn es Netz gibt.

  1. Variante Die Webapp responsive gestalten

Vorteile:

  • Neue Features sind sofort auf allen Geräten verfügbar
  • Einfache Wartung
  • Flexibel auf allen Geräten

Nachteile:

  • Wenn kein Empfang, keine Nutzung möglich (großes Manko!) Die User haben unter umständen kein Netz, müssen aber die Software nutzen können
  • Serverlast steigt mit jedem User
  • kein Zugriff auf Sensoren, Kamera, Licht usw
  1. Variante eine native App

Vorteile:

  • Daten können gesendet werden sobald Netz ist, aber auch offline eingeben werden können
  • Evtl. performanter, da nicht alle Funktionen in die App müssen, die es auf der Webapp gibt
  • Sensoren können angesteuert werden

Nachteile

  • doppelte Pflege
  • Webservice müsste geschrieben werden, damit die Webbapp Daten von der nativen App empfangen kann und andersrum

Die Software soll auf Tablets und Smartphones laufen, Gerät ist dabei eigentlich egal, wobei ich Androidgeräte mitliefern würde oder Windows-Tablets.

Derzeit tendiere ich dazu die Webapp um einen REST Service zu erweitern und eine native Android App zu schreiben. Was sagt ihr dazu? Jemand ne bessere Idee?

Das hört sich für mich so an, als wenn diese Funktion unbedingt mit rein muss. Damit sollte die Frage eigentlich schon beantwortet sein.

1 „Gefällt mir“

Nö nicht unbedingt. Wenn die Seite einmal aufgerufen wurde, dann kann die auch offline laufen. Service worker sind hier afaik das richtige:

@Tomate_Salat das verstehe ich nicht. Dein Zitat bezieht sich doch auf Variante 1 mit JSF. Wie soll das mit Service Workern funktionieren?

Ach scheiße. Ich hatte gerade eine wunderschöne Antwort geschrieben die anfing mit “Sollte auch mit JSF wunderbar funktionieren”, bis mir wieder gekommen ist, wie JSF funktioniert -.-.

Ok, ich glaub mit JSF wollte ichs dann doch nicht verwenden :-/. Kommt davon, wenn man eben mal schnell antworten will. Hatte das mit JSF nicht beachtet.

Mit JSF sieht es eher mau aus. Und wenn man nur ein “mobiles” Stylesheet baut, dann gehen viele Errungenschaften die es mit HTML5 gibt an einem vorbei.

Eine weitere Alternative ist eben dem Server einen REST Service zu verpassen und den Client dann in JavaScript zu schreiben, welcher dann am Desktop genutzt werden kann oder eben auch Mobil.

Schlechte/Keine Verbindungen kann man mit Service Worker entgegenkommen. Local Storage um Daten lokal vorzuhalten.

Das typische JSF-Rendering kann man evtl. sogar recht einfach in ein gebräuchliches JavaScript-Framework wie React oder Vue.js übersetzen.

Keine doppelte Pflege im Gegensatz zu einer nativen App.

Serverlast kann überschaubarer bleiben, da viel mehr im Client gemacht wird.

Vielen Dank für eure Hilfe, gibt nun doch ne Planänderung. Die bestehende JSF Anwenundung soll teilweise responsive werden. Wie kann man das am einfachsten bewerkstelligen? Genutzt wird noch Richfaces, würde aber das mobile auf Primefaces nehmen. Müsste man wahrscheinlich alles neu bauen richtig?

Naja, ich empfehle immer www.butterfaces.org. :slight_smile: komisch… :smiley:

Das kann Responsive und nutzt dafür Bootstrap. Es handelt sich doch um JSF2, oder? RichFaces wird auf jeden Fall nicht mehr weiter entwickelt.

Im Prinzip kannst Du neben RichFaces auch PrimeFaces oder ButterFaces verwenden und alle Seiten einzeln migrieren.

Hi Sym, hab mir das grad mal angeschaut. Erstmal muss ja ein Layout her, welches responsive ist oder? Hast du ein gutes Einsteigertutorial?

Ja, das muss wohl her. Bootstrap hilft aber stark dabei, das ganze responsive zu gestalten. Ein Einsteiger-Tutorial habe ich nicht zu Hand. Da müsste ich auch Google bemühen.

Hab mir das mal auf Primefaces angeschaut, super da steht dass das Grid aus 12 Spalten besteht. Wow, das wars, das soll dann jetzt responsive sein :smiley: Da muss ich mich mal weiter durch wurschteln, hab mal Materialize von Google genommen, da bekomm ich bisschen was responsive zusammen gepappt

Bootstrap arbeitet auch mit Grids. Da kannst Du dann (je nach Auflösung) einzelne Grids ein und ausblenden und bekommst so ein responsive Design.

Hi Sym, wenn ich einzelne Seiten migrieren möchte, geht das überhaupt wenn das drumherumliegende Layout nicht responsive ist?

Das hängt stark von dem umgebenden Layout ab. Das lässt sich pauschal leider schwer sagen.