Start Developing iOS Apps Today: Tutorial: Basics

Mein Weg zum Apple-Entwickler

Gestern habe ich meinen Einstieg in eine große neue Karriere und eine leuchtende Zukunft gefeiert. Ich werde Apple-Entwickler 😉

O.K. Leben kann man davon wahrscheinlich nicht, vor allem nicht mit meiner geringen Programmiererfahrung. Aber eine intellektuelle Herausforderung ist es schon und hat mir sehr viel Spaß gemacht.

Ich traf mich mit einem guten Freund dessen Mission schon seit Jahren ist die Leute für Apple und die Schönheit der Software-Entwicklung auf dieser Plattform zu begeistern. Ich muss zugeben: nach einigen Stunden intensiver Arbeit hat er mein Interesse geweckt.

Mein Kopf schmerzte nach dieser Druckbetankung. Ganz ehrlich: alles habe ich nicht verstanden. Aber es war faszinierend, vor allem da meine Programmiererfahrungen bei prozeduralen Programmiersprachen wie Pascal stecken geblieben sind. Ich habe nie den Mindshift in Richtung objektorientierter Programmierung geschafft. Umso interessanter fand ich die Apple-Umsetzung in der XCode-Entwicklungsumgebung.

Swift – eine neue Sprache für Anfänger?

Der Aufhänger war, daß Apple mit Swift eine neue Programmiersprache auf der WWDC vorgestellt hat. Damit sollte sich mir die Möglichkeit ergeben, ebenfalls wie erfahrene Objective C-Programmierer, neu anzufangen. Ein konkretes Projekt wollten wir in diesen Stunden erarbeiten. Eigentlich hat eine Freundin den Vorschlag gemacht, daß wir eine App entwickeln sollen, die Wetterkarten daraufhin untersuchen sollen, wo jetzt gerade die Sonne scheint, und dann einen Routenvorschlag dorthin liefert. Natürlich sollte die Sonne auch bei der Ankunft an diesem Ort noch scheinen 🙂

Leider war mein Kollege der Meinung, daß dies nur bei Zusammenarbeit mit Dienstleistern möglich ist, die Kartendienste anbieten. Als Startprojekt also nicht zu empfehlen. Stattdessen haben wir dann meine Idee weiterverfolgt, die vorsieht zwei Listen miteinander zu vergleichen und die Unterschiede auszugeben. Diese Listen entstehen, indem man eine Textdatei ausliest, die vorher über das Unix-Kommando “ls -a > sourcelist.txt” erzeugt wurde, oder indem man ein Verzeichnis rekursiv ausliest.

Gesagt getan und wir haben ein Swift-Projekt mit dem klingenden Namen “List Compare” in der aktuellen XCode-Beta erzeugt.

Mein erstes Swift-Programm

Und da begann schon der erste Lernprozess: das Design der App und sein User Interface. Wir entschieden uns für ein Hauptfenster mit drei Listen-Bereichen und einen Refresh Button. Ausserdem ein weiteres Fenster für die Settings, wo jeweils die Quell-Datei/der Quell-Pfad und die Vergleichs-Datei/der Vergleichs-Pfad eingestellt werden kann. Natürlich sollten diese Felder auch direkt über Drag & Drop gefüllt werden können.

Die beiden Quell-/Vergleichslisten sollten alphabetisch sortiert die Zeilen anzeigen und dann diese beiden Listen vergleichen. In die Missing-Liste sollten dann die Differenzen eingetragen werden.

Natürlich wollte mein erfahrener Kollege ein automatisches Update der Listen über Bindings realisieren, aber wir bekamen das leider nicht in diesem Swift-Projekt hin und haben uns dann mit einem zusätzlichen Refresh-Button im Hauptfenster beholfen.

Bis dahin war fast alles nur im Interface Builder gemacht worden und noch keine einzige Zeile Code geschrieben worden. Es ist schon interessant, was alles an Apple-Designkonventionen einzuhalten ist und wie sehr man von der Entwicklungsumgebung unterstützt wird. Dann legten wir das erste Objekt “WindowController” an und fingen in diesem Objekt zu programmieren an. Aber ab da wurde es kompliziert in dem Sinne, daß ich bei fast jedem Detail nachfragen musste, weil hier einfach Spezialwissen eines erfahrenen Apple-Programmierers erforderlich ist. Daß unser WindowController-Object die Eigenschaften einer Klasse vererbt bekommt, war mir ja noch klar; aber nicht welcher. 

Also einfach nur zuhören und die Erklärung akzeptieren. Aber ansonsten waren die nächsten Schritte schon sehr verständlich. Schön, daß man immer noch Funktionen schreiben kann, die z.B. eine Datei oder ein Verzeichnis zeilenweise auslesen und in Arrays schreiben. Und dann ist es wieder faszinierend zu sehen, wie einfach es ist, dieses Array in einem der dafür vorgesehen Listenbereiche im Fenster darzustellen und sich um nichts weiter kümmern zu müssen (Scrolling der Liste, markieren von Listenelementen etc.), da hier die vererbten Eigenschaften der Parent-Objekte verfügbar und nutzbar sind. 

Auch das sortieren ist eine Zeile Programmcode. Und das vergleichen von zwei Listen besteht auch nicht aus mehr als drei Zeilen. Es hat mich sehr beeindruckt zu sehen, was alles mit einer modernen Entwicklungsumgebung und Programmiersprache möglich ist. All die Vorschläge, die beim Tippen eingeblendet werden und einem aufzeigen, aus welchen Bestandteilen von Routinen, Eigenschaften oder Variablen man zugreifen kann. 

Und zum Schluß ist natürlich die Google-Suche nach Problemlösungen fast immer hilfreich. Der wichtigste Spruch meines Kollegens an diesem Abend war: “Du bist niemals der Erste, der ein Problem zu lösen hat.” Schon faszinierend zu sehen, daß diese Entwickler ihre Erkenntnisse sehr sorgfältig im Netz aufbereiten und bereitstellen.

Am Ende dieses Abends hatten wir ein lauffähiges Programm, das genau das erledigte, wofür wir es geschaffen haben.

Ich will mehr ;-). Es hat wahnsinnig viel Spaß gemacht.

Start Developing iOS Apps Today: Tutorial: Basics

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.