Was macht eine App zur App?

Mir scheint, der Begriff „App“ wird in der Softwareentwicklung (und vielleicht nicht nur da) gerade etwas inflationär verwendet. Manch einer sieht hier vielleicht sogar einen Kandidaten für das „Unwort des Jahres“. Wie dem auch sei – in jedem Falle ist die Frage berechtigt, was eigentlich eine App zur App macht. Zunächst mal ist App ja nur die Abkürzung von Applikation. Also alles beim Alten? Man könnte außerdem unterschiedliche Vertreter von „Apps“ aufzählen und Web-Apps, Sharepoint-Apps, Azure-Apps, Desktop-Applikationen, Phone-Apps etc. gegeneinander vergleichen. Im Wesentlichen und in der Regel beschränkt sich die Fragestellung „Was macht eine App zur App“ aber auf die Unterscheidungskriterien von herkömmlichen Desktop Anwendungen zu Apps. Die Fragestellung ist nicht ganz so einfach beantwortet wie man vermuten würde. Letztlich handelt es sich in beiden Fällen um ein Stück Software, das dediziert für die Zielplattform geschrieben und kompiliert wurde.

Eine gerne genutzte Erklärung wäre vielleicht „Eine App läuft aufm Phone“. Auch wenn die Antwort sich erstmal richtig anfühlt, stimmt sie so nicht mehr und zwar nicht erst seit Windows 8, das jetzt auch „Apps“ unterstützt und ja bekanntlich kein Telefon OS ist. Ipads, Android-Tablets… überall laufen Apps, alles keine Telefone. Die Antwort müsste für meinen Geschmack ein klein wenig konkreter sein. Hier also mein Versuch - für mich machen drei wesentliche Aspekte eine App zur App.

Merkmal 1: Zweck, Funktionsumfang und Design

Ein wesentlicher Aspekt von modernen Apps auf nahezu allen Mobilgeräten ist die Tatsache, dass eine App in der Regel einige wenige Workflows abbildet, diese aber sehr gut. Insofern ist eine App gegenüber einer Desktop Anwendung zwar funktionsbeschränkt. Die Funktionen, die abgebildet werden, sind in der Regel aber sehr einfach zu verwenden. Dieses Kriterium ist leider etwas schwer messbar. Im direkten Vergleich zur Desktop Anwendung wird aber deutlich, dass es zutrifft. Beispiel hierfür Adobe Photoshop und Photoshop Express für Windows 8. Klar kann Express weniger – nicht zuletzt weil es kostenlos ist. Dennoch schafft es vermutlich wirklich jeder Anwender Photoshop Express zu bedienen, was bei dem „großen“ Photoshop eventuell nicht der Fall ist.

Mit diesem Merkmal erhält ein weiteres Merkmal Einzug: Das Design. Das wird insbesondere bei Windows Store Apps deutlich, aber grundsätzlich lässt sich das auf allen Plattformen beobachten. Die Apps unterliegen anderen Design-Paradigmen, als klassische Desktop-Anwendungen. Das ist auch völlig logisch und notwendig, da eine App ja typischerweise in einem anderen Kontext verwendet wird, als eine Desktop-Applikation. Für die Windows Store App Entwicklung gibt es hierzu einen separaten Bereich im Windows Dev Center, in dem Microsoft ein paar Empfehlungen zum Designen gibt und Design Patterns  von Windows Store Apps nennt.

Merkmal 2: Laufzeitumgebung und Sicherheitsmodelle

Für uns Entwickler gibt es unter der Haube noch ein paar wesentliche Merkmale: Apps verhalten sich anders, als klassische Desktop Applikationen. Eine herkömmliche Desktop Applikation kann problemlos auf sämtliche Systemressourcen zugreifen, mit allen damit verbundenen Vor- und Nachteilen. Dazu kommt, dass eine Desktop-Applikation einmal gestartet, immer läuft bis sie ordnungsgemäß beendet wird, sich selbst beendet (oder abstürzt). Das Betriebssystem hat in der Regel keine Einwände gegen eine laufende Desktop Applikation.

Bei Apps verhält sich das etwas anders: Zum einen darf eine App nicht alles – für den Programmierer der App stehen nur bestimmte APIs zur Verfügung, manche APIs, die auf dem Desktop zur Verfügung stehen, gibt es bei der App nicht. Die Verwendung mancher der APIs wiederum erfordert das Einverständnis des Benutzers. Wenn die App nicht alles darf, beeinflusst das natürlich auch die Kommunikation zwischen Apps und wirkt sich positiv auf das Schützen von Daten vor unbefugtem Zugriff aus. Hinzu kommt, dass Apps nicht ständig laufen – sondern in der Regel nur dann, wenn der Anwender sie auch verwendet, die App also sichtbar ist. Weiß das der Endanwender? Vermutlich nicht. Ist eher eine Tatsache, mit der wir als Entwickler zurechtkommen müssen.

Merkmal 3: Vertrieb & Installation

Der dritte Punkt, ist die Art und Weise, wie eine App auf den Rechner des Endanwenders gelangt. Apps werden auf Mobil-Plattformen in der Regel über einen irgendeine Art von Online-Store publiziert. Für den Endanwender liegt darin in mehrfacher Hinsicht eine Vereinfachung vor: Zum einen kann man mit einem einzigen Klick die App installieren – ohne Auswahl von Installationspfaden. Zum anderen können dadurch durch den Store-Provider die Apps auf Schadcode geprüft werden, der Endanwender muss sich also im Idealfall nicht mehr mit Viren etc. herumärgern. Für uns als Entwickler heißt das: Wir müssen unsere App in den Store/Marketplace des Anbieters laden und können dann diese Vertriebsinfrastruktur nutzen. In der Regel gibt es hierfür Ausnahmen für Unternehmen, die noch andere Vertriebs und Verbreitungsmethoden nutzen können.

Diese 3 Rahmenbedingungen machen meiner Meinung nach also einen App zur App. Hab ich was vergessen? Früher hätte man gesagt: Es ist eine App, wenn’s eine Taschenlampenfunktion gibt. Gott sei Dank sind die Zeiten vorbei…