Press "Enter" to skip to content

Kategorie: Swift

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…

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…

Neuerungen in Swift 5.6 – Teil 2

Type placeholders Mithilfe der sogenannten Type placeholder teilt man Swift mit, dass der Typ einer Variablen oder Konstanten mittels Type Inference automatisch ermittelt werden soll. Um einen Type placeholder zu setzen, nutzt man für die Typ-Angabe der gewünschten Variablen/Konstanten einen Unterstrich. Das nachfolgende Listing zeigt ein Beispiel zum Einsatz der Type placeholder. Die Konstante firstValue nutzt Type Inference auf die bekannte Art und Weise, weshalb Swift ihr den Typ Int zuweist. Gleiches geschieht auch bei secondValue, nur mit dem Unterschied,…

Neuerungen in Swift 5.6 – Teil 1

Unavailability Condition Swift besitzt bereits seit geraumer Zeit die Möglichkeit, Code erst ab einer bestimmten macOS-, iOS-, watchOS- oder tvOS-Version auszuführen. Die sogenannte Availability Condition ermöglicht es so, neuere APIs für aktuelle Betriebssystemversionen zu nutzen und gleichzeitig eine alternative Implementierung anzubieten, sollte eine App auf einer älteren Plattform genutzt werden. Das folgende Listing zeigt eine simple Variante, wie sich eine solche Availability Condition in Swift umsetzen lässt: Mittels #available führt man die Availability Condition aus und übergibt in runden Klammern…

Einstieg in Swift Concurrency – Teil 3

async let Bei async let handelt es sich um eine neue Syntax in Swift 5.5. Sie ermöglicht es, Aktionen parallel ablaufen zu lassen. Die Funktion, die einen oder mehrerer solcher async let-Tasks erzeugt, führt alle nachfolgenden Befehle unmittelbar aus. Erst, wenn das Ergebnis einer async let-Operation tatsächlich benötigt wird, wartet die Funktion auf jenes Ergebnis. Um den Einsatz von async let zu erläutern, dient das nachfolgende Listing als Grundlage. Es stellt eine Funktion downloadPhotos() dar, über die drei Bilder über…

Einstieg in Swift Concurrency – Teil 2

Task.sleep Im ersten Teil dieser Artikelreihe haben wir den grundlegenden Einsatz der beiden neuen Swift-Schlüsselwörter async und await kennengelernt. Ergänzend möchte ich in diesem Beitrag ein konkretes Beispiel zeigen, das den Einsatz von Concurrency in Swift demonstriert. Grundlage für dieses Beispiel ist eine praktische Funktion namens Task.sleep(_:). Sie ist ideal, um die korrekte Funktionalität von asynchronem Code zu testen. Sie pausiert die Ausführung der nachfolgenden Befehle für den Zeitraum, den man als Parameter übergibt. Diesen Zeitraum definiert man hierbei in…

Einstieg in Swift Concurrency – Teil 1

async/await-Basics Die kommende Version 5.5 von Swift ist Teil von Xcode 13 und wird eine große Neuerung in der Programmiersprache mit sich bringen. Mithilfe der neuen Schlüsselwörter async und await lassen sich nun endlich asynchrone Befehle ausführen, ohne auf entsprechende Funktionen des Dispatch-Frameworks zurückgreifen zu müssen. Das Grundprinzip hinter den neuen Swift-Schlüsselwörtern async und await ist denkbar simpel. Mit async kann man Funktionen deklarieren und so festlegen, dass diese asynchron ablaufen. Während die Funktion also ihre Befehle abarbeitet, kann die…

Let‘s Code ShoppingList auf GitHub

Auf meinem YouTube-Kanal erscheinen bereits seit mehreren Wochen regelmäßig neue Videos in der Playlist Let’s Code ShoppingList. In den Videos entwickeln wir gemeinsam eine kleine Beispiel-App auf Basis von SwiftUI; dazu habe ich bereits im September 2020 einmal einen ergänzenden Blog-Artikel geschrieben. Da die Playlist inzwischen über 20 Videos umfasst, wurden von eurer Seite schon seit längerer Zeit die Stimmen laut, das Projekt öffentlich zugänglich zu machen. Das erlaubt es, den aktuellsten Projektstand abzurufen, ohne alle Videos von Anfang bis…

In eigener Sache: heise MacDev 2020

Auch in diesem Jahr veranstaltet heise erneut die heise MacDev. Es handelt sich dabei um eine Entwicklerkonferenz, die speziell auf die Programmierung für Apple-Plattformen ausgerichtet ist. Diesjährige Themen sind unter anderem SwiftUI, Augmented Reality, GPS und die plattformübergreifende Entwicklung. Auch ich bin wieder mit einem Vortrag am Start. In Status und SwiftUI – so geht es richtig! erläutere ich die Bedeutung und Funktionsweise des Status in SwiftUI. Wie wirkt er sich auf die View-Aktualisierung aus? Welche Statusvarianten gibt es? Und…

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