Swift-Tagebuch, Teil 2 Der Weg zur eigenen Mac-App
Übung macht den Meister! Nachdem unser Autor mehrfach die Swift-Grundlagenkurse auf dem iPad bewältigt hat, macht er sich jetzt an seine erste Mac-App. Das Programm ist natürlich sehr simpel, doch für ihn ein Meilenstein.
Anbieter zum Thema

Nachdem ich mich im ersten Teil des Swift-Tagebuchs mit der iPad-App Swift-Playgrounds in der Logik von Swift und der Programmierung im Allgemeinen geschult habe, war es nach vier Wochen endlich an der Zeit, mich mit dem „echten“ Programmieren zu beschäftigen.
Die Programmiersprache Swift ist dabei durchaus hilfreich, da sie über eine vergleichsweise einfache Syntax verfügt. Trotzdem stellt sich bei mir vor allem das Problem der algorithmischen Denke, Code-Können hin oder her. Aber Apples Xcode hilft, wo es kann.
Ich schnappe mir für den Anfang eine Simpel-App, wie sie jeder Programmieranfänger kennt: Hello World von Ray Wenderlich und baue diese – mit Abwandlungen – für den Anfang nach.
Tag 28: Xcode installieren und erste App „abschreiben“
Es ist nicht ganz einfach, sich mit Ende 30 noch einmal mit einer völlig neuen Aufgabe zu befassen. Die Programmierung ist so etwas: Zuletzt in der Schule mit Turbo-Pascal, ein wenig Minimal-Informatik an der Uni, dann über 15 Jahre praktisches Journalistendasein, in dem ich zwar viel über Programmierung recherchierte oder schrieb – aber eben nie selbst zum Code-Editor griff.
Der Leser mag sich jetzt wundern, aber das ist bei den meisten Dingen so, über die berichtet wird. Denn der Journalist wäre ja nicht Journalist, wenn er in seinem Themenfeld praktischer Experte wäre. Er wäre Politiker, Regisseur, Bestseller-Autor, Ingenieur, Designer, Physiker, Weltreisender, Philosoph oder, nun ja: Eben Programmierer.
Sie ahnen, worauf das hinausläuft: Darüber schreiben setzt ein gewisses Verständnis der Materie voraus, aber praktische Erfahrung ist nicht vonnöten. Weshalb ich mich ja eben in dieser Reihe einmal praktisch mit Swift auseinander setze und dafür wochenlang Logik und Code geübt habe. Ich will mich nun also an mein erstes eigenes Programm setzen. Und lade erst einmal Apples dickes Xcode für macOS aus dem Mac-AppStore herunter.
Hallo-Welt-App bauen: Erste Schritte
Nun geht es ans Eingemachte: Ich öffne ein neues Xcode-Projekt und nenne es „Hallowelt“. Xcode legt selbstständig die dafür benötigte App-Logik samt der grundlegenden Programmbestandteile an. Anschließend drücke ich den „Play“-Knopf, der für ein Ausführen der „App“ sorgt. Wenig überraschend zeigt sich ein neues Fenster, das jedoch keinen Inhalt hat.
Über den Stopp-Knopf schließe ich das Programm wieder und klicke anschließend auf „Main.Storyboard“: Hier kann die App „designt“ werden. Ich ziehe ein Text-Feld in den View-Controller, außerdem einen „Push Button“ und ein „Label“. Klicke ich eines der Elemente an, erscheint rechts ein Editor, in dem ich Schriftgrößen und viele andere Dinge einstellen kann. Ich positioniere die Objekte und bezeichne sie sinnvoll.
UI mit dem Code verbinden
Das User-Interface ist gebaut, jetzt geht es darum, die App auch mit Funktionen zu versehen. Das Demo-Projekt soll den Namen des Nutzers sammeln und anschließend „Hallo XY“ ausgeben, ganz einfach. Dazu muss der Code jetzt mit der UI verbunden werden, was in Xcode gottlob per Drag & Drop funktioniert.
Also öffne ich die Code-Ansicht der ViewController.swift-File und ziehe nach und nach die UI-Elemente in den Code, zunächst die beiden Textfelder und anschließend den Knopf als „Action“. Anschließend muss der Knopf noch mit einer Aktion belegt werden. Dazu ergänze ich eine Namenfeld-Variable, die aus dem Namensfeld übernommen wird. Ist das Feld leer, soll es automatisch „Welt“ ergänzen, wodurch die Ausgabe „Hallo Welt“ ist.
Das erste Programm und stolz wie Oskar
Das war es auch schon: Ich lasse das Programm erneut laufen: Es besitzt ein Eingabefeld, einen Aktionsknopf und ein Ausgabefeld – ein echtes Programm also, wenn auch etwas, nun ja, simpel und obendrein abgepinnt. Trotzdem bin ich stolz, auch wenn es funktional und inhaltlich sicher verbesserungswürdig ist.
Das soll aber jetzt nicht das Thema sein: Ich will das Ding als App auf meinem Mac nutzen! Die ideale Voraussetzung, um sich noch mit den restlichen Schritten der Mac-App-Erstellung zu befassen. Nach diesem nervenaufreibenden ersten Programmiertag ist es Zeit, sich mit anderen Dingen zu befassen. Vielleicht mit einem Baldrian-Tee und einer Netflix-Serie.
Tag 29: Die erste Mac-App fertigstellen
Meine Hallo-Welt-App ist „fertig“, auch wenn echte Programmierer jetzt laut heulen dürften. Wichtig für mich ist jetzt: Wie bekomme ich das Ding in ein Format, das ich zum Beispiel auf meiner Website zum Download anbieten kann? Dafür ist noch ein wenig Feinarbeit nötig: Zunächst braucht das Ding ein Icon.
Mit Pixelmator erstelle ich schnell ein simples PNG-Icon mit 512x512 Pixeln. Anschließend klicke ich im Projekt-Navigator auf „Assets.xcassets“ und schiebe hier mein Icon hinein. Grundsätzlich brauchen MacOS-Apps verschiedene Icons in verschiedenen Auflösungen, in meinem Fall reicht das eine, auch wenn sich mit einem Tool wie Icon Set Creator schnell die nötigen Größen generieren lassen. Erneutes Ausführen der App zeigt jetzt das Icon an.
App kompilieren und verwenden
Die Hallowelt-App ist jetzt soweit fertig. Doch wie kommt sie aus Xcode heraus in die Welt? Auf den ersten Blick scheint Xcode nur eine Möglichkeit zu bieten, den signierten Code mittels Apple-Developer-Account zu exportieren. Das stimmt jedoch nicht: Im Projekt-Navigator muss ich nur nach Erstellung des Builds den Ordner „Products“ aufklappen.
Hier befindet sich dann auch die (unsignierte) App, die ich einfach rechts anklicke und im Finder anzeigen lasse. Per Copy-Paste findet die App dann auch ganz schnell ihren Weg auf meinen Desktop – und von dort aus in die Welt.
Sicher: Die Hallowelt-App ist bestimmt kein programmiertechnisches Meisterwerk. Aber die Vorgehensweise zeigt, dass die Nutzung von Swift in Xcode samt Erstellung einer fix und fertigen App keine Magie ist. Im nächsten Teil versuche ich mich dann an einer wirklich eigenen App, die auch tatsächlich einen Mehrwert bietet.
(ID:45481559)