© sdecoret/shutterstock.com, © S&S Media
Teil 1: Ein Überblick über die Cross-Plattform-Programmierung

Alle auf einen Streich


Eine große Geräte- und Systemvielfalt ermöglicht es Nutzern, auf der Hard- und Softwareplattform ihrer Wahl zu arbeiten. Briefe werden auf dem Desktop unter Windows geschrieben und E-Mails werden auf einem Smartphone unter Android beantwortet. Die Urlaubsfotos werden auf einem iPad betrachtet. Aus Entwicklersicht gilt es, diesen Zoo aus Geräten und Systemen mittels Cross-Plattform-Programmierung in den Griff zu bekommen.

Wir haben es heute mit einer sehr großen Vielfalt an Geräten und Plattformen zu tun. Im Bereich von Desktopapplikationen wird nach wie vor meistens Microsoft Windows eingesetzt. Dabei findet man nicht nur Windows 10 auf den Geräten, sondern oft werden noch die Vorversionen verwendet, und das sicher auch noch, wenn am 14. Januar 2020 der Support für Windows 7 endet. Für spezielle Aufgaben, wie zum Beispiel Grafik- und Bildbearbeitung setzen viele Anwender hingegen macOS ein. Im Bereich des Mobile Computing teilen sich Android und iOS die Marktanteile. Auch hier haben wir es mit unterschiedlichen Versionen der beiden Betriebssysteme zu tun. Bei Android kommt eine unüberschaubare Anzahl von Geräten unterschiedlichster Hersteller hinzu.

Aus Sicht der Softwareentwicklung stellt diese Vielfalt an Geräten und Systemen eine erhebliche Herausforderung dar. Webapplikationen können einen Ausweg bieten. Eine Webapplikation kommt unter folgenden Bedingungen als Lösung in Frage: Die Möglichkeiten der Webanwendung sollten genügen, um auf die Hardware des jeweiligen Geräts zuzugreifen, parallel sollten keine großen Ansprüche an die Performance der Applikation gestellt werden. Besser in die Systeme integriert sind native Applikationen. Um jedoch native Applikationen zu erstellen, muss man sich intensiv mit der Vorgehensweise für jede einzelne Systemumgebung auseinandersetzen. Programmiersprachen, Entwicklungsumgebungen, Vorgehensweisen und Bibliotheken unterscheiden sich erheblich von System zu System. Für den einzelnen Entwickler ist es kaum möglich, auf allen Systemen gleichermaßen fit zu sein. Weiterhin ist es aufwendig, ein einziges Programm für unterschiedliche Betriebssysteme umzusetzen. Es würde bedeuten, dass man die Software für jede Systemumgebung nahezu komplett neu implementieren muss. Das wäre zeit- und kostenintensiv.

Einen Ausweg stellt die geräte- bzw. plattformübergreifende Programmierung dar. Von geräteübergreifender Programmentwicklung spricht man, wenn Hardware unterschiedlicher Geräteklassen adressiert wird, das heißt, zum Beispiel Desktoprechner und Smartphone. Mit Plattformen sind heterogene Systemumgebungen, wie zum Beispiel Android und iOS auf mobilen Geräten oder Windows, Linux und macOS auf dem Desktop gemeint.

In einer fünf Teile umfassenden Artikelserie nähern wir uns dem Thema Cross-Plattform-Programmierung aus unterschiedlichen Perspektiven.

In diesem ersten Teil verschaffen wir uns zunächst einen Überblick über die Geräte und Systeme. Vom Smartphone bis hin zu Geräten mit leinwandgroßen Bildschirmen ist die Gerätevielfalt heute riesig. In den folgenden beiden Teilen geht es um die Programmierung von Apps für Android und iOS, und zwar aus einer einzigen Quellcodebasis. Wenn Sie dabei an Xamarin denken, dann ist das richtig, aber es gibt noch eine Reihe weiterer Ansätze, die wir in Teil 2 der Artikelserie im Überblick vorstellen und uns dann in Teil 3 an einigen konkreten Beispielen ansehen. Systemvielfalt herrscht nicht nur im mobilen Bereich, sondern auch auf dem Desktop. Java war lange Zeit dominierend darin, Applikationen herzustellen, die auf Windows, macOS und Linux gleichermaßen laufen. Auch hier sind die Ansätze heute vielfältiger. Im Teil 4 stellen wir diese Möglichkeiten vor und blicken im fünften und letzten Teil der Serie in die Praxis. Insgesamt ergibt sich so ein umfassender Überblick über den heutigen Stand der Cross-Plattform-Programmierung. So viel steht bereits fest: Die Technik hat hier wesentliche Fortschritte gemacht.

Der Nutzer im Fokus

Software wird für die Anwender erstellt. Diese wollen damit Probleme lösen (Textverarbeitung, Datenbanken), Spaß haben (Spiele) oder die Kommunikation vereinfachen (Chat, E-Mail) usw. Das bedeutet, dass man alle Aspekte des Nutzerverhaltens erforschen muss. Aus technischer Hinsicht ist zu klären, mit welchen Geräten und Betriebssystemen die Anwender arbeiten möchten. Heute hat man es grob mit drei entscheidenden Gerätekategorien zu tun: Desktop, Smartphone und Tablet. Mobile Systeme dominieren dabei. Das Smartphone hat man stets bei sich und kann damit jederzeit auf Apps und das Internet zugreifen.

Im Tagesverlauf ändert sich die Präferenz der Gerätekategorie. Am frühen Morgen dominiert die Nutzung des Smartphones. Hier können E-Mails und soziale Netzwerke auf neue Nachrichten überprüft werden. Aber auch über den gesamten Tagesverlauf hinweg ist das Smartphone ein Begleiter des modernen Anwenders. Für ein produktives Arbeiten setzt man nach wie vor auf größere Bildschirme und leistungsfähigere Hardware. Zu den typischen Bürozeiten wird daher hauptsächlich an Desktopgeräten gearbeitet. In den Abendstunden liegt der Höhepunkt der Nutzung bei den Tablet-PCs. Moderne Tablets sind leistungsfähig und bieten eine annehmbare Bildschirmgröße für die individuelle Unterhaltung, zum Beispiel zum Video schauen oder zum Surfen im Internet, gemütlich im heimischen Wohnzimmer.

Wir lernen daraus, dass man aus Entwicklersicht vor dem Treffen von Entscheidungen unbedingt Nutzerpräferenzen genau analysieren muss. Welche Geräte und Betriebssysteme sind zu unterstützen und was muss die Anwendung dafür spezifisch können?

Geräte- und plattformübergreifende Anwendungen

Plattformübergreifende Ansätze (Cross Platform) verfolgen das Ziel, aus einem Quellcode simultan eine Applikation für alle Zielsysteme gleichzeitig zu erstellen. Mit anderen Worten: „Write once, run anywhere“.

Ebenso wichtig ist e...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang