Sie sind auf Seite 1von 66

Konzeptionierung und Entwicklung eines Prototyps

einer mySPIN Integration auf iOS Basis

Abschlussarbeit

Zur Erlangung des akademischen Grades

Bachelor of Science (B. Sc.)

Erstellt von: Haled Ranem

Matrikelnr.: 544356

Studiengang: Angewandte Informatik an der

Hochschule fr Technik und Wirtschaft Berlin

1. Prfer: Prof. Dr. Raimund Kosciolowicz

2. Prfer: B. Sc. Pascal Blunk

Zeitraum: 06.06.2017 25.08.2017


Sperrvermerk

Die vorgelegte Abschlussarbeit mit dem Titel Konzeptionierung und Entwicklung


eines Prototyps einer mySPIN Integration auf iOS Basis beinhaltet vertrauliche
Informationen und Daten des Unternehmens Calimoto GmbH.

Diese Bachelorarbeit darf nur vom Erst- und Zweitgutachter sowie berechtigten
Mitgliederndes Prfungsausschusses eingesehen werden. Eine Vervielfltigung und
Verffentlichung der Bachelorarbeit ist auch auszugsweise nicht erlaubt. Dritten darf
diese Arbeit nur mit der ausdrcklichen Genehmigung des Unternehmens zugnglich
gemacht werden.
Inhaltsverzeichnis
1. Einleitung ............................................................................. 1
1.1. Motivation ...................................................................... 1
1.2. Zielsetzung .................................................................... 2
1.3. Calimoto GmbH............................................................. 3
1.4. Aufbau der Arbeit .......................................................... 4
2. Grundlagen .......................................................................... 5
2.1. Statistiken ........................................................................... 5
2.1.1. Smartphone-Nutzer .................................................. 5
2.1.2. Sicherheit im Verkehr ............................................... 7
2.2. Frameworks fr IVI ........................................................ 8
2.2.1. CarPlay .................................................................... 8
2.2.2. Android Auto .......................................................... 11
2.2.3. MySPIN .................................................................. 13
2.3. Auswertung ................................................................. 14
2.4. MySPIN Tools ............................................................. 16
3. Anforderungsanalyse ......................................................... 18
3.1. Anwendungsumgebung .............................................. 18
3.2. Funktionale Anforderungen ......................................... 18
3.2.1. Tracking des Nutzers..................................................... 18
3.2.2. Navigation von A nach B ............................................... 19
3.2.3. Rundtour ........................................................................ 19
3.2.4. Point of Interest ............................................................. 20
3.3. Nicht Funktionale Anforderungen ..................................... 20
3.3. MySPIN Grafikoberflche............................................ 21
3.4. Auswertung ................................................................. 24
4. Implementierung ................................................................ 27
4.1. Programmierumgebung und Programmiersprache ..... 27
4.2. mySPIN Integration ..................................................... 29
4.3. Grafikoberflche .......................................................... 31
4.4. Funktionalitt ............................................................... 37
4.4.1. Focus Controller Delegate ..................................... 37
4.4.2. Navigation .............................................................. 39
4.4.3. Rundtour ................................................................ 41
4.4.4. Tracking ................................................................. 42
5. Test und Auswertung ......................................................... 44
5.1. Testkriterien ................................................................ 44
5.2. Demonstration des Prototyps ...................................... 44
5.2.1. Navigation von A nach B ........................................ 47
5.2.2. Rundtour Navigation .............................................. 49
5.2.3. Tracking ................................................................. 51
5.3. Auswertung ................................................................. 52
6. Zusammenfassung und Ausblick ....................................... 54
6.1. Zusammenfassung...................................................... 54
6.2. Ausblick ....................................................................... 54
Glossar .................................................................................... 56
Internet Quellen ....................................................................... 57
Tabellenverzeichnis ................................................................. 59
Code Sample ........................................................................... 59
Abbildungsverzeichnis ............................................................. 60
1. Einleitung
1.1. Motivation
Durch die zunehmende Benutzung voranschreitender Technik ist die Gefahr im
Straenverkehr erheblich gestiegen. Dabei ist vor allem der Einsatz mobiler Gerte
am Steuer ein Bestandteil dieser Gefahr geworden. Einem Bericht der Allianz-
Versicherung zufolge, ist jeder zehnte Unfall mit Todesfolge auf Ablenkung
zurckzufhren, meist durch Nutzung von Smartphones. Drei von vier Befragten
gaben an, whrend der Fahrt regelmig durch den Gebrauch von Technik abgelenkt
zu sein. Vor allem die Nutzung von Musik und Navigationssystemen fhren zur
Ablenkung am Steuer. Zudem wird berichtet, dass die Anzahl solcher Unflle mit hoher
Wahrscheinlichkeit in der Zukunft weiterhin ansteigen werden. [ (Allianz)]
Um ein generelles Verbot fr die Nutzung von mobilen Anwendungen am Steuer zu
verhindern, mssen vorhandene und zuknftige Applikationen so programmiert bzw.
angepasst werden, dass der Fahrer mit einem minimalen Aufwand und ohne
Ablenkung diese bedienen kann. Dies stellt die Entwickler von mobilen Anwendungen
vor neue Hrden.

Aus diesen Anforderungen heraus erwies sich besonders ein Konzept als sehr
vielversprechend: Die Integration von Applikationen in In-Vehicle Infotainment-
Systemen (IVI-Systemen), bei der das Smartphone an das System angebunden wird.
Die Mglichkeit, Funktionalitten der Applikation mithilfe einer solchen Integration ber
das IVI-System zu nutzen, resultiert in einer sicheren und einfacheren Bedienung
whrend der Fahrt. Eine durch das IVI-System ermglichte Integration der App erhielt
viel Zuspruch, wodurch eine anhaltende Weiterentwicklung der Systeme und
Technologien begnstigt wurde. Frameworks wie CarPlay, Android Auto oder mySPIN
wurden entwickelt, um Entwicklern die Integration sowohl ihrer bestehenden, als auch
neuen Applikationen in das IVI-System zu erleichtern. Die Entwickler mussten lediglich
fr ihre Anwendungen eine neue Grafikoberflche entwerfen und diverse
Funktionalitten, je nachdem ob sich das Fahrzeug in Bewegung befindet,
einschrnken. Die Systeme knnen sogar dazu benutzt werden, um beispielsweise
bestimmte Funktionen innerhalb der Navigation zu verbessern. Dies wird erreicht,
indem die IVI-Systeme GPS-Informationen des Fahrzeuges sammeln und diese fr
eine genauere Lokalisierung des Nutzers verwenden.

1
1.2. Zielsetzung
Das Ziel der Arbeit besteht darin, ein Konzept einer mySPIN-Integration in Form eines
appbasierten Prototyps zu entwerfen und umzusetzen. Hierfr soll das von der Firma
Bosch entwickelte Framework mySPIN genutzt werden. Dies soll im Rahmen eines
Projektes bei der Firma Calimoto entwickelt werden. Der Prototyp soll dabei eine
Schnittstelle bilden, ber die eine Anwendung auf einem Smartphone mit dem IVI-
System eines Motorrads interagieren kann.

Der Prototyp soll die Nutzung der Applikation Calimoto auf einem Motorrad whrend
der Fahrt ermglichen, ohne dass der Fahrer selbst und andere Teilnehmer im
Straenverkehr einer zustzlichen Gefahr ausgesetzt werden. Dabei wird die
Anwendung ber die mySPIN-SDK (Software Development Kit) auf das IVI-System
projiziert. Zudem sollen bestimmte Funktionen der Applikation limitiert werden, sodass
der Fahrer diese whrend der Fahrt benutzen kann. Beispielsweise soll der Fahrer
eine Route, welche er vorher in der Applikation oder auf der Webseite erstellt hat,
auswhlen knnen. Jedoch soll die Erstellung einer neuen Route whrend der Fahrt
nicht mglich sein. Die Navigation zwischen einem Start- und Zielpunkt soll wiederum
Bestandteil der verfgbaren Funktionalitten sein. Der Prototyp soll hierzu in der Lage
sein, auf Daten des Motorrads zuzugreifen und diese auszuwerten. Diese Daten
beinhalten beispielsweise Geschwindigkeit, Position (GPS), Tankfllstand und
Motordaten. Je nach Zustand und Geschwindigkeit knnen dann Funktionen
freigeschaltet oder limitiert werden. Die Nutzung der GPS Daten kann dann zu einer
schnellen und effizienten Lokalisierung verhelfen, da die Daten des Motorrads, im
Vergleich zum Smartphone, genauer und weniger stranfllig (wenig Interferenzen)
sind. Ein ebenfalls nicht unerheblicher Faktor ist das User Interface, welches durch
einen simplen Aufbau einfach bedienbar sein sollte. Als Resultat erhlt der Fahrer die
Mglichkeit, sich vllig auf das Fahren des Motorrads konzentrieren zu knnen.

Am Ende der Arbeit soll ein funktionsfhiger Prototyp entwickelt und vorzeigbar sein.
Bei diesem handelt es sich allerdings nicht um eine autonome Anwendung, sondern
vielmehr um eine Erweiterung der Calimoto Applikation. Ohne diese ist der Prototyp
nicht lauffhig.

2
1.3. Calimoto GmbH
Calimoto ist ein junges Start-up-Unternehmen, welches 2016 gegrndet wurde. Die
Anzahl an Mitarbeitern bewegt sich in der Grenordnung von ca. 10-15 Mitarbeitern,
wodurch das Start-up zur Gruppe der Kleinunternehmen zhlt. Calimoto wurde mit
dem Ziel gegrndet, eine Navigationsanwendung speziell fr Motorradfahrer zu
entwickeln. Diese ist bereits in mehreren Lndern mit einer Android Version im Play
Store vertreten.

Die gleichnamige Applikation Calimoto ist die charakteristische Anwendung


Calimoto's, auf die sich das Unternehmen sttzt. Sie ist die erste multifunktionale
Anwendung speziell fr Motorradfahrer. Der selbstentworfene Routing-Algorithmus
ermglicht dem Nutzer eine Routenplanung, bei der kurvenreiche Strecken gegenber
krzeren und geradlinigen Strecken bevorzugt werden.

Das Produkt unterteilt sich dabei in eine Hauptanwendung, welche fr verschiedene


mobile Systeme, wie Android oder iOS entwickelt wird und eine Webanwendung. Als
dritte Komponente ist eine Community-Plattform geplant, welche eine zentrale
Kommunikation zwischen Nutzern ermglichen soll. Langfristig ist vorgesehen, dass
diese Dienste miteinander interagieren und wichtige Daten austauschen knnen.

3
1.4. Aufbau der Arbeit
Nach einer detaillierten Beschreibung der Aufgabe und der Ziele wird im folgendem
Kapitel ein allgemeiner Einblick in die Grundlagen gegeben. Dies ist notwendig, da fr
die sptere Implementierung verschiedene Funktionalitten, die auf dieser
theoretischen Basis aufbauen, genutzt werden. Dabei werden auch verschiedene
Frameworks, welche wichtige Funktionalitten anbieten vorgestellt. Vor allem die
Funktionsumfnge, Kriterien und der Aufbau der Frameworks werden dabei vorgestellt
und beschrieben. Nach der Vorstellung werden die Frameworks darauf untersucht, ob
sie fr den zu entwickelnden Prototyp geeignet sind.

Im ersten Teil des 2. Kapitels werden Statistiken zur Nutzung von iOS und Android
und zur Sicherheit im Verkehr bei Benutzung eines Smartphones dargelegt. Im 2. Teil
wird das mySPIN-SDK vorgestellt. Dabei wird zustzlich auf die in der SDK
mitgelieferten Simulatoren eingegangen, da diese spter fr das Testen wichtig sind.
Am Ende des Kapitels werden die einzelnen Frameworks evaluiert und zustzliche
mySPIN Werkzeuge vorgestellt.

In Kapitel 3 wird ermittelt welche Anforderungen seitens mySPIN an der bereits


existierenden Calimoto Applikation gestellt werden. Dabei wird geklrt, welche
Funktionen erhalten bleiben knnen und welche eventuell verndert oder gar entfernt
werden mssen. Allgemeine als auch grafische Vorgaben werden ermittelt und
definiert.

Kapitel 4 beschftigt sich mit der Implementierung der in Kapitel 3 definierten


Anforderungen. Es wird genau beschrieben, wie die mySPIN-SDK in die Calimoto
Applikation integriert wird. Anfangs wird jedoch die gewhlte Programmiersprache und
die zugehrige Programmierumgebung, die bei der Implementierung benutzt werden,
vorgestellt.

Im 5 Kapitel werden Testkriterien definiert und die im vorherigem Kapitel


implementierten Funktionen getestet. Zudem findet Abschlieend eine Auswertung
der getesteten Funktionen statt.

Das letzte Kapitel wird die Arbeit, den Prototypen einbegriffen, beurteilen und
auswerten. Am Ende der Arbeit werden Verbesserungsvorschlge und ein Ausblick
auf mgliche Erweiterungen gegeben.

4
2. Grundlagen
Dieses Kapitel soll einen Einblick in fundamentale Aspekte, welche fr das Verstndnis
und die Entwicklung des Prototyps notwendig sind, geben.

Die erste Hlfte des Kapitels liefert dabei wichtige Informationen, die aufzeigen,
weshalb die Entwicklung von Frameworks, welche die Kommunikation zwischen
mobiler Anwendungen und Fahrzeugen ermglichen, notwendig ist.

Im darauffolgenden Abschnitt werden die Frameworks CarPlay, Android Auto und


mySPIN, welche Funktionalitten in Bezug auf In-Vehicle Infotainment Systemen zur
Verfgung stellen, behandelt und ihr Funktionsumfang vorgestellt. Im Anschluss
werden die Qualitten der 3 Frameworks evaluiert.

Den Abschluss des Kapitels bildet die Vorstellung des fr den Protoyp wichtigen
Frameworks mySPIN2Wheeler, welches essentielle Funktionen fr die Entwicklung
des Prototyps zur Verfgung stellt.

2.1. Statistiken
Im folgenden Abschnitt werden einige Statistiken vorgestellt, welche zeigen sollen, wie
sich der Smartphone Markt verndert, wchst und welche Auswirkungen dieser vor
allem im Straenverkehr ausbt.

2.1.1. Smartphone-Nutzer
Die Erfindung des Smartphones ist eines der grten Errungenschaften des 21.
Jahrhunderts. Diese hat und wird weiterhin unser Leben beeinflussen und ist aus dem
verbreiteten Alltag nicht mehr wegzudenken.

Mobile Gerte haben durch ihre Portabilitt bereits den Computer als Medium fr
Unterhaltung und Informationsbeschaffung abgelst. Dies geschah laut der Webseite
The Telegraph im Oktober 2016, als weltweit ca. 51.26% der Menschen mobile
Gerte und nur 48.74% der Menschen Desktop Computer fr den Zugriff auf das
Internet genutzt haben [ (Telegraph)]. Dass die Zugriffe auf das Internet ber mobile
Gerte weiterhin steigen, zeigt zustzlich eine von Cisco erstellte Statistik.

5
Sie behauptet, dass im Zeitraum von 2015 bis 2020 die Anzahl der Besitzer von
mobilen Gerten von ca. 4.8 Milliarden auf ca. 5.5 Milliarden ansteigt. [Abbildung 2.1]
Sowohl die Bandbreite als auch der Traffic werden sich somit auch weiterhin
erhhen.

Abbildung 2.1 Mobiler Datenverkehr [CISCO]

Mit 5,5 Milliarden Nutzer bzw. 69% der Weltbevlkerung haben im Jahr 2020 mehr
Menschen ein Smartphone, als Menschen Zugang zu Strom (68%), Wasser (45%) und
Autos (36%) [Abbildung 2.2].

Abbildung 2.2 Wachstum des Smartphone Marktes [Cisco]

Auch in Deutschland ist eine hnliche Tendenz des steigenden Stellenwerts von
mobilen Gerten zu erkennen.

6
Mit 54 Millionen Nutzern ab einem Alter von 14 Jahren hat Deutschland eine relativ
hohe Anzahl an mobilen Nutzern [ (IpTikr)]. Alle der Befragten gaben an, mit ihrem
eigenen Smartphone zu telefonieren, 68% gaben an, mit Ihrem Smartphone soziale
Netzwerke zu nutzen und knapp dahinter wird das Navigationssystem benutzt von
64% der Befragten genutzt [Abbildung 2.3].

Abbildung 2.3 Umfrage, welche Funktionen werden am hufigsten benutzt [ (Statista/Bitkom)]

Durch die dargelegten Zahlen wird verdeutlicht, wie sehr sich der Markt um
Smartphones steigern wird. Dies wird dazu fhren, dass das Smartphone sich
weiterhin vermehrt in der Gesellschaft etablieren wird. Aber leider nicht immer zum
Positiven. Vor allem im Straenverkehr knnte dies sehr deutlich zu sehen sein. Im
nchsten Abschnitt wird auf das Thema Sicherheit im Verkehr dahingehend
ausfhrlich eingegangen.

2.1.2. Sicherheit im Verkehr


Durch die steigende Nutzung von mobilen Gerten erhht sich auch die Ablenkung
durch diese im Straenverkehr. Die leichtfertige Nutzung von Smartphones whrend
der Fahrt kann fr alle Beteiligten schwerwiegende Folgen haben, welche hufig
sowohl fr den Verursacher als auch fr die anderen Beteiligten tdlich sein knnen.
Dabei ist Gem 23 Abs.1a [ (Bundesministerium)] die Nutzung von Smartphones
whrend der Fahrt verboten, sofern diese die Aufmerksamkeit des Fahrers einnimmt.

Bis vor kurzem war Alkohol der Hauptgrund fr die meisten Unflle. In einer aktuellen
Umfrage der Allianz gaben allerdings 60% der Fahrer, die in den letzten drei Jahren
einen Unfall hatten, an, dass dieser auf Ablenkung durch Smartphones zurckzufhren
war [ (Allianz)].

7
Auch an den Zahlen des letzten Jahres ist deutlich ersichtlich, dass diese Behauptung
keine bertreibung ist. Von den ca. 3500 Todesfllen 2016 waren 256 auf
Alkoholisierung und etwa 350 auf Ablenkung zurckzufhren [ (Allianz)].

Grund der Ablenkung war in 59% der Flle die Radiofunktion, in 39% der Flle die
Navigationssysteme, in 24% der Flle das Lesen von Textnachrichten und 15 % der
Ursachen bildete das Schreiben auf dem Smartphone [ (Allianz)].

An den Umfragen der Allianz sieht man ganz deutlich, wie sehr mobile Gerte die
Fahrer ablenken. Frameworks wie CarPlay, Android Auto und MySPIN werden dieses
Problem auch hchstwahrscheinlich nicht zu 100% lsen knnen, allerdings sind diese
eine moderne Herangehensweise, diese Problemstellung effektiv zu begrenzen.

2.2. Frameworks fr IVI


In diesem Abschnitt werden wie eingangs erwhnt verschiedene Frameworks
vorgestellt, die verwendet werden, um Applikationen in IVI-Systemen zu integrieren.
Es steht aber bereits fest, dass fr die Implementierung das mySPIN Framework
verwendet wird.

2.2.1. CarPlay
CarPlay ist ein von Apple speziell entwickeltes Framework, das es ermglicht, ein
iPhone mit einem Head Unit Display (HUD)/IVI-System zu verbinden. Das Framework
wurde auf der WWDC (Apple Worldwide Developer Conference) angekndigt und im
Mrz 2014 verffentlicht. CarPlay soll so von den Autoherstellern in das IVI-System
integriert werden, sodass der Nutzer das System per Kabel mit dem iPhone verbinden
kann. Zuknftig soll dies auch kabellos ber Funk mglich sein. Laut Apple soll
CarPlay es dem Nutzer ermglichen, sein iPhone whrend der Fahrt klger und
sicherer zu benutzen ( CarPlay is a smarter, safer way to use your iPhone in the
Car.) [ (APPLE)]. So soll es mglich sein, whrend der Fahrt Anrufe ttigen,
navigieren, Nachrichten empfangen bzw. versenden und Musik hren zu knnen, ohne
dabei den Nutzer groartig vom Fahren abzulenken. CarPlay bietet zudem ein bereits
integriertes Navigationssystem mit dem Namen Maps an, welches dem Nutzer
anhand gesammelter Daten Adressen anzeigt, die er am wahrscheinlichsten
auswhlen wird. Diese Daten werden sowohl ber das Adressbuch, ber
Emailverkehr, ber geschriebene und erhaltene Textnachrichten als auch ber
Kalendereintrge gesammelt und ausgewertet. Mittlerweile wurde CarPlay in mehr als
200 Automodellen von verschiedenen Autoherstellern integriert. [ (APPLE)]

Dem Nutzer ist es dabei mglich, auf verschiedene Arten durch das Mensystem zu
navigieren. So ist die Steuerung per Sprache, per Touchscreen und mit einem
Zahnrad, dem sogenannten Knob, mglich.

8
Dabei steht es dem Entwickler frei zu entscheiden, welche von den oben genannten
Mglichkeiten er in seiner Applikation integrieren mchte.

Die Navigation mit natrlicher Sprache wird mit Siri, dem hauseigenen
Sprachassistenten von Apple, ermglicht. Siri kann vom Fahrer mit einem Knopf am
Lenkrad aktiviert werden, wodurch der Fahrer nur geringfgig sich auf die
Programmsteuerung konzentrieren muss. In CarPlay erkennt Siri nur eine bestimmte
Anzahl an Sprachbefehlen.

Diese sind dabei in 3 Kategorien unterteilt: die Erste ist fr Applikationen von
Autoherstellern, welche speziell auf die eigenen Autos zugeschnitten sind. Solche
Anwendungen knnen diverse Vernderungen durch bestimmte Befehle im Auto, wie
z.B. Sitzwinkel ndern, vornehmen. Die zweite Kategorie ist fr Messenger
Applikationen gedacht, die Befehle annehmen wie versende Nachricht oder lese
Nachricht vor. Die Dritte ist fr VoIP (Voice over Internet Protocol) Applikationen
vorgesehen, welche mit dem Befehl starte Anruf Telefongesprche initiieren knnen
[Abbildung 2. 4] .

Abbildung 2. 4 Untersttzte Ausfuhrmglichkeiten[ (Apdev)]

Das im Auto eingebaute Display lsst eine Steuerung per Touch zu. Generell wird hier
allerdings zwischen Displays mit einer hohen und einer niedrigen Genauigkeit
unterschieden. Hohe Genauigkeit bedeutet, dass das Display schnell und genau auf
die Interaktion des Nutzers reagiert, was eine bessere Interpretation des Touches,
also der Nutzergeste, zulsst. Dies ermglicht wiederrum mehr Optionen bei der
Steuerung der Software. Bei einem Display mit einer niedrigen Genauigkeit sind nur
Gesten wie das Tap, womit eine Auswahl getroffen wird, Double Tap fr eine
Zoomfunktionalitt und Tap and Hold, mit der man zum Beispiel vorspulen kann,
verfgbar.

9
Displays mit einer hheren Genauigkeit ermglichen zustzlich die Erkennung der
beiden Gesten Flick und Drag, wobei Flick gleichzusetzen ist mit dem Scrollen und
Drag das Verschieben von Objekten auf dem Display darstellt [Abbildung 2.5].

Abbildung 2.5 Gesten Erkennung [ (Apdev)]

Herkmmliches Navigieren ber Knpfe oder Zahnrder, die an den Seiten des
Displays angebracht sind, ist weiterhin mglich. Wichtige Funktionen wie das
Telefonieren oder das Navigieren sind ohne viel Aufwand direkt mit einem Knopf zu
erreichen [Abbildung 2.6].

Zudem bietet CarPlay Zugriff auf Daten aus dem Fahrzeug. Wetter-,
Geschwindigkeitsmessungs-, Radioempfangs- und GPS-Daten knnen ausgelesen,

Abbildung 2.6 Aussehen des IVI-Systems [ (Apdev)]

ausgewertet und anschlieend in die eigene Applikation integriert werden. Es gilt


allerdings zu beachten, dass dieser Informationsfluss aus dem Fahrzeug jederzeit
unterbrochen werden knnte und die Applikation vorbergehend eventuell auf
zwischengespeicherte Daten oder im Optimalfall auf alternative Quellen zurckgreifen
sollte. So ist ein Beispiel der Verlust des GPS-Signals, was hufig innerhalb eines
Tunnels auftreten kann.
10
In einem solchen Fall sollten GPS basierte Anwendungen das Ausbleiben eines
Signals bestmglich kompensieren, ohne dass der Fahrer dies mitbekommt.

Um CarPlay in einer Applikation zu integrieren, muss sich z.B Calimoto fr das MFI
(Made For iPhone/iPad/iPod) Programm von Apple anmelden. Ohne eine solche
Lizenz fr das Programm ist die SDK von CarPlay nicht zugnglich.

2.2.2. Android Auto


Apples Konkurrent Google, hat mit Android Auto ebenfalls ein eigenentwickeltes
Framework an den Markt gebracht. Im Gegensatz zu CarPlay richtet sich dieses
Framework allerdings ausschlielich an Android Nutzer. Es gibt allerdings zwei
Mglichkeiten wie Android Auto verwendet werden kann, wobei in beiden Fllen die
Android Auto Applikation aus dem Play Store gedownloadet werden muss. Die erste
Methode besteht daraus, dass exakt wie bei CarPlay das Smartphone ber ein Kabel
mit dem IVI-System verbunden wird. Ob zuknftig dies auch kabellos zu
bewerkstelligen sein wird, ist nicht bekannt, da Google noch keine uerung in diese
Richtung gettigt hat. Die Displays der IVI-Systeme sind hier jedoch die gleichen wie
bei CarPlay und auch bei der Navigation sind kaum Unterschiede festzustellen. Die
zweite Methode bietet die Mglichkeit das Smartphone als IVI-System zu benutzen.
Diese Methode ist besonders vorteilhaft, da fast ausschlielich neue Automodelle,
welche ab dem Jahr 2016 fabriziert wurden, CarPlay oder Android Auto im IVI-System
integriert haben. Somit haben Fahrer, die ltere Modelle besitzen trotzdem die
Mglichkeit Android Auto zu nutzen. Die Richtlinien von Android Auto sind jedoch sehr
spezifisch was die Gestaltung betrifft. Buttons, andruckbare Bilder oder Views sind mit
einer Mindestgre von 72 x 72 dp zu definieren und diese drfen sich nicht
berlappen. Vorgaben zum Kontrast, zur Typografie, zum Scroll-Verhalten, zu
Animationen und zur generellen Anwendungsgestaltung mssen befolgt werden.

Kontrast ist fr die Fahrer besonders wichtig, da ihre Aufmerksamkeit auf das Fahren
fokussiert bleiben sollte. Somit muss der Kontrast so ausgewhlt werden, dass der
Fahrer sofort beim ersten Blick alles Wichtige erfasst. In Abbildung 2.7 wird ein Beispiel
gezeigt wie Text und Icons am besten dargestellt werden sollten.

Abbildung 2.7 Kontraste Beispiel [ (GogDev)]

11
Die Applikation sollte auch mglichst jeweils ein Design fr den Tag als auch fr die
Nacht implementieren. Whrend tagsber das Design sowohl positiv (dunkler Text auf
einem hellen Hintergrund) als auch negativ (heller Text auf dunklem Hintergrund)
entworfen sein, so muss allerdings nachts eine negative Farbwahl umgesetzt werden.
So wird ein Optimale Lesbarkeit erreicht [Abbildung 2.8].

Abbildung 2.8 Tag/Nacht Modus [ (GogDev)]

Textanzeigen sollten auch nicht berladen wirken. Ein genereller Richtwert ist, dass
Texte nicht lnger als 120 Zeichen sein sollten. Lange Texte sollten gemieden werden
da der Fahrer sonst zu sehr sich auf das Lesen konzentrieren muss und somit die
Gefahr der Ablenkung steigt [Abbildung 2.9].

Abbildung 2.9 Text Beispiel [ (GogDev)]

Googles Android Auto ist fr jeden Entwickler frei zugnglich. Dabei muss der
Entwickler nur wenige Schritte durchfhren um die SDK zu verwenden. Auf der
Webseite fr Android Entwickler sind diese Schritte ausfhrlich beschrieben.

12
2.2.3. MySPIN
MySPIN wurde von Bosch SofTec entwickelt und bietet ebenfalls die Mglichkeit, das
Smartphone mit dem im Fahrzeug integrierten IVI-System zu verbinden. Sobald das
Smartphone sich erfolgreich mit dem IVI-System verbunden hat, wird es fr den Fahrer
nicht mehr bedienbar und alle Aktionen mssen vom IVI-System ausgehen. Das
System bermittelt dann diese Aktionen an das Smartphone, welches wiederrum die
auszufhrende Funktion berechnet und das Ergebnis an das IVI-System
zurcksendet. Dabei knnen die Daten entweder ber USB oder WLAN ausgetauscht
werden [Abbildung 2.10].

Abbildung 2.10 Verbindung eines Smartphone mit dem IVI System [ (MSGuid)s. 7]

Die Kommunikation zwischen der Applikation und dem IVI-System wird dabei von zwei
Komponenten bernommen, der mySPIN.SDK, welche von der Applikation integriert
werden muss und dem mySPIN.IVI.Core, welches ein Teil des IVI-Systems ist. Das
mySPIN.IVI.Core verwaltet dabei die Kommunikation. Sie nimmt Aktionen des Fahrers
entgegen und sendet diese an das Smartphone [Abbildung 2.11].

13
Abbildung 2.11 Verbindung eines Smartphone mit dem IVI System Technisch [ (MSGuid)s. 7]

Das besondere an mySPIN ist dabei, dass die mySPIN.SDK sowohl auf iOS als auch
Android implementiert werden kann. Dies ist von groem Vorteil fr Unternehmen,
welche ihre Anwendungen auf mehreren Plattformen anbieten mchten, da sie als
Resultat nicht mehr mehrere Frameworks bentigen, um verschiedene
Betriebssysteme anzusprechen. Die Entwickler sparen viel Zeit und
Wartungsaufwand, wenn sie nur ein Framework erlernen und implementieren mssen.

MySPIN bietet ebenfalls die Mglichkeit, dem Nutzer die Steuerung mittels Knpfen,
Knobs (Drehrad) und dem Touchscreen zur Verfgung zu stellen. Vorgaben zur
grafischen Gestaltung und Bedienbarkeit sind mittels Guidelines vorgegeben, in
Kapitel drei genauer beschrieben werden. Diese Vorgaben sind jedoch je nach
Fahrzeug Typ unterschiedlich. Denn mySPIN untersttzt auch Motorrder und fr
diese gelten auch andere Guidelines. So ist es den Motorradfahrern nicht mglich, sich
mit Touch durch das Menu der App zu navigieren. Die Fahrer haben nur die
Mglichkeit sich mit dem Knob (Drehrad) und zwei Knpfen, dem Zurck und Ok
Knopf zu navigieren.

Zudem bietet mySPIN Zugang zu vielen Daten aus dem Motorrad wie GPS,
Geschwindigkeit, Schrglage, Tankfllstand und der sogenannten Moving Flag, ein
Wert der anzeigt, ob sich das Fahrzeug bewegt oder stillsteht.

MySPIN ist momentan noch in der Entwicklung und ist nur unter einer Zusammenarbeit
mit Bosch SofTec zugnglich.

2.3. Auswertung
Fr Entwickler, die Ihre Applikationen auf dem Automarkt bringen wollen stehen diese
drei oben genannten Frameworks zur Verfgung. MySPIN hat zwar den Vorteil, dass
es sowohl Android als auch iOS untersttzt, allerdings ist dieses Framework noch in
der Entwicklung und leidet neben kleineren Krankheiten zustzlich noch unter einer
geringen Verbreitung.

14
Android Auto war 2016 in ca. 1.15 Millionen Autos integriert [ (Welt)]. Jedoch bietet es
die Mglichkeit, das Smartphone in ein IVI-System umzuwandeln. Die Anzahl der
Nutzer knnte demnach weitaus grer sein als die oben genannte. Google hat jedoch
das Problem, dass groe Autohersteller dazu neigen, Android Auto abzulehnen. BMW
hat angegeben, dass sie Android Auto nicht in Ihren Autos integrieren werden, da
Google die Grafikoberflche des IVI-Systems zu sehr verndere. Zudem hat Porsche
auch die Integration von Android Auto in neuen Modellen unterbrochen. Das Google
zu viele Daten haben wollte, wurde dementiert [ (Welt)], als Grund wurde angegeben
dass die meisten Porsche-Fahrer iPhone-Nutzer sind. Nichts desto trotz gibt es
auch Meinungen, nach denen Google als Gegenleistung fr Android Auto zu viele
Daten von den Autoherstellern verlangt. Schulte-Hillen von Infoware sagte Meinen
Informationen nach verschenkt Google aber schon heute Android Auto nicht sie
verlangen im Gegenzug nach einer Menge Daten.[ (Welt)]. Autohersteller wollen
hingegen die Kontrolle ber ihre IVI-Systeme behalten und wrden dies verweigern.

CarPlay hat mit 1.41 Millionen (2016) [ (Welt)] einen kleinen Vorsprung, aber wie oben
erwhnt hat Android Auto wahrscheinlich doch mehr Nutzer durch die mobile Version
des IVI-Systems. Dass Apples CarPlay in mehr Autos integriert wurde liegt
hchstwahrscheinlich an den Problemen das Google mit den Autoherstellern hat.

Nichts desto trotz installieren die meisten Hersteller sowohl Android Auto als auch
CarPlay, da nicht auf eine gesamte Plattform verzichten werden mchte. Dieser Markt
soll bis 2020 extrem wachsen. So sollen bis dato ca. 100 Millionen Autos mit Android
Auto und ca. 93 Millionen mit CarPlay ausgestattet werden [ (Welt)]. Zustzlich werden
weitere Systeme wie mySPIN als auch direkt von Autoherstellern, welche sich nicht
nach den strikten Vorgaben von Google und Apple richten wollen, entwickelte
Frameworks auf dem Markt verffentlicht. Aber auch wenn der Markt wachsen wird,
so gibt es dennoch viele Probleme die gelst werden mssen. Das Fehlen von
Standards und verschiedene Displaygren von verschiedenen Herstellern tragen
dazu bei, dass Entwickler lnger brauchen um Ihre Applikationen fr diesen Markt
anzupassen, zu optimieren und bereitzustellen. Dies steigert die Entwicklungszeit und
vor allem die Ausgaben der einzelnen Unternehmen.

Die Entscheidung, dass fr den Prototyp das mySPIN Framework genutzt wird,
begrndet sich darin, dass Calimoto keine andere Alternative auer mySPIN zur
Auswahl hat. Zwar sind sich alle drei Frameworks hnlich und unterscheiden sich nicht
gravierend voneinander, jedoch ermglicht lediglich mySPIN es zurzeit Entwicklern,
ihre Applikationen fr Motorradfahrer bereitzustellen. Es bleibt jedoch zu erwhnen,
dass die ersten Modelle, welche mySPIN integriert haben, voraussichtlich erst ab 2018
auf dem Markt erscheinen werden.

Abschlieend kann man sagen, dass all diese Frameworks ihren Zweck erfllen und
die Sicherheit im Straenverkehr erheblich steigern. Fahrer knnen somit ihre
gewnschte Applikation weiterhin, wenn auch begrenzt, whrend der Fahrt nutzen.

15
2.4. MySPIN Tools
In diesem Abschnitt wird mySPIN sowie die mitgelieferten Tools vorgestellt, welche fr
die Implementierung bentigt werden.

MySPIN liefert mit dem Framework drei fr uns wichtige Komponenten. Die wichtigste
dabei ist die mySPIN.SDK (Bibliothek), welche die in der Applikation bentigten
Basisfunktionen mitliefert. Funktionen wie der Focus Controller, der die Eingaben des
Fahrers erfasst und an die Applikation weiterleitet wie auch andere die, die Daten aus
dem Fahrzeug auslesen und verarbeiten, sind in dieser Bibliothek enthalten. Um diese
Funktionen nutzen zu knnen, mssen wir diese Bibliothek dazu in unsere Applikation
einbinden. Dieser Vorgang wird genauer in Kapitel 4 bei der Beschreibung der
Implementierung erlutert.

Der mySPIN.Simulator [Abbildung 2.12] wird mitgeliefert, um den Entwickler dabei zu


helfen, seine Applikation berhaupt testen zu knnen. Da die ersten Motorrder, die
mySPIN integriert haben, nicht vor 2018 auf dem Markt kommen werden, dient der
Simulator als Ersatz, um den Entwicklern dabei zu helfen, sich einen berblick zu
beschaffen, wie die Applikation spter auf dem IVI System aussehen knnte. Der
Simulator kann dabei auf dem Mac OS oder auf einem iPad installiert werden. Jedoch
traten beim Testen der Applikation viele Bugs durch den Simulator auf, auf die in
Kapitel 4 Bezug genommen wird.

Abbildung 2.12 mySPIN.Simulator [mySPINDEV s. 10]

Zudem wird noch der wichtige mySPIN.MiniLauncher [Abbildung 2.13] mitgeliefert.


Dieser dient dazu, die Applikation fr mySPIN zu registrieren. Dazu wird in xCode
(siehe 27) fr die Applikation eine unique URL Scheme erstellt. Im Mini Launcher
wird daraufhin eine Zuweisung zu dieser URL erstellt.
16
Weitere Daten wie App Name und Icon sollten auch hinzugefgt werden. Der Mini
Launcher kann sowohl auf dem Handy als auch auf dem internen iPhone/iPad
Simulator von xCode installiert werden, wobei es auch hier Probleme gab, auf die
spter eingegangen wird.

Abbildung 2.13 MiniLauncher [mySPINDEV s. 12]

Das mySPIN Framework liefert damit alle wichtigen Komponenten, die ein Entwickler
braucht, um eine Applikation zu erstellen und diese auch zu testen.

17
3. Anforderungsanalyse
In diesem Kapitel werden Vorgaben seitens mySPIN ermittelt und definiert. Zustzlich
werden Funktionalitten vorgestellt, welche die Calimoto Applikation implementiert
hat. Gleichzeitig wird entschieden, ob diese bernommen werden knnen oder nicht.

3.1. Anwendungsumgebung
Um die Calimoto Applikation nutzen zu knnen, bentigt der Nutzer ein iPhone oder
ein iPad. Whrend der Fahrt ist die Nutzung von Smartphones jedoch verboten.
Gerade Motorradfahrer setzen sich whrend der Fahrt bei Nutzung des Smartphones
groer Lebensgefahr aus. Das Integrieren von mySPIN in die Calimoto Applikation
kann diese Gefahr enorm verringern. Dadurch kann der Fahrer unter gewissen
Einschrnkungen die Applikation wie gewohnt weiterhin nutzen ohne das Smartphone
dabei in der Hand halten zu mssen.

3.2. Funktionale Anforderungen


In diesem Abschnitt werden alle wichtigen Funktionalitten der Calimoto Applikation
vorgestellt und es wird entschieden, ob diese Funktionen bernommen, verndert oder
verworfen werden knnen.

Anmerkung: Die Calimoto Applikation fr iOS befindet sich momentan noch in der
Entwicklung und ist noch nicht im Appstore von Apple fr den Nutzer zugnglich. Alle
Informationen zu der Applikation in diesem Kapitel knnen sich im Verlauf der
Entwicklung verndern und sind somit nicht endgltig. Auch sind viele Informationen
aus der Android Version entnommen worden. Funktionalitten, die hier erlutert
werden und aus der Android Version stammen, sollten nach dem jetzigen Stand
(30.07.2017) zu einem spteren Zeitpunkt auch in die iOS Version einflieen.

3.2.1. Tracking des Nutzers


Die erste wichtige Funktion ist das Tracking. Mit dieser kann der User gefahrene
Tracks aufzeichnen, speichern, zu einem spteren Zeitpunkt erneut fahren und
eventuell sogar kleinere Vernderungen vornehmen. GPS Informationen werden
dabei vom Smartphone geliefert. Unter mySPIN unterscheidet sich diese Funktion
nicht stark. Der Fahrer hat auch hier die Mglichkeit seine gefahrene Strecke
aufzuzeichnen. Zudem werden wichtige Daten wie die Lnge der Strecke und die
Dauer der Fahrt gespeichert, um eine sptere Analyse auf dem PC oder auf dem
Smartphone durchzufhren zu knnen. MySPIN kann anhand der Daten aus dem
Motorrad eine genauere Analyse ermglichen.

18
Das Tracking kann in der Kartenansicht vom Fahrer gestartet, pausiert und beendet
werden. Eine Interaktion mit der Kartenansicht wie das Zentrieren sind in der mySPIN
Version nicht mglich. Die Ansicht wird beim Start des Trackings automatisch zentriert
und ist nicht mehr vernderbar.

3.2.2. Navigation von A nach B


Die zweite wichtige Funktion ist das Navigieren zu einem ausgewhlten Ziel. Sobald
der Fahrer ein Ziel ausgesucht hat, wird er zu der Kartenansicht weitergeleitet und
kann anschlieend die Navigation starten. Diese Ansicht ist die gleiche wie die des
Trackings und der Rundtour, jedoch bieten die einzelnen Buttons an dieser Stelle
verschiedene Funktionalitten. Ziele knnen dann jeweils als Adresse oder als Point
of Interest (POIs) ausgewhlt werden. Die Adresse muss dabei vom Fahrer selbst
eingegeben werden, wobei Eingaben nur im Stillstand mglich sind. POIs jedoch
knnen auch whrend der Fahrt frei aus einer Liste ausgewhlt werden.

POIs sind unter anderem Tankstellen, Hotels oder Banken. Je nach Auswahl wird eine
Liste angezeigt, welche die jeweiligen POIs mit Entfernung anzeigt. Im Anschluss kann
sich der Fahrer ein Point of Interest aussuchen.

Fr die Adresseingabe ist der Fahrer selbst zustndig, da mySPIN bei den
Motorrdern eine Eingabe mittels Touch bei den IVI-Systemen nicht erlaubt. Daher
muss der Fahrer die Adresse vor der Fahrt eingeben, da whrend der Fahrt dies zu
einem Sicherheitsrisiko werden knnte. Um sicherzustellen, dass der Fahrer nicht
whrend der Fahrt eine Adresse eingibt, wird diese Funktion whrend der Fahrt
deaktiviert. Dies kann mithilfe der MovingFlag von mySPIN eingestellt werden. Die
MovingFlag ist fr den Fahrer selbst nicht einstellbar. Die mySPINSDK ermittelt
anhand der Motorraddaten, ob das Motorrad sich zu dem Zeitpunkt bewegt oder
stillsteht. Je nach Zustand kann die Funktion aktiviert bzw. deaktiviert werden.

3.2.3. Rundtour
Eine weitere Funktion ist die Rundtour. Aus den vier Werten Distanz, Himmelsrichtung,
Startpunkt und Endpunkt, die der Nutzer angibt, wird in der Applikation eine Rundtour
generiert. Zudem kann der Nutzer eine zufllig generierte Tour erstellen. Anders als
die Android Version kann die Rundtour in iOS jedoch nur Online generiert werden. An
einer Offline Rundtouren Generierung wird derzeitig noch gearbeitet. Diese Funktion
ist die wohl wichtigste der Calimoto Applikation, die jedoch in mySPIN etwas verndert
werden muss. Startpunkt und Endpunkt knnen nicht vom Nutzer eingegeben werden.
Der Aufenthaltsort des Fahrers wird fr die beiden Werte benutzt. Der Nutzer landet
dann in der gleichen Kartenansicht wie beim Navigieren und des Trackings. Aus der
Kartenansicht heraus kann er dann auch die Route wiederstarten, pausieren und
beenden.
19
Zudem kann der Nutzer die Route mit wenig Aufwand nach Bedarf anpassen. Dies ist
unter mySPIN nicht mglich, da fr diese Aktion Fingerspitzengefhl bentigt wird und
es ohne Touch fr den Nutzer fast unmglich ist dies zu bewerkstelligen. Wenn die
Route beendet wird, wird diese gespeichert. Das Speichern erfolgt anders als in der
Applikation automatisch. Der Name und die Beschreibung knnen aber in der
Applikation jeder Zeit editiert werden.

3.2.4. Point of Interest


Der Fahrer kann aus einer Liste einige vordefinierte Interessenpunkte aussuchen.
Diese Punkte knnen wie bereits erwhnt z.B. Tankstellen, Hotels, Restaurants und
Reparaturwerksttten sein. So kann der Fahrer, falls er Treibstoff bentigt, sich die
nchstgelegene Tankstelle raussuchen und zu dieser navigiert werden. Unter mySPIN
ist diese Funktion whrend der Fahrt nicht geeignet, da es den Fokus des Fahrers zu
sehr beansprucht. Zudem ist diese Funktion noch nicht in die aktuelle Calimoto iOS
Applikation implementiert worden. Von daher wird diese zum jetzigen Zeitpunkt noch
nicht in mySPIN integriert.

3.3. Nicht Funktionale Anforderungen


In diesem Kapitel wird die Funktionsweise des Prototyps nher erlutert. Aus den
vorgestellten funktionalen Anforderungen und den Anforderungen seitens mySPIN
lassen sich fr den Prototyp weitere nicht funktionale Anforderungen herleiten. Die
wichtigsten Kriterien und Anforderungen werden in der Tabelle [Tabelle 1]
zusammengefasst.

Qualitt Sehr wichtig Wichtig Normal Nicht wichtig


Reife x
Bedienbarkeit x
Sicherheit(tech.) x
Effizienz x
Verstndlich x
Austauschbar x
Fehlertoleranz x
Tabelle 1 Kriterien fr den zu entwickelnden Prototypen

Die Effizienz ist fr den Prototypen sehr wichtig. Der Fahrer muss direkt erkennen, ob
eine Funktion fertig ausgefhrt wurde. Andernfalls wrde das den Fokus des Fahrers
enorm beeinflussen.

20
Generell sollten Funktionen whrend der Fahrt schnell und effizient ausfhrbar sein.
Hierfr geben die Vorschriften seitens Bosch SofTec an, dass diese nicht lnger als 4
Sekunden dauern sollten. Alle die als Sehr Wichtig oder Wichtig markierten
Kriterien dienen vor allem der Sicherheit im Straenverkehr. Die Absicherung von der
technischen Seite ist fr den Prototypen eher weniger relevant, da die Calimoto
Applikation bereits diese Aufgabe fr den Prototypen bernimmt.

3.3. MySPIN Grafikoberflche


Einen noch wichtigeren Teil als die Funktionalitt stellt die Grafikoberflche dar. Um
die hchstmgliche Sicherheit zu bieten, gibt es seitens mySPINs Vorgaben, die
eingehalten werden mssen. Beispielsweise sind nicht mehr als 5 Items in einer
Ansicht erlaubt, da dies den Fahrer zu sehr ablenken wrde. Auch bei der Darstellung
von Listen sollten nicht mehr als 5 Items angezeigt werden.

Weitere Vorgaben sind in der [Tabelle 2] zu sehen. Aktionen sind meistens je nach
Zustand des Motorrads aktiviert bzw. deaktiviert. Der Zustand wird ber die Moving

Abbildung 3.1 Beispiele Items [MS2W s. 6]

Flag ermittelt und ist fr den Nutzer nicht vernderbar. Auf diese Weise wird der
Nutzer gezwungen, mit Einschrnkungen zu fahren.

21
Moving Flag On Moving Flag Off

Texte Max. 4 Wrter 2 Zeilen


Icons 5 5
Listen 5 5
Eingaben(Text) Deaktiviert Aktiviert
Touch Deaktiviert Deaktiviert
Tabelle 2 Moving Flag dos and don'ts

Wie bereits erwhnt ist eine weitere Besonderheit der in Motorrdern verbauten IVI-
Systemen, dass sie keinen Touch untersttzen und somit alle Aktionen vom Knob
(Drehrad) ausgehen mssen. Dies bringt ein groes Problem mit sich, da dies
bedeutet, dass der Fokus, den der Fahrer in einer kurzen Zeit dem IVI zuwendet,
ausreichen muss, um z.B. durch das Menu zu navigieren. Dies fhrt dazu, dass Icons
nicht ber die gesamte Ansicht verteilt werden knnen. Diese sollten nebeneinander
in einem Bereich der Applikation platziert werden.

Die Landing Page bzw. die Startseite der Calimoto Applikation kann nicht bernommen
werden [Abbildung 3.2]. Dafr sind die Icons zu weit voneinander entfernt. Dies wrde
den Fahrer zu sehr von seiner eigentlichen Aufgabe ablenken. Zudem sind die IVI-
Systeme in einem Querformat und knnen zwischen 400x230 und 1000x500 Pixeln
betragen. Icons/Buttons mssen viel grer werden als die in der Applikation. Kleine
Icons sind ungeeignet, da das IVI-System zu weit vom Fahrer entfernt sein wird.

22
Abbildung 3.2 Calimoto Startseite

Auch das Menu (die untere Reihe von Abbildung 3.2) sollte von der Navigation
getrennt werden. Es muss fr den Fahrer ersichtlich sein, an welchem Punkt er sich
momentan befindet und welche Art der Navigation zurzeit genutzt wird. Sobald sich
der Fahrer fr eine der drei Navigationsarten entscheidet, wird dieser dann zu der
Kartenansicht weitergeleitet. Die beiden Ansichten Rundtour und Navigation werden
am strksten verndert werden mssen [Abbildung 3.3].

23
Abbildung 3.3 Calimoto Navigation(links) und Rundtour(rechts)

Beide Ansichten sind zu berladen und aufgrund fehlender Touch Interaktion im IVI
nicht bedienbar. Beide werden komplett verworfen und neu erstellt. Dabei sollten beide
Ansichten schlicht und einfach zu bedienen sein.

In der Kartenansicht angekommen, soll der Fahrer seine ausgewhlte Navigation


starten, pausieren und beenden knnen. Beim Beenden wird die getrackte oder
gefahrene Route automatisch gespeichert.

3.4. Auswertung
Zusammengefasst lsst sich sagen, dass die grafische Nutzeroberflche der
Applikation sich auf dem IVI-System stark von der auf einem Smartphone
unterscheiden wird. Die meisten Funktionalitten knnen in der Form, in der sie in der
Applikation vorhanden sind, weiterhin bestehen.

Aus den definierten Anforderungen und Kriterien lsst sich ein grober Strukturaufbau
des Prototyps herleiten [Tabelle 3].

24
Tabelle 3 Calimoto Struktur und Aufbau mit mySPIN Integration

Das Menu wird von der Kartenansicht getrennt. Vom Menu ausgehend kann sich der
Fahrer eine Navigationsform aussuchen. Wenn der Fahrer z.B. den Punkt Navigation
auswhlt, wird er zunchst zu einer weiteren Ansicht geleitet, in der er sich eine zuvor
gespeicherte Adresse aussuchen kann. Zuknftig sollen auch POIs in dieser Ansicht
angezeigt werden, aus denen der Fahrer z.B. die am nchstgelegene Tankstelle
auswhlen kann. MyTours leitet ebenfalls zu einer weiteren Ansicht, wo eine Liste
aus den gefahrenen Touren angezeigt wird, aus der sich der Fahrer eine bereits zuvor
erstellte Tour aussuchen kann.

Whrend der Fahrt sind viele Funktionen eingeschrnkt oder berhaupt nicht
bedienbar. Aus den Kriterien und Anforderungen lsst sich auch hier eine grobe
Struktur abbilden [Tabelle 4].

25
Tabelle 4 Calimoto Struktur und Aufbau mit mySPIN Integration whrend der Fahrt

Rot gekennzeichnete Funktionen sind whrend der Fahrt nicht mglich. Zudem sollten
Funktionen wie beispielsweise das Tracking, sofern diese vorher ausgewhlt wurde,
automatisch gestartet werden.

26
4. Implementierung
In diesem Kapitel werden die in Kapitel 3 definierten Anforderungen umgesetzt.
Nachdem grundlegende Aspekte wie die Vorstellung der Programmierumgebung und
die Integration der mySPIN SDK abgeschlossen sind, wird sich der Implementierung
des Prototyps gewidmet.

4.1. Programmierumgebung und Programmiersprache


Die fr die Entwicklung benutzte Programmierumgebung ist das von Apple entwickelte
Programm Xcode. Xcode untersttzt die Entwicklung in 2 Programmiersprachen. Die
erste ist Swift und ist auch die Sprache, die fr die Entwicklung des Prototyps
verwendet wird. Die zweite ist Objektiv C, eine Sprache die seit 1980 existiert und
langsam durch Swift ersetzt werden soll [ (AppXcode)]. Xcode bietet viele Funktionen,
welche den Entwicklern beim Programmieren vieles abnimmt und ihnen das
Programmieren leichter macht. Eine der Funktionen ist das sogenannte Storyboard.
Dieses ermglicht den Entwicklern eine einfachere Gestaltung der Grafikoberflche.
Darber hinaus zeigt das Storyboard grafisch auf, inwieweit die einzelnen
Views(Ansichten) mit einander verbunden sind. ber den sogenannten Segues zeigt
das Storyboard ebenfalls auf, welche View zu einer anderen View fhrt,
beispielswiese, wenn auf einen Button geklickt wurde. Die Abbildung 4.9 verdeutlicht,
wie im Storyboard die Grafikoberflche fr das IVI aussieht. Jedoch unterscheidet sich
das Storyboard von der realen Grafikoberflche. Labels werden im Code noch definiert
und haben einen dynamischen Wert.

Um ein besseres Verstndnis fr die sptere Implementierung zu bekommen, werden


hier zudem einige Komponente erlutert, die fr diese wichtig sind.

Der UIViewController [Abbildung 4.1] ist eine Komponente, die in Swift und Xcode
definiert ist. Der ViewController verwaltet die Interaktion zwischen der UI und den
Models. Somit basiert es auf den MVC Pattern. Es werden sogenannte Outlets zu der
UI (User Interface) erstellt, mit diesen Outlets (Objekten von der UI) wird dann whrend
der Laufzeit gearbeitet.

27
Abbildung 4.1 Beziehung zwischen den Controller und den Views [ (ApXcUI)]

Zudem wird die UICollectionView [Abbildung 4.2] benutzt. Dies ist eine Klasse, welche
eine Sammlung von Daten verwaltet und in UICollectionCells, welche jeweils ein
Datenelement darstellen, anzeigt. So kann beispielsweise eine Ansammlung von
Bildern leicht dargestellt werden. Die UICollectionView liefert zudem einige
Funktionen, welche vom UIViewController geerbt werden knnen. Diese sind
sogenannte Delegates und Datasource Protocole (Interface). Diese verwalten die
vorhandenen Daten und zeigen diese im Design an.

28
Abbildung 4.2 UICollectionView mit den UICollectionCells [ (ApXcUI)]

Auf dem gleichen Prinzip basiert die UITableView [Abbildung 4.3]. Die TableView stellt
dabei eine Ansammlung von Daten in Form einer Liste dar.

Abbildung 4.3 UITableView mit den UITableViewCell, Setting aus dem Storyboard

4.2. mySPIN Integration


Die Integration von mySPIN in die Calimoto Applikation ist ein wichtiger Bestandteil
dieser Arbeit. Ohne diese, ist der Prototyp nicht funktionsfhig. Um eine solche
Integration abzuschlieen, mssen jedoch mehrere Schritte durchgefhrt werden.

Zuerst muss die mySPIN-SDK in die Applikation eingebunden werden. Dies kann ber
Xcode unter dem Bereich Link Binary With Libraries bewerkstelligt werden [Abbildung
4.4].

Abbildung 4.4 Einbindung mySPIN in Calimoto

29
Der nchste Schritt besteht darin, dass die Applikation die Verbindung zum IVI-System
automatisch erkennt und die Applikation zu der mySPIN Erweiterung weiterleitet. Dazu
wird die AppDelegate so konfiguriert, dass bei jedem Start der Applikation die
mySPINServer-SDK instanziiert [Codesample 1Codesample 1] und ausgefhrt wird.
Sie berprft daraufhin, ob eine Verbindung zum IVI-System besteht.

MySpinServerSDK.sharedInstance().delegate = self
MySpinServerSDK.sharedInstance().start()

MySpinServerSDK.sharedInstance().setLogLevel(EMySpinLogLevel.MySpinLogLevelDebug,
andLogComponents: EMySpinLogComponent.MySpinLogComponentSystem)

Codesample 1 Einbindung mySPIN in Calimoto

Die MySpinServer-SDK startet dabei zwei weitere Funktionen, welche den Zustand
der Verbindung ermitteln.

public func viewControllerForDisconnectedMode() -> UIViewController!


{
return UIStoryboard(name: "LaunchScreen", bundle:
nil).instantiateViewController(withIdentifier: "launch")
}

func viewControllerForConnectedMode(onRemoteScreen remoteScreenSize: CGSize) -> UIViewController!


{
return UIStoryboard(name: "MySpin", bundle: nil).instantiateViewController(withIdentifier: "connectedTo")
}

Codesample 2 Einbindung mySPIN in Calimoto

Diese beiden Funktionen [Codesample 2] liefern als Rckgabeparameter einen


UIViewController und somit eine View an die aufrufende Methode zurck. Falls zum
IVI-System verbunden (viewControllerForConnectedMode) wird der ViewController
mit dem Identifier connectedTo als Startview gesetzt. Dazu ist zu wissen, dass es
sowohl fr MySPIN als auch fr die normale Calimoto Appliktation jeweils separate
Storyboards gibt. Die Startview der jeweiligen Storyboards haben jeweils einen
Identifier. Der von der normalen Applikation hat den Identifier launch und der von
MySPIN connectedTo. Somit wird je nach Rckgabe die jeweilige View mit dem
Identifier gestartet und als Startview gesetzt.

30
Ein weiterer Schritt ist es, in der Applikation eine URL Scheme zu definieren. Diese
wird spter bentigt, um die Applikation zum MySPIN MiniLauncher hinzuzufgen. Von
diesem aus wird die Applikation mit dem IVI-Simulator verbunden.

Abbildung 4.4 Einbindung mySPIN in Calimoto URL Scheme

Im Mini Launcher [Abbildung 4.5] wird daraufhin die Applikation mittels dieser URL
verlinkt.

Abbildung 4.5 Einbindung des URL Scheme im Mini Launcher

Nach dem Einbinden der Applikation im Mini Launcher wird der Simulator gestartet
dieser stellt eine Verbindung zum Mini Launcher her. Vom IVI-Simulator kann dann die
Applikation gestartet und benutzt werden.

4.3. Grafikoberflche
Wie bereits in den Anforderungen erlutert spielt die Grafikoberflche eine enorm
wichtige Rolle. Daher hat diese einen groen und wichtigen Anteil in der
Implementierung eingenommen. In diesem Abschnitt werden zudem alle
ViewController vorgestellt und erlutert.
31
Dabei ist zu beachten, dass Abbildungen die hier zur Schau gestellt werden aus dem
Storyboard stammen und im Simulator sich vom Aussehen her unterscheiden werden.
Dies geschieht aufgrund der Tatsache, dass im Code selbst das Design dynamisch
gendert wird. Hat sich die Applikation erfolgreich mit dem IVI-System verbunden
ffnet sich als erstes das Hauptmen, von diesem hat der Fahrer dann die Mglichkeit
sich durch die Applikation zu navigieren.

Abbildung 4.6 Hauptmen Calimoto Storyboard

In Abbildung Abbildung 4.6 wird das Hauptmen der Applikation dargestellt. Im


Storyboard selbst ist nicht viel zusehen, was wie eingangs erwhnt darin begrndet
ist, dass hier die meiste Arbeit im Code selbst geschieht und erst in der Laufzeit
ausgefhrt wird. Das Hauptmen ist ein ViewController, der die Delegate und
Datasource Protocols von der UICollectionView erbt. Diese liefern fr uns zwei
wichtige Methoden, die numberOfItemsInSection, welche die Anzahl der Elemente
definiert und die cellForItemAt indexPath, welche die einzelnen Elemente in den
Cells befllt.

32
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int)
-> Int {
return 5
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath:


IndexPath) -> UICollectionViewCell {
var cell = UICollectionViewCell()
let collecCell = collectionView.dequeueReusableCell(withReuseIdentifier: "menuCell", for:
indexPath) as! MSCollectionCell

if iconArray.count != 0 {
let image = iconArray[indexPath.row]
collecCell.iconImage.image = image

let label = labelArray[indexPath.row]


collecCell.desLabel.text = label
cell = collecCell
}
return cell
}

Codesample 3 Delegate/Datasource Methoden UICollectionView

Die numberOfItemsInSection gibt dabei an, wie viele Elemente in der CollectionView
angezeigt werden sollen. Die cellForItemAt indexPath fllt dann diese Cells mit den
gegebenen Daten. Die verwendeten Cells sind Custom Cells, also selbst definierte
Cells, die ein ImageView und ein Label besitzen. Wenn die Applikation gestartet
wurde, werden im Hauptmen 5 Punkte mit jeweiligen Icons angezeigt. Aus diesem
Men heraus wird der User je nach Auswahl zu den weiteren Views weitergeleitet.
Whlt der User den Menpunkt Maps aus, wird er direkt zum Tracking weitergeleitet.
Von dieser View aus kann er dann das Tracking starten, pausieren und beenden
[Abbildung 4.7]. Auch von der Navigation View und der Rundtour landet der Fahrer auf
einem MapController.

33
Abbildung 4.7 Calimoto mySPIN Storyboard MapController

Abbildung 4.8 Calimoto mySPIN Storyboard Rundtour zu Karte

In der Rundtour View [Abbildung 4.8 oberes Bild] kann der User sich aus zwei Werten
die er selbst auswhlt eine Rundtour erstellen. Diese beiden Werte bestehen aus der
Distanz, die angibt wie lange (in Kilometer) die Tour gehen soll und der Richtung. Die
Werte werden zudem in einer CollectionView angezeigt. Die mglichen Werte, die der
User sich aussuchen kann, sind in dem Codesample 4 zu sehen.

34
distansArray = ["100", "150", "200", "250", 300] // in Kilometer

directionArray = ["Random", "North", "NorthEast", "East", "Southeast", "South", "Southwest",


"West", Northwest"] // Himmelsrichtungen

Codesample 4 Werte fr die CollectionView

Die Grafikoberflche der Navigation von A nach B besteht aus einem


TableViewController. Der Controller ermglicht es die Favoriten, die der Fahrer zuvor
gespeichert hat, darzustellen. Diese Favoriten werden in Form einer Liste dargestellt.
Zudem wurden zwei Buttons hinzugefgt, mit dem sich der Fahrer durch die Liste
navigieren kann. Hat der Fahrer sich ein Ziel ausgewhlt, wird dieser direkt zu der
Kartenansicht weitergeleitet und kann die Navigation starten [Abbildung 4.9].

Abbildung 4.9 Favoriten Darstellung plus dazugehriger Kartenansicht

Wie zudem in den Anforderungen beschrieben, werden gefahrene und getrackte


Strecken gespeichert.

35
Der Fahrer kann diese gespeicherten Strecken jederzeit einsehen und nochmals
befahren. Diese Strecken werden in einem TableViewController in Form einer Liste
dargestellt [Abbildung 4.10].

Abbildung 4.10 Liste der gefahrenen Strecken

Der Fahrer kann sich mittels zwei Buttons durch die Liste Navigieren [Abbildung 4.10
rote Pfeile]. Zudem wurde fr diese View eine weitere Custom Cell Klasse erstellt. Die
Custom Cell hat dabei drei Labels, die im Code dynamisch verndert werden. Die drei
Labels werden spter wichtige Informationen wie Name, Gesamtdauer und die Distanz
der Strecke darstellen.

Der Fahrer kann ebenfalls einige Einstellungen vornehmen, die sich zum Beispiel in
der Kartenansicht wiederspiegeln. Er kann beispielweise einstellen, ob in der Karte ein
Kompass angezeigt werden soll. Zustzlich ist unter anderem auch ein
Energiesparmodus vorhanden, welche dem Fahrer bei Aktivierung eine lngere
Navigation ermglicht. [Abbildung 4.11]

36
Abbildung 4.11 Einstellungen

4.4. Funktionalitt
Nachdem im vorherigem Abschnitt die Grafikoberflche vorgestellt wurde, widmet sich
dieser Abschnitt der Implementierung der Funktionalitten. Jedoch ist zu beachten,
dass die meisten Funktionalitten bereits in der Calimoto Applikation vorimplementiert
waren und teilwiese nur von einigen Methoden aufgerufen werden.

4.4.1. Focus Controller Delegate


Das FocusControllerDelegate ist ein Protocol (Interface), das vom mySPIN-SDK
bereitgestellt wird. Dieses Delegate wird von jedem Controller (Klasse) geerbt. Dabei
ermglicht das Delegate, das wichtige Interaktionen des Fahrers an die Controller
bermittelt und von diesem bearbeitet werden knnen. Interaktionen sind in diesem
Fall beispielweise Aktionen, die vom Fahrer mittels Knopfdruck ausgefhrt werden.

Der Codesample 5 zeigt, wie die Klasse MSMapController (MSC) vom Interface
MySpinFocusControllerDelegate erbt. Das Delegate ermglicht es dabei der Klasse
MSC die Nutzung der Methode handleFocus [Codesample 6], welche alle Aktionen
des Fahrers auf dem IVI-System erkennt. Die Methode wird dabei in der Laufzeit bei
jeder Aktion (Knopfdruck) des Fahrers ausgefhrt.

Codesample 5 Einbindung FocusController

37
Damit jedoch die Klasse MSC die Aktionen erkennt und die Methode ausfhren kann,
muss das FocusControllerDelegate noch verknpft werden. In der ViewWillAppear
Methode wird die oben genannte Verknpfung durchgefhrt [Codesample 6 dritte
Zeile].

Codesample 6 ViewWillAppear

Codesample 7 HandleFocus Methode

Die handleFocus Methode ist die Schnittstelle zwischen Applikation und dem IVI-
System. Wenn ausgefhrt, liefert die Methode ein sogenanntes Event, aus welchem
ermittelt wird, welche Aktion der Fahrer ausgefhrt hat. Dabei kann der Fahrer auf dem
Simulator 4 Aktionen ttigen. Diese sind Back, OK, Next und Previous
[Codesample 7]. Je nach Aktionen knnen dann verschiedene Methoden ausgefhrt
werden.

Codesample 8 ViewWillDisappear
38
Beim Verlassen der View [Codesample 8Codesample 8] ist es zudem wichtig, dass
das Delegate auf nil gesetzt wird. Dies bedeutet, dass die Verknpfung zur Klasse
aufgelst wird. Das ist wichtig, weil das Delegate ein Singleton und somit eine Klasse
ist, welches nur einmal im Code instanziiert wird, allerdings von mehreren Klassen
benutzt werden kann. Somit benutzen alle Klassen die auf den Singleton zugreifen
dieselbe Instanz. Wird das Delegate beim Verlassen der View nicht auf nil gesetzt
und von einer anderen View nochmals verknpft, dann kann dies zu Komplikationen
fhren. Es kann der Fall auftreten, dass wenn der Fahrer in einer anderen View
beispielsweise den Knopf Ok drckt, dies mehrmals in der Applikation ausgefhrt
wird, welches unter anderem auch zum Absturz der Applikation fhren kann.

4.4.2. Navigation
Die Navigation von A nach B wurde whrend der Implementation leicht verndert. In
der Applikation kann der Fahrer eine Adresse aussuchen und zu dieser navigieren.
Das Eingeben von Adressen wie in den Anforderungen definiert wird nicht mehr
untersttzt. Die mySPIN Version ermglicht es ihm nun nur noch, sich von seinem
aktuellen Standort zu einer in seinen Favoriten gespeicherten Adresse zu navigieren.
Diese Entscheidung wurde aufgrund der Tatsache, dass der Fahrer whrend der Fahrt
keine Eingaben ttigen kann und an der, dass die Eingabe mittels Zahnrad oder
Knpfen durchgefhrt werden muss, getroffen.

Die Funktion, welches dem Fahrer es erlaubt eine Adresse als Favoriten zu speichern,
ist in der Calimoto Applikation nicht vorhanden und musste neu implementiert werden.
Zudem wurde entschieden, fr die Speicherung der Adressen vorrbergehend eine
lokale Datenbank zu benutzen.

Fr die Favoriten wurde eine geeignete Struktur in Form eines Structs ausgewhlt.
[Codesample 9] Ein Struct ist von den Eigenschaften her einer Klasse sehr hnlich,
jedoch gibt es auch Unterschiede. So werden Structs nur als Kopie bergeben (Copy
by Value). Wenn beispielsweise ein Struct instanziiert und einer weiteren Variable
zugewiesen wird, dann betreffen z.B. nderungen am Wert der Variable nicht die
Instanz des Structs und sie sind somit unterschiedlich. Bei einer Klasse wrde sich der
Wert der Struct-Instanz (Copy by Reference) auch verndern.

39
Codesample 9 Struct Favoriten

Neben dem Struct wurde zudem eine weitere Klasse erstellt, welche Methoden
bereitgestellt, um die erstellten Favoritenpunkte zu speichern. Diese bietet vor allem
drei wichtige Methoden: 1. das Anlegen der Tabelle in der Datenbank, 2. das
Speichern der angelegten Favoriten [Codesample 12] und 3. das Auslesen dieser aus
der Datenbank. [Codesample 10]

Codesample 10 Methode zu Auslesen aus der Datenbank.

Die Methode getAll() liefert nach Ausfhrung ein FavoritePoint-Array zurck. Dieses
beinhaltet alle zuvor vom Fahrer gespeicherten Favoriten und wird in einer TableView
in Form einer Liste dargestellt. Das Speichern der Favoriten wird ber die Methode
save() vollzogen. [Codesample 12] Die Methode bekommt dabei das Struct
FavoritePoint als bergabewert.

Fr das sptere Testen wurden in der Implementierung die zwei Favoriten Berlin und
Hamburg angelegt. [Codesample 11] Diese werden spter fr unsere Navigation zum
Testen bereitgestellt.

Codesample 11 Anlegen zweier Favoriten Punkte.

40
Codesample 12 Methode zum Speichern in der Datenbank.

4.4.3. Rundtour
Anders als bei der Navigation konnte die Funktionalitt der Rundtour aus der
Applikation bernommen werden. Jedoch mussten Methodenaufrufe an die
Grafikoberflche angepasst werden. Anders als bei der Applikation findet in der
mySPIN Version zudem ein View-Wechsel nach dem der Button Create Route
[Abbildung 4.1 oberes Bild] ausgefhrt wurde statt. Dabei wird die Methode prepare()
ausgefhrt. [Codesample 13]

Codesample 13 Methode die die Rundtour erstellt.

41
Beim aufrufen dieser Methode werden mehrere wichtige Aktionen ausgefhrt.
Beispielsweise wird ein Startpunkt erstellt, welcher an die calculateRoute Methode
bergeben wird. Der Startpunkt ist dabei der aktuelle Standort des Fahrers. Wichtige
Daten, die zur Ortung genutzt werden, sind wenn mglich aus den Daten des
Motorrads zu entnehmen. Falls keine Verbindung zum Motorrad aufgebaut werden
kann, werden die GPS-Daten aus dem Smartphone entnommen. Aus den weiteren
Werten (Distanz und Himmelsrichtung), die der Fahrer zuvor eingegeben hat, wird
daraufhin eine Route berechnet und an die Kartenansicht weitergegeben. Die Route
wird online ber den sogenannten GraphHopperService erstellt. Der Service
berechnet an Hand der oben genannten Werte eine Route und liefert ein Array aus
Viapoints, welches alle Koordinaten der Route beinhaltet. Aus diesen Koordinaten
wird die Route auf der Kartenansicht gezeichnet. Das Starten, Pausieren und Beenden
der Route geschieht in der Kartenansicht. [Abbildung 4.8 unteres Bild]

Erstellte Rundtouren werden beim Beenden der Navigation automatisch gespeichert,


jedoch werden diese zurzeit nicht verarbeitet. Momentan ist es nicht mglich, erstellte
Rundtouren erneut zu fahren. Diese Funktionalitt wird jedoch zu einem spteren
Zeitpunkt mit der Weiterentwicklung der Applikation implementiert.

4.4.4. Tracking
Die Implementierung des Trackings war im Vergleich zu den anderen Funktionalitten
weniger herausfordernd, da diese Funktion aus der Applikation komplett bernommen
werden konnte. Die bentigten Methoden zum Navigieren konnten ohne weiteres
aufgerufen werden. Je nach Auswahl aus der Kartenansicht wurden dann die
bentigten Methoden ausgefhrt. [Codesample 14]

Codesample 14 Funktionen zum Starten, Pausieren und Beenden der Navigation

Das Tracken des Fahrers funktioniert hnlich wie bei Erstellung der Rundtour, jedoch
wird beim Tracking kontinuierlich die aktuelle Position des Fahrers ermittelt und in
einem Array gespeichert. Sobald sich der Fahrer bewegt, wird die Methode im
Codesample 15 ausgefhrt, welche den Aktuellen Standort im LocationHelper in der
Variable lastKnownLocation speichert. Weiterhin wird die Methode
drawTrackingOrNavigationPolyline() ausgefhrt, welche aus dem Array mit den
bereits gefahrenen Koordinaten die gefahrene Strecke zeichnet.
42
Codesample 15 update Fahrer Position

Beim Beenden wird die saveTrack() Methode automatisch aufgerufen, welche die
gefahrene Strecke Online speichert. [Codesample 16]

Codesample 16 Speichern des Tracks

Informationen ber die Strecke wie beispielsweise Name, Rating und Comment
knnen dann zu einem spteren Zeitpunkt in der Applikation bearbeitet und erneut
online gespeichert werden.

43
5. Test und Auswertung
In diesem Kapitel werden Testkriterien definiert. Anschlieend werden die Tests der
mySPIN Version anhand von Screenshots dargestellt. Das geschieht mittels dem von
Bosch mitgelieferten Simulator. Das Testen in einer realen Umgebung mit einem
Motorrad war nicht mglich, da Motorrder, die mySPIN integriert haben, nicht vor
Anfang 2018 auf dem Markt erscheinen werden. Zudem liefert der Simulator wichtige
Daten wie dem Moving Flag nicht. Aus diesen Grund konnten diese Daten nicht
getestet werden. Jedoch wurde die Implementierung fr diese fertiggestellt und sollten
zu einem spteren Zeitpunkt, wenn mglich, getestet werden.

5.1. Testkriterien
Eines der Hauptkriterien ist es, dass der Fahrer schnell und leicht zwischen den
einzelnen Views navigieren kann. Der Fahrer soll mit wenigen Interaktionen seine
gewnschte Navigationsart auswhlen und starten knnen. Zustzlich sollen alle
Basis-Funktionalitten (Navigation) der Calimoto Applikation zugreifbar und nutzbar
sein.

5.2. Demonstration des Prototyps


Bei einer erfolgreichen Verbindung der Calimoto Applikation mit dem IVI-System wird
die Applikation auf dem IVI-Simulator angezeigt. [Abbildung 5.1] Mit einem Klick auf
den Button OK kann diese gestartet werden.

Abbildung 5.1 Starbildschirm beim Verbinden mit dem IVI-System

44
Wird die Applikation gestartet landet der Fahrer in dem Navigationsmen. [Abbildung
5.2] Hier kann der Fahrer auf alle Views zugreifen, wobei das Navigieren durch das
Men ber den previous und next Button stattfindet.

Abbildung 5.2 Navigationsen

Abbildung 5.3 Navigation durch das Men

45
Abbildung 5.4 My Tours Ansicht

Die My Saved Tours Ansicht [Abbildung 5.4] stellt alle zuvor gespeicherten Routen
dar. Diese knnen jedoch zurzeit nicht erneut befahren werden, da eine
Konvertierung dieser vorher ntig wre, wofr momentan keine Funktionalitt
implementiert ist.

Abbildung 5.5 Einstellungen

46
Auch bei den Settings fehlen zurzeit die jegliche Funktionalitten, jedoch sind alle
ntigen grafischen Elemente bereits implementiert. [Abbildung 5.5]

5.2.1. Navigation von A nach B


Whlt der Fahrer im Hauptmen den Punkt Navigation aus, landet dieser in der View
Navigate to. [Abbildung 5.6] In dieser hat der Fahrer die Mglichkeit, aus seinen
zuvor gespeicherten Favoriten [Codesample 11] einen Zielpunkt auszusuchen. Spter
sollen zudem POIs, die ein weiteres Framework bereitstellt, auswhlbar sein.

Abbildung 5.6 Navigate to

Wenn der Fahrer beispielsweise Berlin auswhlt, wird die Kartenansicht aufgerufen.
Die View stellt die errechnete Strecke zwischen dem eigenen Standort und dem
ausgewhlten Ziel dar. Auch werden wichtige Informationen wie die bentigte Zeit,
Distanz und Geschwindigkeit dargestellt. [Abbildung 5.7 oben rechte Box] Diese
ndern sich je nach Fortschritt und Geschwindigkeit des Fahrers.

47
Abbildung 5.7 Strecke Potsdam-berlin

Startet der Fahrer die Navigation, findet ein Zoom auf der Karte statt [Abbildung 5.8],
dabei werden ber Audio wichtige Anweisungen an dem Fahrer bermittelt. (Anmk. In
der Abbildung 5.8 befindet sich der Fahrer in einer Fahrverbotszone, weshalb ihm
die nchste Strae angezeigt wird.)

Abbildung 5.8 Starte Navigation

48
5.2.2. Rundtour Navigation
Whlt der Fahrer den Menpunkt Round Trip aus, landet dieser in der View Round
trip from your current position [Abbildung 5.9], welche die Mglichkeit bietet, sich
eine Distanz und eine Himmelsrichtung auszusuchen. [Abbildung 5.10]

Abbildung 5.9 Create Route

Abbildung 5.10 Create Route Werte Verndert

49
Abschlieend kann der Fahrer auf den Button Create Route [Abbildung 5.11]
drcken, welches dem Fahrer eine Rundtour berechnet und ihm in die Kartenansicht
weiterleitet. [Abbildung 5.12]

Abbildung 5.11 Create Route Button

Abbildung 5.12 Create Route Kartenansicht

Auch hier wieder hat der Fahrer wichtige Informationen die ich angezeigt werden.

50
5.2.3. Tracking
Um ein Strecke aufzuzeichnen, muss der Fahrer im Men den Punkt Map auswhlen,
welcher ihn direkt zur Kartenansicht weiterleitet. [Abbildung 5.13] Dort kann er ber
den Play Button das Aufzeichnen der Strecke starten.

Aufgrund der Tatsache, dass sich momentan die Applikation nur ber W-LAN mit dem
Simulator verbinden kann, konnte das Tracking nicht ausgiebig getestet werden.
Versuche, den Simulator mit der Applikation ber den Hotspot des Smartphones zu
verbinden, sind fehlgeschlagen. Jedoch wurden kleine Bewegungen innerhalb von
Gebuden getrackt und auf der Karte gezeichnet.

Abbildung 5.13 Tracking Ansicht

51
Abbildung 5.14 Tracking gestartet

5.3. Auswertung
Die Tests zeigten, dass eine Verbindung zwischen der Applikation und dem IVI-
System mit Ausnahmen von einigen Abstrzen sehr gut funktioniert hat. Jedoch war
der Weg, der zu dieser stabilen Verbindung gefhrt hat sehr fehlerbehaftet. So hat
beim Testen die Mini Launcher Applikation von mySPIN alle paar Tage nicht mehr
funktioniert und musste hufig neu installiert werden, was aufgrund der Tatsache, dass
diese Anwendung nicht im AppStore registriert ist, sehr zeitaufwendig war. Zustzlich
musste auf einen Simulator fr Autos zurckgegriffen werden, da ein Simulator fr das
Motorrad noch nicht zur Verfgung steht. Dies wird laut Bosch zu einem spteren
Zeitpunkt nachgeliefert. (Update 19.08.2017, Ein Simulator fr Motorrder ist nun
verfgbar).

Die Basisfunktionen der Calimoto Applikation haben bei den Tests durchgngig
funktioniert, jedoch mssen noch zustzliche Sicherheitsmechanismen eingebaut
werden, um einen Absturz der Applikation zu verhindern, selbst wenn dieser Fall nur
2 Mal beim Testen eingetreten ist. Dies geschah jedoch aufgrund der Tatsache, dass
die Calimoto Applikation dem Nutzer eine freie Karte zu Verfgung stellt und die
Navigation nur auf diese Region begrenzt ist. So ist die Applikation beim Testen der
Navigation von Potsdam nach Hamburg abgestrzt, da das Ziel auerhalb der freien
Region (Berlin/Brandenburg) war. Wrde der Nutzer jedoch zum Beispiel ganz
Deutschland kaufen, wre die Applikation nicht abgestrzt. Die gleiche Problematik
war bei der Rundtour auch gegeben. Auch das Fehlen der Tests des Moving Flag
muss, sobald der Simulator dies dem Entwickler ermglicht, nachgeholt werden.

52
Bis auf das Testen der Grafikoberflche verliefen alle anderen Tests relativ fehlerfrei.
An der Grafikoberflche mussten oft Vernderungen vorgenommen werden, da die
Grafikoberflche sich oft nicht an der von dem Simulator gegebenen Displaygre
angepasst hat. Weitere grere Schwierigkeiten traten beim Testen nicht auf.

53
6. Zusammenfassung und Ausblick
In diesem letzten Kapitel wird eine Zusammenfassung der Arbeit dargelegt und
abschlieend ein Ausblick fr die Zukunft gegeben.

6.1. Zusammenfassung
Diese Arbeit hatte das Ziel, ein Konzept mit einem dazugehrigen Prototyp zu
entwickeln. Dies ist auch durch eine am Anfang der Arbeit definierte Zielsetzung gut
gelungen. Auch verhalfen die in Kapitel 2 dargelegten Statistiken und Vorstellungen
verschiedener Frameworks, welche zu einem besseren Verstndnis der Thematik
dienten, zu diesem Ergebnis. Die Implementierung verlief zudem dank in den
Anforderungen definierten Funktionalitten ohne groe Probleme. Auch verlief die
Arbeit mit dem mySPIN Framework ziemlich gut, welches der gut dokumentierten
Anleitungen zu verdanken war. Nur die in den Tests beschriebenen Probleme mit dem
Mini Launcher traten auf und verlangsamten die Arbeit unntig. Aber aufgrund der
Tatsache, dass mySPIN sich momentan noch in der Entwicklung befindet und somit
noch viele kleinere Krankheiten mit sich trgt, sollten diese und weitere mgliche nicht
berraschen.

Der Prototyp erfllt seine Aufgabe und ermglicht es dem Fahrer, die Calimoto
Applikation auch whrend der Fahrt zu nutzen, was eines der Hauptziele dieser Arbeit
war. Dies wird zum Teil durch eine schlicht gehaltene Grafikoberflche ermglicht. Das
Design ist jedoch prototypisch umgesetzt und sollte fr das Endprodukt komplett
berarbeitet werden. Beispielsweise sollte die Oberflche so entworfen werden, dass
sie bei jedem Wetter gut zu erkennen ist.

Sobald Daten aus dem Motorrad wie z.B. die Moving Flag simuliert werden knnen,
sollten Tests nochmals ausfhrlich durchgefhrt werden. Auch das Testen in einer
realen Umgebung sollte schnellstmglich ebenfalls durchgefhrt werden.

6.2. Ausblick
MySPIN und hnliche Frameworks bieten ein enormes Potenzial. Sie knnten in der
Zukunft unsere Fahrgewohnheiten sehr stark verndern und Mensch und Maschine
(in diesem Falle das Motorrad) noch enger vernetzen. Fahrprofile, die aus den Daten
des Motorrades, wie beispielsweise der Schrglage, erzeugt werden knnten, knnen
dem Fahrer ein besseres Fahrerlebnis ermglichen.

Auch ist nicht davon auszugehen, dass Motorrder autonom ohne das Eingreifen des
Fahrers fahren knnen. Anders als beim Auto wird das Motorrad immer die
Aufmerksamkeit des Fahrers bentigen. Somit sind selbstfahrende Motorder weniger
straentauglich, auch will Calimoto die Gruppe von Motorradfahren ansprechen die
das Motorrad aus Spa fahren.

54
Diese Zielgruppe wird wahrscheinlich nicht auf selbstfahrende Motorrder, wenn diese
verwirklicht werden, umsteigen. Calimoto will mithilfe von Frameworks wie mySPIN
das Fahrerlebnis dieser Gruppe intensivieren.

Auch fr Calimoto selber knnten diese Frameworks sehr hilfreich sein. So knnten
Motorrder, die sich mit dem IVI-System verbinden, sofort in die Garage des Users
falls noch nicht vorhanden eintragen. Standort des Motorrades kann zudem ber die
Calimoto Applikation als Feature jederzeit ermittelt werden.

Insgesamt wird diese Art von Frameworks das Leben der Fahrer sehr vereinfachen
und zudem dazu beitragen, dass sich die Sicherheit im Straenverkehr deutlich erhht.

55
Glossar
SDK Software Development Kit: Liefert eine Ansammlung an Werkzeugen, die
den Entwickler untersttzen sollen.

POI Point of Intrest: Standorte die fr den Fahrer von Bedeutung sein knnen
(Tankstellen etc.)

Moving Flag Gibt an ob sich das Fahrzeug bewegt oder Stillsteht

Identifier In dieser Arbeit ein Wert der einen Datensatz eindeutig Identifiziert

Appdelegate Eine Klasse, die vor dem eigentlichen Start einer Applikation wichtige
Voreinstellungen vornimmt.

Interface In Swift sogenannte Protocols, in Swift stellen diese verschiedene


Funktionen bereit, die beispielsweise den Datenaustausch zwischen UI
und Model ermglichen. Jedoch kann man auch eigene Protocols
schreiben.

56
Verweise
[Online] / Verf. MS2W. - Bosch SoftTec. -
MySPIN.Generic_app_requirements_GUIDELINE_APPENDIX_2wheeler_170512.pd
f. - 06. 06 2017. - www.developer.myspin.com.

[Online] / Verf. MSDev. - Bosch SoftTec. - mySPIN.SDK_Developers_Guide


(iOS).pfd . - 06. 06 2017. - www.developer.myspin.com.

[Online] / Verf. MSGuid. - Bosch SoftTec. - MySPIN.Quick_Start_Guide (iOS).pdf , . -


06. 06 2017. - www.developer.myspin.com.

Allianzdeutschland [Online] / Verf. Allianz. - 14. 07 2017. -


https://www.allianzdeutschland.de/ablenkung-gefaehrlicher-als-
alkohol/id_79645060/index.

Android Auto [Online] / Verf. GogDev. - 20. 07 2017. -


https://www.google.com/design/spec-auto/.

Android Auto [Online] / Verf. Goole. - 20. 07 2017. -


https://www.android.com/intl/de_de/auto/.

Aplle [Online] / Verf. APPLE. - 14. 07 2017. - https://www.apple.com/ios/carplay/.

Apple Carplay [Online] / Verf. Apdev. - 14. 07 2017. -


https://developer.apple.com/carplay.

Destatis [Online] / Verf. Destatis. - 17. 07 2017. -


https://www.destatis.de/DE/PresseService/Presse/Pressemitteilungen/2016/12/PD16
_430_63931.html.

Gesetze im Internet [Online] / Verf. Bundesministerium. - 15. 07 2017. -


https://www.gesetze-im-internet.de/stvo_2013/__23.html.

Iphone-Ticker [Online] / Verf. IpTikr. - 20. 07 2017. - https://www.iphone-


ticker.de/bitkom-studie-78-der-deutschen-nutzen-ein-smartphone-.

Newsroom Cisco. [Online] / Verf. CISCO. - 15. 07 2017. -


https://newsroom.cisco.com/press-release-
content?type=webcontent&articleId=1741352.

Statista [Online] / Verf. Statista/Bitkom. - 05. 07 2017. -


https://de.statista.com/statistik/daten/studie/166150/umfrage/nutzung-von-
smartphone-funktionen-in-deutschland/.

Telegraph UK [Online] / Verf. Telegraph. - 17. 07 2017. -


http://www.telegraph.co.uk/technology/2016/11/01/mobile-web-usage-
overtakesdesktop-.

57
Welt [Online] / Verf. Welt. - 21. 07 2017. -
https://www.welt.de/wirtschaft/webwelt/article155895862/Warum-Google-und-Apple-
im-Auto-nicht-glaenzen.html.

58
Tabellenverzeichnis

Tabelle 1 Kriterien fr den zu entwickelnden Prototypen .......................................... 20


Tabelle 2 Moving Flag dos and don'ts ...................................................................... 22
Tabelle 3 Calimoto Struktur und Aufbau mit mySPIN Integration ............................. 25
Tabelle 4 Calimoto Struktur und Aufbau mit mySPIN Integration whrend der Fahrt 26

Code Sample

Codesample 1 Einbindung mySPIN in Calimoto....................................................... 30


Codesample 2 Einbindung mySPIN in Calimoto....................................................... 30
Codesample 3 Delegate/Datasource Methoden UICollectionView ........................... 33
Codesample 4 Werte fr die CollectionView............................................................. 35
Codesample 5 Einbindung FocusController ............................................................. 37
Codesample 6 ViewWillAppear ................................................................................ 38
Codesample 7 HandleFocus Methode ..................................................................... 38
Codesample 8 ViewWillDisappear ............................................................................ 38
Codesample 9 Struct Favoriten ................................................................................ 40
Codesample 10 Methode zu Auslesen aus der Datenbank. ..................................... 40
Codesample 11 Anlegen zweier Favoriten Punkte. .................................................. 40
Codesample 12 Methode zum Speichern in der Datenbank..................................... 41
Codesample 13 Methode die die Rundtour erstellt. .................................................. 41
Codesample 14 Funktionen zum Starten, Pausieren und Beenden der Navigation . 42
Codesample 15 update Fahrer Position ................................................................... 43
Codesample 16 Speichern des Tracks ..................................................................... 43

59
Abbildungsverzeichnis
Abbildung 2.1 Mobiler Datenverkehr [CISCO] ............................................................ 6
Abbildung 2.2 Wachstum des Smartphone Marktes [Cisco] ....................................... 6
Abbildung 2.3 Umfrage, welche Funktionen werden am hufigsten benutzt
[Bitkom/Statista].......................................................................................................... 7
Abbildung 2.4 Untersttzte Ausfuhrmglichkeiten ...................................................... 9
Abbildung 2.5 Gesten Erkennung ............................................................................. 10
Abbildung 2.6 Aussehen des IVI-Systems ................................................................ 10
Abbildung 2.7 Kontraste Beispiel .............................................................................. 11
Abbildung 2.8 Tag/Nacht Modus .............................................................................. 12
Abbildung 2.9 Text Beispiel ...................................................................................... 12
Abbildung 2.10 Verbindung eines Smartphone mit dem IVI System [mySPINHMI s. 7]
................................................................................................................................. 13
Abbildung 2.11 Verbindung eines Smartphone mit dem IVI System Technisch
[mySPINHMI s. 7] ..................................................................................................... 14
Abbildung 2.12 mySPIN.Simulator [mySPINDEV s. 10] ........................................... 16
Abbildung 2.13 MiniLauncher [mySPINDEV s. 12] ................................................... 17

Abbildung 3.1 Beispiele Items [MS2W s. 6] .............................................................. 21


Abbildung 3.2 Calimoto Startseite ............................................................................ 23
Abbildung 3.3 Calimoto Navigation(links) und Rundtour(rechts) .............................. 24

Abbildung 4.1 Beziehung zwischen den Controller und den Views ADGuid ............. 28
Abbildung 4.2 UICollectionView mit den UICollectionCells [ADGuid] ....................... 29
Abbildung 4.3 UITableView mit den UITableViewCell, Setting aus dem Storyboard 29
Abbildung 4.4 Einbindung mySPIN in Calimoto URL Scheme.................................. 31
Abbildung 4.5 Einbindung des URL Scheme im Mini Launcher................................ 31
Abbildung 4.6 Hauptmen Calimoto Storyboard....................................................... 32
Abbildung 4.7 Calimoto mySPIN Storyboard MapController..................................... 34
Abbildung 4.8 Calimoto mySPIN Storyboard Rundtour zu Karte .............................. 34
Abbildung 4.9 Favoriten Darstellung plus dazugehriger Kartenansicht .................. 35
Abbildung 4.10 Liste der gefahrenen Strecken ......................................................... 36
Abbildung 4.11 Einstellungen ................................................................................... 37

Abbildung 5.1 Starbildschirm beim Verbinden mit dem IVI-System .......................... 44


Abbildung 5.2 Navigationsen .................................................................................. 45
Abbildung 5.3 Navigation durch das Men ............................................................... 45
Abbildung 5.4 My Tours Ansicht ............................................................................... 46
Abbildung 5.5 Einstellungen ..................................................................................... 46
Abbildung 5.6 Navigate to......................................................................................... 47
60
Abbildung 5.7 Strecke Potsdam-berlin ..................................................................... 48
Abbildung 5.8 Starte Navigation ............................................................................... 48
Abbildung 5.9 Create Route ..................................................................................... 49
Abbildung 5.10 Create Route Werte Verndert ........................................................ 49
Abbildung 5.11 Create Route Button ........................................................................ 50
Abbildung 5.12 Create Route Kartenansicht............................................................. 50
Abbildung 5.13 Tracking Ansicht .............................................................................. 51
Abbildung 5.14 Tracking gestartet ............................................................................ 52

61
Eigenstndigkeitserklrung

Hiermit gebe ich die Versicherung ab, dass ich die vorliegende Arbeit
selbststndig und ohne Benutzung anderer als der angegebenen
Hilfsmittel angefertigt habe. Alle Stellen, die wrtlich oder sinngem aus
verffentlichten und nicht verffentlichten Publikationen entnommen sind,
sind als solche kenntlich gemacht. Die Arbeit hat in gleicher oder hnlicher
Form noch keiner anderen Prfbehrde vorgelegen.

Ort, Datum Unterschrift


______________________ ______________________

62

Das könnte Ihnen auch gefallen