Florian F. Schmidt
© 2015 Florian Ferdinand Schmidt
2.Auflage 2017
Autor: Florian Ferdinand Schmidt, Traun
Lektorat, Korrektorat: Karin Schmidt, Traun
Weiterer Mitwirkender: Philip Rabler, Linz
Kommentare und Fragen können Sie gerne an mich richten:
E-Mail: mail@schmidt-florian.at
Verlag: myMorawa von Morawa Lesezirkel GmbH
978-3-99049-799-9 (Paperback)
978-3-99049-800-2 (Hardcover)
978-3-99049-801-9 (e-Book)
Die Informationen in diesem Buch wurden mit größtmöglicher Sorgfalt erarbeitet. Dennoch können Fehler nicht vollständig ausgeschlossen werden. Verlag und Autor übernehmen keine juristische Verantwortung oder irgendeine Haftung für eventuell verbliebene Fehler und deren Folgen. Alle Warennamen werden ohne Gewährleistung der freien Verwendbarkeit benutzt und sind möglicherweise eingetragene Warenzeichen. Wir richten uns im wesentlichen nach den Schreibweisen der Hersteller. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
Dieses Buch basiert auf meiner Diplomarbeit aus dem Jahre 2015. Sämtliche Kapitel in diesem Werk lehnen sich an dem Beispiel einer „Kunden (Passagier)-Informations-App“ eines österreichischen Regionalflughafens an. Wenn Sie die App zu der ursprünglichen Diplomarbeit ausprobieren möchten, finden Sie hierzu einen QR-Code (Abbildung 1) weiter unten.
Dieses Buch stellt eine grobe Zusammenfassung bzw. Checkliste dar, wie Sie eine App konzipieren, entwickeln, veröffentlichen und vermarkten (können)! Es beinhaltet viele Tipps und Hinweise und ist gerade für Neulinge in diesem Gebiet hilfreich, damit diese erfassen können, worauf man bei solchen Projekten achten muss.
Es wurde in vier Teile gegliedert:
•Projektplanung
•Implementierung
•Vorbereitung und Durchführung der Veröffentlichung sowie Marketingmaßnahmen
•Projektauswertung
Es wurde bewusst auf Programmieranteile verzichtet und nur die wichtigsten Dinge werden in Beispielen hervorgehoben. Daher richtet sich dieses Werkt vorrangig an Programmierer mit Erfahrung in objektorientierter Programmiersprachen.
An dieser Stelle möchte ich mich bei all jenen Personen bedanken, durch welche ich dieses Buch überhaupt erst in dieser Form verwirklichen konnten: DI (FH) Markus Kugler, Ingo Hagedorn, Christoph Kraska, Sepp Hohneder, Gerhard Duda, Karin und Harald Schmidt, und natürlich allen anderen, die ich hier leider nicht erwähnen konnte.
Diese Frage ist gar nicht so leicht zu beantworten. „App“ ist die Kurzform von Application. Application bedeutet Anwendung. Also ist eine App eine Computeranwendung.
Der Duden geht bei diesem Begriff schon eher auf die aktuelle Bedeutung ein:
„(. . .) zusätzliche Applikation, die auf bestimmte Mobiltelefone heruntergeladen werden kann. [5]“
Aber selbst diese Definition muss in Zukunft wahrscheinlich geändert werden. Es ist davon auszugehen, dass sich Apps weiter auf „Smart Devices“ ausdehnen werden. Unter „Smart Devices“ versteht man alle vernetzten Gadgets wie Smartphones, Tablets, Smart Watches, digitale Brillen usw [32].
Jedoch ist auch anzumerken, dass der Begriff „App“ auch zunehmend wieder für Anwendungen auf klassischen PCs Verwendung findet (vgl. Mac App Store und Microsoft Windows 10 [4])
Abschließend kann man jedoch behaupten, dass „App“ derzeit primär eine speziell für Mobiltelefone angepasste Anwendung beschreibt.
Waren früher am Markt hauptsächlich Nokia und Siemens (Mobile) vertreten, so kämpfen heute eine Unzahl von Herstellern um die Gunst der Kunden. Trotzdem haben sich hier zwei bis drei große Softwareplattformen etabliert: Android, iOS und Windows Phone.
Android (griechisch androides, menschenähnlich) wurde 2005 von Google gekauft und wird seitdem gemeinsam mit der „Open Handset Alliance“ weiterentwickelt. Es basiert auf dem Linux Kernel und verwendet bis Version 5 die Dalvik Engine als VM für die Ausführung von Apps und seit Version 5 ART (Android Runtime). Android steht für verschiedene Prozessorarchitekturen (u.a. x86 und ARM) zur Verfügung.
Google hat als Programmiersprache eine dem Java Syntax identische Sprache entwickelt. Daher können auch sehr viele Java Klassen benutzt werden und Java Entwickler können sehr leicht Anwendungen für Android entwickeln. Die meisten Schnittstellen hat Google jedoch aus Geschwindigkeitsgründen in C(++) programmiert.
Ebenfalls kann man mit dem Native Development Kit auch in C(++) geschwindigkeitskritische Anwendungen entwickeln [26].
iOS basiert auf Apples Unixoiden Betriebssystem OS X. Sie teilen sich den Darwin-Kernel sowie mehrere untere Schichten. Als GUI nutzt iOS jedoch Cocoa Touch statt Cocoa.
Als (Haupt-)Programmiersprachen werden Objective-C und Swift genutzt. Objective-C ist eine strikte Obermenge zu C. Das heißt, man kann im Code C und Objective-C fast beliebig mischen. Man kann sogar jede beliebige Programmiersprache nutzen (Es gibt sogar C# IDEs [34])
Obwohl Apple bereits im Jahr 2015 die Version 2.x von Swift veröffentlich hat (und unter die Apache-2.0-Lizenz stellte), werden 2016 immer noch viele Projekte mit Objective-C entwickelt.
Der Sourcecode wird beim Building beider Sprachen in Maschinensprache kompiliert.
BlackBerry hat zwar einen Marktanteil von unter 5% [18], ist jedoch gerade im Businessbereich (noch) sehr stark vertreten. Die aktuelle Plattform (BlackBerry 10) unterstützt neben nativen BlackBerry Apps (geschrieben in C(++)) und Web- (HTML5 abkHTMLHypertext Markup Language) Apps auch Android Apps (durch Nutzung eines Android Subsystems). Seit kurzem ist es sogar möglich, mit dem BlackBerry BAR Packager (siehe Kapitel 4.2 BlackBerry Portierung auf Seite 24). APK Dateien zu konvertieren, signieren und in der BlackBerry World offiziell einzureichen [11].
Da Microsoft 2014 das Kerngeschäft von Nokia kaufte, wurde Microsoft im Mobilen Bereich konkurrenzfähig gegenüber Android und iOS. Die Benutzeroberfläche von Windows Phone ist in sogenannten Hubs unterteilt. Diese Hubs stellen die Basis für weitere Funktionen dar, die direkt in das Betriebssystem integriert wird. Sie lassen sich auch als „Live-Kacheln“ als interaktive Kacheln auf dem Startbildschirm einbinden [23].
Windows Phone | Kernel |
Windows Phone 7 | Windows CE - Kernel |
Windows Phone 8/10 | Windows NT - Kernel |
“ Das Geheimnis des Erfolges ist die Beständigkeit des Ziels.
BENJAMIN DISRAELI (1804-1881)
Wichtig an erfolgreichen App-Projekten ist deren innovativer Charakter. Zum Zeitpunkt der Veröffentlichung der App gab es z.B. in Österreich keinen einzigen Regionalflughafen (der Flughafen Wien hat bereits seit einiger Zeit eine eigene App) mit einer eigenen App. Bis zu diesem Zeitpunkt konnten unsere Kunden nur schwierig mit ihren Smartphones die normale Website nutzen, um z.B. den aktuellen Flugplan abzurufen.
Für die Präsentation von Anwendungen eignen sich Mock-Ups (Skizzen) besonders. Sie stellen die geplanten Funktionalitäten dar, ohne auf das UI, Design und die Plattform zu stark einzugehen. Sie finden im Anhang A Skizzen Anfang 2014 auf Seite 77 ein Beispiel Mock-Up der App.