Überblick über die App-Entwicklung mit Xcode

von @ralfebert · aktualisiert am 3. November 2021
Xcode Xcode ist die Apple-Entwicklungsumgebung zur Entwicklung für iOS, macOS, tvOS und watchOS. Da Xcode ausschließlich für macOS verfügbar ist, wird ein Mac benötigt, um Xcode zu verwenden.
iOS SDK In Xcode enthalten ist das iOS SDK mit allen benötigten Bibliotheken zur Entwicklung von iOS-Apps. So enthält Xcode 13 zum Beispiel das SDK für die Entwicklung für iOS 15.
Swift Apps für iOS werden in Swift entwickelt und mit dem in Xcode integrierten LLVM-Compiler übersetzt (ältere Apps sind ggf. in Objective C entwickelt - diese Sprache kann weiter verwendet werden, ist jedoch in modernen App-Projekten eher nicht mehr üblich).
Swift Seit 2019 gibt es mit SwiftUI ein neues UI-Framework als Alternative zum bestehenden UIKit-Framework. Dieses ist zwar vom Funktionsumfang noch nicht so mächtig wie UIKit, bietet jedoch gerade für neue App-Projekte viele ansprechende Features wie eine sehr komfortable code-basierte UI-Erstellung mit einer kompakten Syntax und unmittelbarer Vorschau.
iOS Simulator Der iPhone Simulator erlaubt das schnelle Testen ohne Hardware-Gerät. Dabei wird unter macOS das Verhalten von iOS-Geräten simuliert.
Instruments Instruments ist ein Profiler, mit dem Apps auf Speicher- und Performance-Engpässe hin untersucht werden können.

Aufbau von Xcode

In Xcode findest Du um den Editierbereich herum den Navigator, die Utilities und die Debug Area. Mit den Buttons links/rechts oben können diese ein- und ausgeblendet werden:

Xcode: Navigator, Debug Area, Utilities

Xcode Projektstruktur

Folgende Dateien werden standardmäßig in einem Xcode-Projekt für eine iOS-App (in der Variante für SwiftUI) angelegt:

Das Xcode-Projekt enthält projektweite Einstellungen und die Target-Konfigurationen, die den Xcode-Build steuern.
Für jedes Target wird ein Ordner mit den zugehörigen Dateien angelegt.
SwiftUI-Apps haben einen zentralen Einstiegspunkt, das App-struct.
Die grafische Oberfläche von SwiftUI-Apps wird in Views realisiert. Standardmäßig wird ein ContentView-struct mit einem zugehörigen PreviewProvider erstellt und im App-struct eingebunden.
Assets.xcassets enthält Icons und Grafiken in verschiedenen Auflösungen, unter anderem das App-Icon.
Preview Content enthält Inhalte die nur für die Vorschau zur Entwicklungszeit relevant sind.

Hinweis: Mit den letzten Xcode-Versionen wurde die Projektstruktur sehr stark vereinfacht. In älteren Projekten findet sich oft noch ein AppDelegate (dieses wurde durch App ersetzt), sowie eine Datei Info.plist für Konfigurationsoptionen, die zur Laufzeit geladen werden, zum Beispiel die Versionsnummer der App oder unterstützte Geräte-Drehungen (diese wird nun erst angelegt, wenn Optionen verändert werden).

Ältere Projekte, die in UIKit entwickelt wurden, haben meist ein Main.storyboard, aus dem die grafische Oberfläche der App geladen wird, sowie UIViewController-Klassen die für die Anzeigelogik verantwortlich sind. Diese Konstrukte werden in der modernen App-Entwicklung von SwiftUI abgelöst, auch wenn diese ursprüngliche Art, Apps mit dem UIKit-Framework zu entwickeln, weiter unterstützt wird und auch in SwiftUI-Apps teilweise noch eine Rolle spielt.

Ausführen von Apps im Simulator

Der iPhone Simulator simuliert das Verhalten von iOS unter macOS weitgehend analog zu einem echten Hardware-Gerät. Dazu wird die App für die x86-64-Architektur des Macs kompiliert. Um Apps im Simulator zu starten, wähle einen der iPhone-Simulatoren in der Schema-Auswahl und starte die App mit Product » Run ⌘R:

Schema-Auswahl: iPhone-Simulator

Beim Testen im Simulator gilt es einige Unterschiede zu den echten Geräten zu beachten:

  • Die Performance des Prozessors, Grafikprozessors und des Netzwerks sowie der verfügbare Speicher entsprechen dem ausführenden Mac.
  • Einige iOS-Features wie Push-Benachrichtigungen, In-App-Käufe, Bluetooth-Verbindungen, Beschleunigungs- und Neigungssensoren und die Kamera werden nicht im Simulator unterstützt und können nur auf echten iOS-Geräten getestet werden.
  • Das Verhalten kann sich im Detail unterscheiden: Zum Beispiel muss bei Dateinamen unter iOS die Groß- und Kleinschreibung beachtet werden während dies für das macOS Dateisystem standardmäßig keine Rolle spielt.

Es empfiehlt sich daher, häufig auf echten Geräten mit den iOS-Versionen zu testen, für die die App entwickelt wird.

Aufgaben

  1. Mache Dich mit dem einführenden SwiftUI Tutorial mit der grundlegenden Bedienung von Xcode und der Erstellung von Xcode-Projekten vertraut.

Weitere Informationen