Lernziel
Nach dieser Lektion kannst du ein neues Projekt anlegen und kennst die wichtigsten Bereiche von Xcode: wo dein Code steht, wo du das Ergebnis siehst und wo Fehlermeldungen auftauchen.
Das Problem: Ein Cockpit voller Knöpfe
Wer Xcode zum ersten Mal öffnet, fühlt sich oft wie im Cockpit eines Flugzeugs: überall Knöpfe, Leisten und Symbole. Die gute Nachricht: Du brauchst am Anfang nur einen kleinen Teil davon. Den lernst du jetzt kennen. Den Rest entdeckst du nach und nach im Kurs.
Schritt 1: Ein neues Projekt anlegen
Ein Projekt ist in Xcode der Ordner, in dem alles zu einer App liegt: Code, Bilder, Einstellungen.
- Öffne Xcode.
- Klick im Willkommensfenster auf Create New Project… (oder später über das Menü File → New → Project…, Kürzel
⇧ ⌘ N) - Wähle oben iOS und dann die Vorlage App. Klick auf Next.
Jetzt fragt Xcode nach ein paar Angaben:
| Feld | Was eintragen? | Erklärung |
|---|---|---|
| Product Name | HelloWorld | Der Name deiner App |
| Team | Dein Name (Personal Team) oder „None“ | Brauchst du erst für ein echtes iPhone |
| Organization Identifier | com.deinname | Eine eindeutige Kennung für dich, z. B. com.annamueller |
| Interface | SwiftUI | ⚠️ Wichtig! Nicht „Storyboard“ wählen |
| Language | Swift | |
| Testing System | None | Tests kommen in Stufe 4 |
| Storage | None | Speicherung kommt in Stufe 3 |
Was ist der Bundle Identifier?
Unter den Feldern zeigt Xcode com.deinname.HelloWorld an. Das ist der weltweit eindeutige „Personalausweis“ deiner App. Deshalb nimmt man üblicherweise eine umgedrehte Web-Adresse oder seinen Namen als Anfang.
- Klick auf Next, wähle einen Speicherort (z. B. einen Ordner „SwiftUI-Kurs“ in deinen Dokumenten) und dann Create.
Tipp
Leg für den ganzen Kurs einen eigenen Ordner an. Du wirst viele kleine Projekte erstellen und willst sie später wiederfinden.
Schritt 2: Die fünf Bereiche von Xcode
Nach dem Erstellen öffnet sich das Hauptfenster. Es besteht aus fünf Bereichen:
┌─────────────────────────────────────────────────────────────┐
│ ① Toolbar [▶ ■] HelloWorld › iPhone-Simulator │
├───────────┬───────────────────────────┬───────────┬─────────┤
│ │ │ │ │
│ ② Navi- │ ③ Editor │ ④ Canvas │ Inspec- │
│ gator │ (dein Code) │ (Vor- │ tor │
│ │ │ schau) │ │
│ ├───────────────────────────┴───────────┤ │
│ │ ⑤ Debug-Bereich / Konsole │ │
└───────────┴───────────────────────────────────────┴─────────┘(Der Gerätename in der Toolbar hängt von deiner Xcode-Version ab.)
① Die Toolbar (oben)
Die wichtigsten Elemente:
- ▶ Play-Button (
⌘ R): baut deine App und startet sie - ■ Stop-Button (
⌘ .): beendet die laufende App - Geräteauswahl: Neben dem Projektnamen siehst du ein Gerät, z. B. ein iPhone-Modell. Klick darauf, um zu wählen, auf welchem Simulator oder iPhone die App laufen soll.
- Statusanzeige in der Mitte: zeigt, was Xcode gerade tut („Building…“, „Running…“) und ob es Fehler oder Warnungen gibt.
② Der Navigator (links)
Hier siehst du alle Dateien deines Projekts, ähnlich wie im Finder. In einem neuen Projekt sind das:
| Datei | Wofür? |
|---|---|
HelloWorldApp.swift | Der Startpunkt deiner App |
ContentView.swift | Der erste Bildschirm deiner App |
Assets | Bilder, Farben und das App-Symbol |
Ein Klick auf eine Datei öffnet sie im Editor.
Ein- und ausblenden mit ⌘ 0 (Null). Über die Symbole oben im Navigator kannst du zu anderen Ansichten wechseln, etwa zur Suche (Lupe) oder zur Fehlerliste (Warndreieck).
③ Der Editor (Mitte)
Hier schreibst du deinen Code. Klick im Navigator auf ContentView.swift. Du siehst ungefähr das hier:
import SwiftUI
struct ContentView: View {
var body: some View {
VStack {
Image(systemName: "globe")
.imageScale(.large)
.foregroundStyle(.tint)
Text("Hello, world!")
}
.padding()
}
}
#Preview {
ContentView()
}Du musst das noch nicht verstehen. Nur so viel:
Image(systemName: "globe")zeigt ein Globus-Symbol.Text("Hello, world!")zeigt einen Text.VStackstapelt beides untereinander.
Die Farben im Code nennt man Syntax-Highlighting. Sie helfen dir, Code schneller zu lesen: Texte in Anführungszeichen haben eine Farbe, Schlüsselwörter wie struct oder var eine andere.
④ Der Canvas (rechts neben dem Editor)
Das ist die Vorschau (Preview) deines Bildschirms. Sie aktualisiert sich automatisch, während du tippst. Du siehst sofort, wie deine Änderung aussieht, ohne die App zu starten.
Siehst du keinen Canvas? Dann:
- Menü Editor → Canvas aktivieren, oder
- Kürzel
⌥ ⌘ ↩(Option + Command + Enter)
Wenn die Vorschau pausiert ist, klick auf den kleinen Aktualisieren-Pfeil im Canvas oder drück ⌥ ⌘ P.
Erwartetes Ergebnis
Im Canvas siehst du ein iPhone mit einem Globus-Symbol und darunter „Hello, world!“.
Der Inspector (ganz rechts) zeigt Details zur gerade ausgewählten Datei oder zum ausgewählten Element. Am Anfang brauchst du ihn kaum. Ein- und ausblenden kannst du ihn mit ⌥ ⌘ 0.
⑤ Der Debug-Bereich (unten)
Hier erscheinen Ausgaben, während deine App läuft, zum Beispiel Nachrichten, die du mit print(...) ausgibst, und Fehlerberichte. Der rechte Teil heißt Konsole.
Ein- und ausblenden mit ⇧ ⌘ Y.
Schritt 3: Deine erste Änderung
Jetzt wird's ernst. Ändere im Editor die Zeile
Text("Hello, world!")in
Text("Hallo, ich lerne SwiftUI!")Schau auf den Canvas: Der Text ändert sich fast sofort. 🎉
Und jetzt mach absichtlich etwas kaputt. Lösch das letzte Anführungszeichen:
Text("Hallo, ich lerne SwiftUI!)Nach kurzer Zeit erscheint eine rote Markierung am Zeilenrand und eine Fehlermeldung, z. B.:
Fehlermeldung
Unterminated string literal
Übersetzt: „Der Text wurde nicht abgeschlossen.“ Xcode vermisst das schließende Anführungszeichen. Füg es wieder ein, und der Fehler verschwindet.
Rot und Gelb
🔴 Rot = Fehler. Die App lässt sich nicht bauen, bis du ihn behebst.
🟡 Gelb = Warnung. Die App läuft, aber Xcode hat einen Verbesserungsvorschlag.
Schritt 4: Die App im Simulator starten
Der Canvas ist praktisch, aber nur eine Vorschau. Jetzt starten wir die App „richtig“:
- Wähle oben in der Toolbar ein iPhone-Modell als Ziel aus.
- Klick auf ▶ oder drück
⌘ R. - Warte einen Moment: Xcode baut die App, startet den Simulator und installiert die App darauf.
Beim ersten Mal dauert das etwas länger, weil der Simulator hochfahren muss.
Erwartetes Ergebnis
Ein Fenster mit einem iPhone öffnet sich, und deine App zeigt „Hallo, ich lerne SwiftUI!“.
Der Simulator verhält sich wie ein echtes iPhone: Du kannst mit der Maus tippen und wischen, zum Home-Bildschirm wechseln (⇧ ⌘ H) und deine App erneut öffnen.
Beenden kannst du die App mit ■ in Xcode (⌘ .).
Die wichtigsten Tastenkürzel
Du musst sie nicht alle sofort lernen. Druck dir die Tabelle aus oder kehr später hierher zurück.
| Kürzel | Aktion |
|---|---|
⌘ R | App bauen und starten |
⌘ . | App stoppen |
⌘ B | Nur bauen (ohne starten), gut zum Fehler-Prüfen |
⌥ ⌘ ↩ | Canvas ein-/ausblenden |
⌥ ⌘ P | Vorschau aktualisieren |
⌘ 0 | Navigator ein-/ausblenden |
⇧ ⌘ Y | Debug-Bereich ein-/ausblenden |
⇧ ⌘ O | Datei schnell öffnen (Name eintippen) |
⌃ I | Code automatisch einrücken (markierten Bereich) |
⌘ / | Zeile auskommentieren |
Typische Probleme
Der Canvas zeigt „Preview paused“ oder eine Fehlermeldung
Klick auf den Aktualisieren-Pfeil oder drück ⌥ ⌘ P. Hilft das nicht: Prüf, ob dein Code einen roten Fehler hat. Die Vorschau funktioniert nur, wenn der Code fehlerfrei ist.
Ich habe aus Versehen „Storyboard“ statt „SwiftUI“ gewählt
Dann sieht dein Projekt völlig anders aus. Am einfachsten: Projekt schließen, löschen und neu anlegen, diesmal mit Interface: SwiftUI.
Ich habe einen Bereich versehentlich ausgeblendet
Alle Bereiche lassen sich über das Menü View wieder einblenden. Oder du nutzt die Kürzel oben.
Der Simulator ist sehr langsam
Beim ersten Start ist das normal. Bleibt er langsam, hilft es oft, andere Programme zu schließen oder den Simulator einmal zu beenden und neu zu starten.
FAQ
Anfänger
Was bedeutet das überhaupt?Muss ich meine Dateien speichern?
Xcode speichert automatisch, spätestens wenn du die App baust. Ein ⌘ S zwischendurch schadet aber nicht.
Was ist der Unterschied zwischen Canvas und Simulator? Der Canvas zeigt eine schnelle Vorschau einer einzelnen View, ideal zum Gestalten. Der Simulator führt die ganze App aus, so wie auf einem echten iPhone. Im Alltag nutzt du meist den Canvas und startest den Simulator, um das Zusammenspiel zu testen.
Was bedeutet import SwiftUI ganz oben?
Damit sagst du Xcode: „Ich möchte den Werkzeugkasten SwiftUI benutzen.“ Ohne diese Zeile kennt die Datei Dinge wie Text oder VStack nicht.
Fortgeschritten
Warum verhält es sich so?Kann ich die Schriftgröße im Editor ändern?
Ja: ⌘ + und ⌘ - vergrößern bzw. verkleinern. Dauerhaft geht das unter Xcode → Settings… → Themes. Dort findest du auch dunkle und helle Farbschemata.
Kann ich mehrere Previews gleichzeitig sehen?
Ja. Mehrere #Preview-Blöcke in einer Datei erscheinen als einzelne Reiter im Canvas. Wie man das sinnvoll nutzt, z. B. für Dark Mode und große Schrift, lernst du in Lektion 2.3.
Profi
Was passiert unter der Haube?Was passiert, wenn ich auf ▶ drücke?
Xcode führt einen Build aus: Der Swift-Compiler übersetzt deinen Code in Maschinencode, der Linker verbindet ihn mit den System-Frameworks, und alles wird zu einem App-Paket (.app) gebündelt und signiert. Dieses Paket installiert Xcode auf dem Ziel und startet es mit angehängtem Debugger (LLDB). Deshalb erscheinen print-Ausgaben in der Konsole.
Wie funktioniert die Preview technisch?
Xcode baut deinen Code in einem speziellen Modus, führt ihn in einem eigenen Prozess aus und rendert nur die View im #Preview-Block. Kleine Änderungen werden möglichst schnell nachgeladen, ohne die ganze App neu zu bauen. Deshalb ist der Canvas viel schneller als ein kompletter Start im Simulator.
Übungen
Übung 1: Dein Name
Ändere den Text so, dass dort „Hallo, ich bin [dein Name]!“ steht. Starte die App im Simulator.
Übung 2: Anderes Symbol
Ersetze "globe" durch "heart.fill". Was passiert? Probier auch "star.fill" und "sun.max.fill".
Lösung Übung 2Erst selbst probieren!
Statt des Globus erscheint ein gefülltes Herz. Image(systemName:) lädt Symbole aus SF Symbols, Apples Bibliothek mit Tausenden Symbolen. Du lernst sie in Lektion 2.6 genauer kennen.
Übung 3: Fehler-Detektiv
Bau nacheinander drei absichtliche Fehler ein und notiere jeweils die Fehlermeldung:
- Lösch eine schließende geschweifte Klammer
}. - Schreib
textstattText. - Schreib
Text(Hallo)ohne Anführungszeichen.
Lösung Übung 3Erst selbst probieren!
Die genauen Meldungen können je nach Xcode-Version leicht abweichen. Ungefähr:
- Fehlende
}:Expected '}' in struct. Xcode vermisst das Ende eines Blocks. textstattText:Cannot find 'text' in scope. Swift unterscheidet Groß- und Kleinschreibung und kennt nichts namenstext.Text(Hallo):Cannot find 'Hallo' in scope. Ohne Anführungszeichen hält SwiftHallofür einen Namen, nicht für einen Text.
Merke: „Cannot find … in scope“ heißt fast immer: Tippfehler oder fehlende Anführungszeichen.
Zusammenfassung
- Ein neues Projekt: iOS → App, Interface SwiftUI, Sprache Swift.
- Navigator (links): deine Dateien. Editor (Mitte): dein Code. Canvas (rechts): die Vorschau. Debug-Bereich (unten): Ausgaben.
⌘ Rstartet die App im Simulator,⌘ .stoppt sie.- 🔴 Rot = Fehler, 🟡 Gelb = Warnung.
Spickzettel
⌘ R Starten ⌘ . Stoppen
⌥ ⌘ ↩ Canvas ⌥ ⌘ P Vorschau aktualisieren
⌘ 0 Navigator ⇧ ⌘ Y Debug-Bereich