Press "Enter" to skip to content

Let's Code – Der Entwickler-Blog von Thomas Sillmann Posts

Meine persönlichen Highlights der WWDC23

Die vergangene WWDC war in vielerlei Hinsicht ein spektakuläres Event. Für viele ist – verständlicherweise – die Vorstellung der neuen Apple Vision Pro inklusive visionOS das primäre Highlight. Hier eröffnet sich für uns Entwickler eine gänzlich neue Welt, von der noch gar nicht abzusehen ist, wie sie das Computing in den kommenden Jahren beeinflussen wird. Und wir dürfen und sollen diese spannende neue Welt mitgestalten. Das ist wahrlich ein Highlight, dass Apple in dieser Form in den kommenden Jahren aufgrund…

ObservedObject vs. StateObject

Wenn es um die Integration eigens definierter Model-Klassen in SwiftUI-Views geht, spielen die beiden Property Wrapper ObservedObject und StateObject eine maßgebliche Rolle. Augenscheinlich machen sie mehr oder weniger das selbe: Sie achten auf Änderungen der Model-Instanz und aktualisieren die zugehörige View, sobald solche Änderungen bemerkt werden. Falls man daraus den Schluss zieht, man könne die beiden Property Wrapper beliebig nach eigenem Gusto einsetzen, der irrt. Ob man ObservedObject oder StateObject einsetzt, hängt maßgeblich davon ab, wie eine Model-Instanz in eine…

Meine liebsten Swift-Features – Teil 2

Trennung von Argument Label und Parameter Name Ich schätze gute APIs. Funktionen, die einen klar verständlichen Zweck erfüllen und sich sowohl beim Aufrufen als auch bei der Implementierung gut lesen lassen, sind in meinen Augen geradezu schön. So gesehen sind für mich gute APIs solche, deren Zweck (wenigstens grundlegend) auch ohne Dokumentation ersichtlich ist und dabei über einen möglichst knappen und bezeichnenden Namen verfügen. Das gilt auch für die Parameter, die eine Funktion erwartet. In Swift setzen sich die Parameter…

Meine liebsten Swift-Features – Teil 1

Standardwerte für Parameter Die Programmiersprache Swift liegt heute bereis in Version 5.7 vor und hat bereits einen weiten Weg hinter sich. In all den Jahren, in denen Swift inzwischen zur Verfügung steht, wurde die Sprache stetig verbessert und weiterentwickelt. Ich selbst nutze Swift seit Version 1 und es gibt so einiges, das mir an dieser Sprache immens gut gefällt. Diese neue Artikelreihe soll euch – aus meiner ganz persönlichen Sicht – einige dieser Features vorstellen. Dabei geht es mir nicht…

Model-Logik in SwiftUI-Views

SwiftUI geht – verglichen mit UIKit und AppKit – einen gänzlich anderen Weg, was die Erstellung grafischer Oberflächen betrifft. Einen zentralen Unterschied findet man bereits in der zugrundeliegenden Architektur: Wo UIKit und AppKit auf Controller zurückgreifen, die Views und die zugehörige Model-Logik miteinander verbinden, fehlt in SwiftUI diese Komponente gänzlich. Controller sind kein Teil von SwiftUI und architektonisch auch gar nicht notwendig. Denn Views erhalten direkten Zugriff auf alle Model-Informationen, die sie benötigen, und führen auch Manipulationen direkt am Model…

Mehrere Bilder via PhotosPicker auswählen

Ergänzend zum letzten Artikel, in dem es um die grundlegende Konfiguration und Nutzung der neuen PhotosPicker-View ging, stelle ich euch an dieser Stelle vor, wie ihr mehrere Bilder mittels PhotosPicker auswählen und verarbeiten könnt. Die wichtigste und ausschlaggebende Änderung betrifft den selection-Parameter bei Initialisierung eines PhotosPickers. Um mehrere Bilder auswählen zu können, muss der Parameter einem Binding entsprechen, das auf ein Array von PhotosPickerItem-Instanzen verweist (statt auf ein Optional vom Typ PhotosPickerItem). Die vom Nutzer ausgewählten Bilder landen dann in…

PhotosPicker in SwiftUI 4

Neuerungen der WWDC 2022 – Teil 5 Mit der neuen PhotosPicker-View steht uns jetzt ein natives SwiftUI-Element zur Verfügung, um auf die Foto-Library zugreifen und Bilder auswählen zu können. In diesem Artikel gehe ich auf die grundlegende Funktionsweise von PhotosPicker ein und zeige euch, wie ihr diese neue View nutzen könnt, um ein einzelnes Foto aus der Library auszuwählen und anzuzeigen. Grundlagen PhotosPicker nutzt eine Instanz vom Typ PhotosPickerItem, um die vom Nutzer gewählten Fotos abzubilden. Demnach braucht es ein…

Access Level in Swift

Welche es gibt und wie ich sie persönlich in Projekten einsetze Die Access Level in Swift steuern seit jeher die Berechtigungen, mit denen sich auf die Code-Fragmente eines Projekts zugreifen lässt. Access Level regeln so unter anderem, ob beispielsweise Properties nur innerhalb eines Typs angesprochen werden können oder auch direkt von Instanzen jenes Typs auslesbar sind. Das nachfolgende Listing skizziert einmal dieses Szenario: Die Eigenschaft name der Structure Person besitzt den Access Level internal. Innerhalb eines Projekts kann sie so…

Xcode 14.0: Publishing changes from within view updates is not allowed, this will cause undefined behavior.

Bug oder Feature? Seit dem Release von Xcode 14.0 seid auch ihr möglicherweise auf jene Runtime-Warnung gestoßen, die den Titel dieses Artikels ziert. Es würde mich nicht wundern. Diese Meldung führt aktuell zu einiger Irritation innerhalb der Apple Developer-Community (siehe https://developer.apple.com/forums/thread/711899). Um diese Warnung zu erhalten, müsst ihr nicht allzu viel tun. Der folgende Code ist zu Demonstrationszwecken vollkommen ausreichend. Ihr seht darin eine als ObservableObject deklarierte Klasse Person mit einer Published-Property namens name. Abschließend folgt eine ContentView, die eine…

iOS 16: „Im Web suchen“ unter SwiftUI deaktivieren

„Im Web suchen“ ist ein neues Feature in iOS 16. Es ermöglicht, in Textfeldern und Text-Views selektierten Text direkt an den Browser weiterzugeben und darüber zu suchen. Im Zuge eines Projekts kam die Frage auf, wie sich dieses Feature explizit deaktiveren lässt. Es sollte also verhindert werden, dass ein selektierter Text über die genannte Funktion einfach an den Browser weitergegeben werden kann. Unter UIKit existiert mit UIMenuBuilder ein Protokoll, über das sich solche Informationen recht flexibel steuern lassen. Dem zugrunde…

Impressum

Thomas Sillmann
Kettererstraße 6
D-63739 Aschaffenburg
USt-ID: DE306231294
E-Mail: contact@thomassillmann.de
Mobil: +49 (0) 151 65125650
Web: https://www.thomassillmann.de/

Inhaltlich Verantwortlicher gemäß §55 Abs. 2 RStV: Thomas Sillmann (Anschrift siehe oben)

Haftungshinweis: Trotz sorgfältiger inhaltlicher Kontrolle übernehme ich keine Haftung für die Inhalte externer Links. Für die Inhalte der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.

Kontakt und soziale Netzwerke

© 2019-2023 by Thomas Sillmann