iPhone Programmierung

 

In letzter Zeit habe ich mich näher mit dem Thema App-Entwicklung befasst. Darunter versteht man die Programmierung, das Designen und das Verkaufen von „Apps“, also den „Miniprogrammen“ für Smartphones, die man für wenige Cent oder sogar kostenlos herunterladen kann.


Und genau so ein App habe ich nun selbst programmiert. Es heißt „SkyScribe“ und man kann damit Wörter oder kurze Nachrichten „in die Luft schreiben“, indem man das iPhone durch die Luft schwenkt !

Aber nun genug der Eigenwerbung ;).

Denn wie genau macht man überhaupt so ein App ? Und wie funktioniert „SkyScribe“ ? Wen das interessiert der kann jetzt weiterlesen.


Für die Apple-basierte Appentwicklung gibt es eine eigene Entwicklungsumgebung: Xcode

Programmiert wird in der Programmiersprache „Objective-C“, die wie der Name schon vermuten lässt stark an das gewöhnliche „C“ angelehnt ist. Wer also bereits C beherrscht hat es schonmal ein bisschen leichter...


Allerdings läuft die Programmierung anders ab als die von z.B. einem Microcontroller. Denn schließlich muss man zwei Dinge unter einen Hut bringen: Auf der einen Seite den Programmcode an sich, also die „Logik“ der Programms, und auf der anderen Seite die Kommunikation mit dem Benutzer, also die grafische Benutzeroberfläche („Graphic User Interface“, GUI). Und selbstverständlich müssen diese beiden Komponenten auch miteinander kommunizieren, um eine Interaktion des Benutzers mit dem Programm zu ermöglichen.


Um diese Aufgaben zu bewältigen wurde das sog. „Model-View-Controller Konzept“ entwickelt. Der „View“ ist das GUI, also die Benutzeroberfläche mit Buttons, Textfeldern usw. Das Model dagegen übernimmt z.B. Berechnungsaufgaben oder sonstige Programmspezifische Aufgaben. Diese beiden Bereiche sind völlig voneinander getrennt und haben miteinander nichts zu tun ! Um nun Daten zwischen View und Model auszutauschen gibt es den dritten Teil: Den Controller. Jeder View in einem Programm bekommt einen Controller. Dieser ließt z.B. Textfelder aus oder reagiert auf das Drücken von Buttons. Außerdem verarbeitet er bereits die Daten und leitet sie an das Model weiter. Das Model wiederum arbeitet mit diesen Daten und gibt das Ergebnis dieser Arbeit an den Controller zurück. Dort werden diese Daten dann wieder in für die Darstellung auf dem GUI vorbereitet.


Nehmen wir als Beispiel ein einfaches Taschenrechnerprogramm. Das GUI bzw. der View besteht dabei praktischerweise aus Buttons mit den Zahlen 0-9, einem „+“ und „-“ Button usw.

Der Controller ließt nun die vom Benutzer eingegebenen Zahlen und Operatoren ein: Tippt man z.B. „12 - 5“ speichert der Controller die Zahl 12 und die Zahl 5 in verschiedenen Speicherzellen und merkt sich außerdem den Operator den man gedrückt hat, in diesem Fall das Minuszeichen.

Diese Informationen übergibt er nun dem Model. Dort wird nun die eigentliche Rechenoperation durchgeführt. Das Ergebnis der Rechnung, 7, wird an den Controller zurückgegeben und von dort in den View geladen.

Fertig !


Wem das jetzt etwas viel auf einmal war braucht keine Angst haben, denn man braucht schon eine Weile bis man dieses System einigermaßen durchschaut...



Als nächstes will ich ein bisschen näher darauf eingehen wie mein App „SkyScribe“ funktioniert.


Die Idee für dieses Projekt hatte ich bereits früher: Als Weihnachtsgeschenk für meinen Bruder baute ich einen „Luft-Schreib-Stab“ (oder wie auch immer man es nennen will) - ein Holzstab mit 7 hellen LEDs. Schwenkt man diesen Stab schnell durch die Luft, wird ein Wort in die Luft „geschrieben“.


Die Funktionsweise ist relativ einfach: Das Wort, z.B. „HALLO“, wird in eine Punktmatrix-Schrift verwandelt, z.B. so:



Von diesem Muster wird nun immer eine Spalte abgeschnitten und von den LEDs dargestellt. Um das „H“ darzustellen gehen also zuerst alle 7 LEDs an, danach dreimal nur die vierte (mittlere) LED, und zum Schluss wieder alle 7. Wenn man den LED-Stab nun durch die Luft schwenkt, sieht es für das Auge so aus als stünde dort tatsächlich ein „H“ !



Und genau soetwas sollte auch mein App können: Man gibt einen Text ein, schwenkt das iPhone durch die Luft und der Text wird in die Luft „geschrieben“!


Und so funktioniert‘s: In das Textfeld gibt man ein Wort ein, z.B. HALLO. Dieses Wort wird nun Buchstabe für Buchstabe „codiert“, also in eine Punktmatrix-Schrift umgewandelt. Diese Schrift habe ich selbst „entworfen“ und für jeden Buchstaben und jedes Zeichen einzeln eingespeichert. Genauergesagt ist für jeden Buchstaben ein Code aus 1en und 0en vorhanden, wobei eine 1 „LED-an“ und 0 „LED aus“ bedeutet. Statt LEDs benutzt das App einfach 7 Kästchen auf dem iPhonebildschirm, die weiss oder schwarz gefärbt werden. Der Code „1001“ heißt also, erstes Kästchen an, zweites aus, drittes aus und viertes an. Einen solchen Code gibt es für jeden Buchstaben. Für das Wort „HALLO“ werden jetzt einfach die 5 Buchstabencodes aneinandergefügt.


Wenn man jetzt das iPhone schwenkt werden mit diesem Code die Kästchen auf dem Bildschirm gesetzt und das Wort entsteht !


Um den richtigen Zeitpunkt zum Losschreiben zu erwischen benutzt das App außerdem den Beschleunigungssensor der iPhones. Sobald dieser einen bestimmten Wert detektiert startet das App mit dem Schreiben !

              Eine Kurzanleitung


              Zum Appstore