Im Frühjahr 2019 stellte Apple SwiftUI vor. Das ist eine neue Bibliothek, um grafische Benutzeroberflächen durch Swift-Code zusammenzusetzen. SwiftUI spart Millionen Maus- oder Trackpad-Bewegungen, die beim bisherigen Verfahren auf der Basis von UIKit erforderlich waren.
Mittlerweile ist SwiftUI einigermaßen praxistauglich. Zeit also, einen Blick auf neue Denkweisen und Paradigmen zu werfen! (Der präsentierte Code und die Screenshots beziehen sich auf Xcode 12 mit Swift 5.3.)
Update Juni 2022: Das mit der Praxistauglichkeit ist so eine Sache. Viele SwiftUI-Entwickler sind vom Konzept begeistert, aber stoßen früher oder später auf schwer (oder gar nicht) überwindbare Hürden. Lesen Sie unbedingt https://mjtsai.com/blog/2022/05/24/swiftui-in-2022/, bevor Sie Ihr erstes SwiftUI-Projekt starten!
Am 26. März wurde Swift 5 fertiggestellt. Dieser Beitrag fasst die wichtigsten Neuerungen zusammen. Swift 5 gilt insofern als »Meilenstein«, als Apple erstmalig die binäre Kompatibilität der Schnittstellen garantiert. Die größte Auswirkung in der Praxis besteht darin, dass Standardbibliotheken nun auf Apple-Geräten installiert werden und nicht mehr mit jeder App mitgeliefert werden müssen. Xcode erzeugt daher kleinere Binärdateien.
Update 30.3.2019: Swift 5 ist offiziell im Docker-Hub angekommen.
Wenn Sie in Xcode ein neues Projekt vom Typ iOS/Game/Spritekit oder tvOS/Game/SpriteKit erstellen, dann richtet Xcode wie üblich einige Musterdateien ein. Diese enthalten bereits ein ausführbares Programm, das ‚Hello World‘ anzeigt. Nicht ungewöhnlich, würde man meinen.
So sieht die App aus, die aus dem SpriteKit-Mustercode erstellt wird. Ein wenig trist, ohne Animation und Interaktion …
Wenn Sie in Xcode eine App im Simulator ausführen, erscheinen im Debugging-Bereich von Xcode (genaugenommen in der Konsole, das ist der rechte Teil des Debugging-Teilfensters) schier unendlich viele Meldungen, die in aller Regel niemanden interessieren. Wenn Sie in Ihrem Code selbst den einen oder anderen print-Aufruf eingebaut haben, dann gehen Ihre eigenen Ausgaben in der Simulator-Nachrichtenflut vollständig unter.
Eine mögliche Lösung besteht darin, die App auf einem echten iPhone, iPad oder Apple-TV-Gerät auszuführen. Um auch im Simulator etwas mehr »Ruhe« herzustellen, müssen Sie das Run-Schema verändern. Dazu führen Sie Product/Scheme/Edit Scheme aus, wählen das Run-Schema aus, wechseln in das Dialogblatt Arguments und fügen dann im Bereich Environment
Variables die Einstellung OS_ACTIVITY_MODE = disable hinzu.
Diese Einstellung schafft himmlische Ruhe im Debugging-Bereich.
Beachten Sie aber, dass diese Einstellung einen offensichtlichen Nachteil hat: Mitunter verbergen sich in der Flut der Debugging-Ausgaben auch wichtige Informationen, z.B. dass Sie vergessen haben, in Info.plist einen Schlüssel einzustellen, damit die App um Erlaubnis fragt, ob sie Ortsdaten benutzen darf (This app has attempted to access privacy-sensitive data without a usage description. The app’s Info.plist must contain an NSLocationWhenInUseUsageDescription key with a string value explaining to the user how the app uses this data). Solche Meldungen gehen mit der Einstellung OS_ACTIVITY_MODE = disable verloren.
Swift 3.0 ist fertig. Seit 7. September 2016 ist Xcode 8 als Gold Master (GM) für alle Teilnehmer des Apple-Developer-Programms verfügbar, in ein paar Tagen wird die finale Version kostenlos im App Store auftauchen. Was ist also neu?
Updates 17.9.2016, 20.9.2016: Noch mehr Details sowie Xcode-Screenshots.
Xcode produziert GByte-weise Datenmüll auf Ihrer Festplatte/SSD. Diese Anleitung fasst zusammen, was Sie löschen dürfen. Die Platzersparnis betrug bei mir, nach einem Jahr intensivem Xcode-Betrieb, beachtliche 90 GByte!
Der perfekte Zeitpunkt zur Durchführung der hier beschriebenen Aufräumarbeiten ist übrigens vor der Installation des nun verfügbaren Xcode 8 GM (Gold Master).
Mitglieder des Apple Developer Programs können seit gestern die erste Xcode-8-Beta herunterladen. Sie enthält erwartungsgemäß die erste offizielle Prerelease-Version von Swift 3. Aufgrund des Confidentiality-Regeln, die für Teilnehmer am Apple Developer Program gelten, kann ich hier keine Screenshots zeigen und nur über Dinge schreiben, die ohnedies schon öffentlich bekannt sind (z.B., weil Apple auf der WDDC darüber berichtet hat oder entsprechende Dokumente veröffentlicht hat). Aber auch mit diesen Einschränkungen gibt es ein wenig zu berichten.
Immer wieder passiert mir das: Ich probiere etwas Neues aus, geben dem Projekt einen Namen wie hello-spritekit und zwei Wochen später ist eine richtige App daraus geworden. Der ursprüngliche Name ist dann unpassend. Wie kann man also einem Xcode-Projekt einen neuen Namen geben?
Wenn Sie in Xcode in einem Swift-Playground print-Ausgaben durchführen, sind diese anfangs unsichtbar. Dieser Mini-Beitrag fasst zusammen, wie Sie die Ausgaben lesen können.
Diese Website verwendet Cookies nur in minimalem Ausmaß. Es gibt weder Werbung noch Analytic-Funktionen.
Funktional
Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt.Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.