image

Fluggast-Informations-App
Ein Multi-Plattform App-Projekt von A-Z

Florian F. Schmidt

© 2015 Florian Ferdinand Schmidt
2.Auflage 2017

Inhaltsverzeichnis

Einleitung

1. Vorwort

2. Danksagung

1. Allgemein

1.1. Begriffsdefinition App

1.2. Plattformen

2. Das Projekt

2.1. Projektablauf

2.2. Innovation

2.3. Mock Ups

2.4. Funktionen der App

2.5. Architektur

2.6. Zeitplan

3. Entwicklungsumgebungen

3.1. Betriebssystem

3.2. xCode

3.3. Android Studio

3.4. Visual Studio 2015

3.5. BlackBerry Packager

3.6. Adobe Creative Suite

3.7. Virtualisierung vs. Emulator

3.8. GIT und GitLab

3.9. MarkDown

3.10. image

4. Android Entwicklung

4.1. MVC

4.2. BlackBerry Portierung

4.3. Codedokumentation

5. iOS Entwicklung

5.1. MVC

5.2. Weitere Funktionen der IDE

5.3. Codedokumentation

6. Datenübertragung und Verarbeitung

6.1. Problemstellung

6.2. XML

6.3. JSON

6.4. REST

6.5. CSV

7. Lokalisierung

7.1. Zielgruppenanalyse

7.2. Lokalisierung vs. Übersetzung

7.3. Implementierung unter Android

7.4. Implementierung unter iOS

8. Design, UI und Tests

8.1. Do’s and Don’s

8.2. Beispiele für schlechtes UI

8.3. Softwaretest

8.4. Warum testen?

8.5. Tipps für UAT

9. Veröffentlichung

9.1. Abnahme

9.2. Der App Store

9.3. Google Play

9.4. Amazon App Shop

9.5. BlackBerry World

9.6. Vermarktung

10. Projektauswertung

A. Skizzen Anfang 2014

B. Sonstiges

Literaturverzeichnis

Einleitung

1.Vorwort

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.

Was ist dieses Buch und was ist es nicht?

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.

2.Danksagung

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.

image

Abbildung 1.: QR-Code auf die App

1.Allgemein

1.1.Was ist eine App?

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.

1.2.Android, BlackBerry, iOS, Windows Phone, . . .

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

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

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].

Windows Phone

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

2.Das Projekt

2.1.Wie läuft das Projekt ab?

Das Geheimnis des Erfolges ist die Beständigkeit des Ziels.

BENJAMIN DISRAELI (1804-1881)

2.2.Innovationen

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.

2.3.Mock Ups - Erste Skizzen

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.

2.4.Funktionen der App

Flugplan