Das Problem … die Lösung

Heute ist fast jeder im Internet unterwegs und besitzt meist sogar mehrere Endgeräte.
Es gibt zahlreiche Online-Angebote und spezielle Applikationen die auch spezielle Anforderungen abdecken.
Durch die immer schnelleren Innovations-Zyklen in der IT sind jedoch viele der bestehenden Applikationen und Web-Angebote auf einem veralteten Stand. Änderungen an diesen bestehenden Angeboten sind nur mit großem Aufwand realisierbar. Um diese und zusätzliche Nachteile zu beseitigen bestand schon
seit einigen Jahren ein wachsender Druck auf Innovation.
Um Bedarf nach neuen speziellen Online-Funktionalitäten zu befriedigen bieten sich heute die folgenden Technologien an:


Konventionaler Internet-Auftritt


Hierzu muß heutzutage keine Zeile Programmcode geschrieben werden. das wäre auch viel zu aufwendig und teuer.
Mittlerweile werden Internet-Seiten zu 99% mit Hilfe eines CMS realisiert ( CMS = Content-Management-System ) Diese haben Namen wie z.B. Joomla, Drupal, Typo3, WordPress ( womit auch diese Seiten erzeugt wurden) .
Es gibt CMS Systeme wie Sand am Meer … Alle sind ziemlich mächtig und leicht zu handhaben. Expertenwissen ist für die Erstellung eines Web-Auftrittes mit CMS Hilfe nicht mehr nötig.

  • Vorteile:
    • Schnelle, einfache und kostengünstige Erstellung.
    • Ideal für Firmen und Privatpersonen zur Informations-Darstellung.
    • Es werden viele oft kostenlose Erweiterungen (PlugIns ) angeboten, die bestimmte Standard-Funktionalitäten abdecken.
    • Aussehen, Inhalt und Erweiterungs-Logik kann sehr leicht online festgelegt werden. Text-Editoren sind integriert.
  • Nachteile:
    • Unsicher, sehr eingeschränkte oder teuere Design-Möglichkeiten.
    • Kein Zugriff auf das Gerät ( z.B. Handy-Adressen-Liste oder Kamera …)
    • Ein Zugriff auf lokale Geräte-Ressourcen ist grundsätzlich über eine Web-Seite (und deren enthaltener Programmlogik) aus Sicherheitsgründen nicht möglich.
    • Ständige Internet-Verbindung ist notwendig.
    • Die Seiteninhalte müssen zur Aktualisierung neu angefordert werden, keine automatische Aktualisierung der angezeigten Daten im Normalfall.
    • Für sich ständig asynchron zu Benutzer-Aktivitäten ändernde Inhalte nur bedingt geeignet.

Native App

Eine Native App ist ein Programm, dass für ein spezielles Gerät ( iPhone, Android, Windows-Desktop und .. und ) entwickelt wurde und auch nur auf diesem Gerät läuft.

  • Vorteile:
    • Voller Zugriff auf Geräte- Hardware und Software.
    • Keine Internet-Verbindung erforderlich, kann aber natürlich Online-Funktionalitäten enthalten.
  • Nachteile:
    • Die App läuft nur auf dem Gerät, für das sie entwickelt wurde, muss für eine neue Ziel-Plattform neu entwickelt werden.
    • Mehrkosten um verschiedene Plattformen abzudecken ( Desktop, Android, iPhone, Windows-Phone )
    • Muß explizit installiert werden, aus einem App-Shop oder per Hand (was man einem Normal-Benutzer nicht zumuten kann).

Web-App

Web-App’s sind in letzter Zeit immer beliebter geworden, weil sie im Grunde eigentlich nur Web-Seiten sind, die ja in allen aktuellen Internet-Browsern der sonst verschiedenen Geräte lauffähig sind. ( Internet-Seiten sind naturbedingt für alle gängigen Plattformen im Wesentlichen Anzeige-kompatibel ).
Warum also sollte eine solche App (Web-Seite) nicht auch spezielle Aufgaben erfüllen ? ( z.B. Adressverwaltung).

  • Vorteile : 
    • Es besteht zwar keine direkte Zugriffsmöglichkeit auf die im Gerät vorhandenen Ressourcen ( Adressen, Dateien u.s.w.), es gibt jedoch zusätzliche Möglichkeiten diesen Zugriff ohne relevanten Programmier-Mehraufwand zu realisieren.
    • Keine Installation notwendig.
    • Zeigt immer die aktuellste Version (Änderungen) an.
    • Zentrale verwaltung für Programm-Logik und Oberfläche (Erscheinungsbild) auf einem Server im Netz.
  • Nachteile:
    • Ohne eine bestehende Internet-Verbindung ist diese Art von App’s nicht lauffähig.
    • Server muß vorhanden sein.
    • Eine Web-App benötigt einen Server im Netz, der mit der lokalen Anwendung Daten austauschen kann und die Anzeige-Seiten liefert.
    • Eine Web-App ist langsam, weil die Anzeige- und Daten-Änderungen in der Regel ständig mit dem Server synchronisiert werden müssen.

Progressive Web App (PWA)

Dieser App-Typ ist die neueste Entwicklung, von Google unter Beteiligung von Microsoft forciert. Hiermit sollen die Nachteile traditioneller Lösungen eliminiert werden.

  • Vorteile:
    • Schnelle Start-Zeiten, da alle relevanten Daten/Dateien lokal gespeichert werden können, zeitaufwendige Daten-Übertragungen entfallen.
    • Gewährleistung der Lauffähigkeit auch bei nicht bestehender Internet-Verbindung.
    • Keine Installation notwendig. Es reicht ein einmaliger Besuch der entsprechenden Internet-Seite.
    • Programm-Aktualisierungen müssen nicht installiert werden, diese werden automatisch bei bestehender Verbindung geladen.
    • Falls Zugriff auf Geräte-Ressourcen benötigt wird kann die App auch direkt installiert werden.
    • Benachrichtigungen können auch bei nicht aktiv laufendem Programm übertragen und angezeigt werden. Dies gilt zur Zeit allerdings eingeschränkt nur für Android-Geräte.
    • Die Technik ist sehr neu, wird von den meisten Geräten schon unterstützt, nur Apple hinkt da etwas hinterher (sie haben sich als Innovations-Treiber vom Markt verabschiedet) Probleme macht dies jedoch keine, weil eine PWA sich auf einem iPhone schlichtweg wie eine normale Web-App verhält. …
      bis Apple, wie angekündigt auch diese Technik anbietet,
      Ein Unterschied zu einer nativen App ist für den Benutzer kaum zu erkennen. Es wird ein Icon hinterlegt über das die App gestartet wird.
    • Eine PWA kann ohne großen Zusatz-Aufwand alle Vorzüge der vorgestellten App-Typen vereinen.
  • Nachteile:
    • Keine. (mit Ausnahme der Apple-beschränkung).
    • Die Technik ist derzeit teilweise noch in einem Experimenier-Stadium, obgleich schon von einigen großen und relevanten Internet-Firmen genutzt.
    • Natürlich wird auch hier eine Server-Instanz benötigt. Dieser könnte aber auch mit wenig Aufwand lokal laufen.

Die allgemeine Zukunft der Software-Entwicklung lässt sich allgemein so absehen:

  • Weniger proprietäre Software.
  • Plattform- übergreifende kostengünstige Lösungen.
  • Langsames Aussterben der proprietären App-Shops ( Google-Play, iPhone, Win10 u.s.w ).
  • Keine Programm-Neuinstallation nach einer Fehlerbereinigung oder einer Funktions-Erweiterung.
  • Weniger Geräte-Hersteller die Ihr eigenes Süppchen kochen. ( wie ehemals Microsoft oder aktuell Apple )
  • Schnellere asynchrone Interaktionen durch modernere Kommunikations- Protokolle.
  • Und sicher auch irgendwann : CMS-Systeme die nach dem neuen Muster implementiert sind.
    Die zur Zeit bestehenden CMS-Systeme (WordPress, Joomla u.s.w.) sind Moloche, die über Jahre gewachsen sind und sich nicht einfach schnell umstellen oder neu implementieren lassen.