Die Entstehung einer iPad App

Neulich habe ich aufgrund eines Projekts meine iOS / Cocoa Kenntnisse aufgefrischt. Dabei ist ein Nebenprodukt entstanden, dessen Entstehung ich mit Dir teilen möchte.

Um wieder mit iOS warm zu werden, habe ich beschlossen, eine kleine App zu programmieren. Da mein Sohn (4 Jahre, iPad- und Feuerwehr-Fan) gerade Interesse an Zahlen zeigt und wir keinen Abakus besitzen (nimmt ja nur Platz weg), habe ich unter Protest meiner Frau (sorry, andere Geschichte) beschlossen, kurzerhand einen zu entwickeln.

Das initiale Gerüst stand sehr schnell und kommt mit drei Klassen aus (Frame, Line, Stone). Als Hintergrund habe ich einen Holzboden gewählt, die Steine sind in schwarz und weiss gehalten. Und so sah die erste Version aus:

Challenges

Als Coder verabscheuen wir ja alle repetitive Aufgaben und sind froh, wenn wir einen Challenge finden. Beim Abakus fand ich folgende Aufgaben interessant:

  • Bewegen von mehreren Steinen gleichzeitig / Kollisionen
  • Das Weitergleiten eines Steines, wenn er mit Schwung „geschossen“ wird
  • Realistische Animation beim Kippen des iPads

Selbstverständlich lassen sich sämtliche Steine auf einmal nach links oder rechts kippen, indem man das iPad in die entsprechende Richtung neigt. Die erste Animation sah aber scheusslich mechanisch aus. Erst nachdem ich die Animations-Geschwindikeit jedes einzelnen Steines mit einem Zufallswert versah, verhielt sich der Software-Abakus natürlich.

Als ich die App das erste Mal auf dem iPad laufen liess, stellte sich heraus, dass sich das Verschieben der Steine auch noch etwas seltsam anfühlte. Wenn man mit Schwung einen Stein verschob und los liess, blieb dieser abrupt stehen. Bei einem echten Abakus gleitet der Stein natürlich weiter. Lösen konnte ich dies, indem ich die Timestamps der Touch-Events auslies und bei schnellen Bewegungen den Stein mit Hilfe einer Ease-Out Animation über das Ziel hinaus schiessen liess.

Das Bewegen mehrerer Steine ist ein schönes Beispiel für objekt-orientierte Programmierung. Wenn ein Stein bewegt wird, meldet er dies über eine Methode seiner Linie. Diese prüft, ob links oder rechts ein Stein kollidiert und verschiebt ihn in diesem Fall ebenfalls. Mehr war nicht nötig.

Als ich das fertige Programm stolz herumgezeigt hatte, meinte mein Schwiegervater bloss „Kann das auch rechnen?“ – also nahm ich mir die paar Minuten und implementierte unten rechts eine Anzeige, die den aktuellen Wert anzeigte. Der mögliche Maximalwert liegt in dieser Version übrigens bei über 100 Millionen.

Kids Edition

Marktanalyse war bisher kein Thema, da ich die App machen wollte – auch wenn es schon dutzende Abaki(?) im AppStore geben mochte. Um mich nicht zu demotivieren habe ich Research im AppStore bewusst vermieden. Nun aber war die App fast fertig, also mal schauen, was es bereits gibt: Und wie vermutet gibt es natürlich schon zahlreiche Abaki.

Den aktuellen Abakus fand ich zwar ganz toll und gefiel mir vom Design, aber was ich vergessen hatte: Ich habe ihn ursprünglich für meinen vierjährigen Sohn gemacht. Und nach einem Kinder-Tool sieht das nicht aus. Also erstellte ich mit git einen neuen Branch und suchte auf die Schnelle ein farbenfrohes Hintergrundbild und machte auch die Steine farbiger. Die Reihen reduzierte ich, denn welcher Vierjährige rechnet schon in Millionen! Hier das Ergebnis:

Sieht doch schon eher Kiddie-gerecht aus. Am nächsten morgen zeigte ich die App meinem Sohn, der gleich in lautes Staunen ausbrach. Kinder mögen’s bunt.

Ein sanfter Hinweis meiner Frau liess mich die Bildwahl jedoch überdenken. Ist eine Opium-rauchende Raupe als Hintergrundbild tatsächlich geeignet für eine kinderfreundliche App?

(P.S. wie ich später gesehen habe, fliesst die Darstellung von Drogenkonsum in die Wertung von Apps ein.)

Wie es weiter ging, erzähle ich Dir demnächst im zweiten Teil.

 

Autor: Simon

IT Security Spezialist, in Zürich aufgewachsen, zweifacher Vater und speziell interessiert am interaktiven Web, Audio Engineering und Kino. Erfahre mehr über mich und folge mir auf Twitter: @-simwep

Ein Gedanke zu „Die Entstehung einer iPad App“

Schreib einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *