• Alerts in SwiftUI Mit der Structure Alert besitzt SwiftUI einen eigenen View-Typ, mit dem sich Nutzern Meldungen in einer App anzeigen lassen. Vergleichbar ist Alert mit dem UIAlertController aus dem UIKit-Framework, allerdings verfügt das SwiftUI-Pendant nur über einen kleinen Bruchteil von dessen Funktionen. Einen einfachen Alert erstellen Um einen ganz simplen Alert in SwiftUI zu erstellen braucht es nicht viel. Tatsächlich reicht der folgende Befehl vollkommen aus: Alert(title: Text(„Some alert“)) Über den title-Parameter des Alert-Initializers definiert ihr den Titel für die anzuzeigende Meldung (in diesem Fall also „Some alert“). Dieser Alert wird vom System automatisch mit einer „OK“-Schaltfläche ergänzt, die…

  • Sheet modal einblenden Bei der Arbeit mit dem UIKit-Framework ist es Gang und Gäbe, bestimmte Ansichten als sogenannte modale View einzublenden. Hierbei fährt eine neue View von unten ins Bild hinein und legt sich über die aktuelle Ansicht. Die native Mail-App nutzt dieses Verhalten beispielsweise beim Verfassen einer neuen E-Mail (siehe folgenden Screenshot). Dieses Verhalten lässt sich so auch mit SwiftUI umsetzen. Basis hierfür sind verschiedene Modifier, die alle mit dem Schlüsselwort sheet beginnen und auf jede View angewendet werden können. In diesem Artikel möchte ich euch eine Basisvariante dieser Modifier vorstellen, die ich bisher ausschließlich zum Ein- und Ausblenden…

  • Buttons in Listenzellen einbinden Herzlich Willkommen zu dieser neuen Artikelreihe hier auf dem Let’s Code-Blog! Mit SwiftUI in der Praxis möchte ich euch einige Best Practices zu SwiftUI mit auf den Weg geben, die mir bei der täglichen Arbeit mit Apples neuem UI-Framework begegnet sind. Dabei handelt es sich sowohl um diverse Tipps und Tricks als auch Möglichkeiten zur Erkennung und Behebung diverser Fehler (denn so schön SwiftUI auch ist, von Perfektion ist es leider noch ein ziemliches Stück entfernt). In diesem ersten Artikel möchte ich euch eine Möglichkeit präsentieren, wie ihr Buttons (und entsprechend zugehörige Actions) in Zellen einer…

  • Wie funktionieren Groups? Die deklarative Syntax von SwiftUI verbunden mit Stacks und Groups hat etwas Magisches an sich. Betrachten wir allein einmal das folgende Code-Fragment: Mit diesen wenigen Zeilen Code erzeugt man eine View, die sich aus vier verschiedenen Elementen zusammensetzt. Zu Beginn stehen ein Text und ein Bild, gefolgt von einer Trennlinie und einem weiteren Text. Alle vier Views werden vertikal untereinander angeordnet. Diese Form der Syntax findet sich an vielen Stellen im SwiftUI-Framework wieder. Neben Stacks werden auch Listen, Navigation-Views, Tab-Views oder Groups auf die gezeigte Art und Weise erstellt. Ein Parameter in Form eines Trailing Closures nimmt…

  • Projected Value In diesem (voraussichtlich letzten) Teil zum Thema Property Wrapper in Swift 5.1 möchte ich euch ein weiteres kleines Feature vorstellen, das die Arbeit mit dieser neuen Technik abrundet. Die Rede ist vom sogenannten Projected Value. Das erlaubt es, eine beliebige zusätzliche Information über einen Property Wrapper auszuliefern. Typ und damit Art dieser Information kann von euch vollkommen frei festgelegt werden. Dieses Projected Value wird innerhalb einer Property Wrapper-Implementierung über eine Property namens projectedValue umgesetzt. Der Name ist entscheidend und muss immer zwingend projectedValue lauten (vergleichbar der wrappedValue-Property). Ein Beispiel für die Umsetzung und Implementierung eines Projected Value findet…

  • In Zusammenarbeit mit heise Events und Mac & i findet Anfang März zum ersten Mal ein dedizierter Workshop von mir zu SwiftUI statt. Der behandelt neben den Grundlagen zur Arbeit mit Apples neuem UI-Framework auch fortgeschrittene Themen wie Data Binding, Animationen, Integration in bestehende Projekte sowie Best Practices. Einführung in SwiftUI: Von den Grundlagen bis zur plattformübergreifenden UI-Entwicklung Der Workshop findet vom 09.03.2020 bis 11.03.2020 in Hannover statt. Voraussetzungen sind ein eigenes MacBook mit vorinstallierter Entwicklungsumgebung Xcode. Daneben sollten Teilnehmer ein grundlegendes Verständnis zur UI-Entwicklung für iOS und/oder macOS besitzen, ebenso sind fundierte Kenntnisse in der Programmierung mit Swift und…

  • Deklarativ vs. Imperativ Apples neues UI-Framework SwiftUI geht in vielerlei Hinsicht neue Wege. Eines der wohl auffälligsten Merkmale stellt hierbei die neue deklarative Syntax dar, mit der Views in SwiftUI erstellt werden. Doch manch einer mag sich an dieser Stelle fragen: Was soll „deklarativ“ eigentlich konkret bedeuten? Und wie unterscheidet sich dieser Ansatz – auch in technischer Hinsicht – von dem, was man bisher aus der Arbeit mit AppKit, UIKit und WatchKit her kennt? Status Quo: Imperative Programmierung Bevor wir uns weiter mit dem Begriff „deklarativ“ auseinandersetzen, möchte ich ein paar Worte darüber verlieren, wie Views unter AppKit, UIKit und…

  • Rückblick, Status Quo und Ausblick Es wirkt, um ehrlich zu sein, ein wenig surreal auf mich. Auf den Tag genau ist es inzwischen ein Jahr her, dass diese Website und damit mein Let’s Code-Blog an den Start gingen. Der erste Beitrag widmete sich der Xcode-Toolchain und wie man sie dazu nutzen kann, verschiedene Swift-Versionen einzubinden (damals war das die erste Möglichkeit, mit der heute aktuellen Version 5 von Swift zu arbeiten). Seitdem hat sich auf dem Blog wahnsinnig viel getan, jede Woche des Jahres 2019 erschien wenigstens ein neuer Artikel. Die Themen waren dabei durchaus recht unterschiedlich. Ob Besonderheiten der…

  • Standardwerte festlegen Im ersten Teil dieser Artikelreihe zu Property Wrappers haben wir gemeinsam die Grundlagen dieser neuen Technik aus Swift 5.1 betrachtet. Nach einer kurzen Pause möchte ich euch nun an dieser Stelle weitere Besonderheiten und Funktionen der Property Wrapper vorstellen. Das Thema dieses Mal: das Festlegen von Standardwerten. Um dieses Thema zu erläutern, dient als Basis für diesen Artikel der folgende Property Wrapper namens SmallNumber. Dessen wrappedValue entspricht einem Integer, der nicht größer sein kann als der Wert, der in der maximum-Property des Property Wrappers festgelegt ist. Somit ist das Beispiel sehr ähnlich zu dem aus dem ersten Artikel,…

  • Es ist wieder soweit: In den letzten Wochen sind insgesamt drei neue Kurse von mir auf der E-Learning-Plattform LinkedIn Learning online gegangen. Die großen Themen dieses Mal sind Swift 5, SwiftUI und Neuerungen in iOS 13. Der große Swift-Grundkurs Einer meiner erfolgreichsten und beliebtesten Kurse auf LinkedIn Learning bisher war und ist Swift lernen. Der Kurs dient als Einstieg in die Programmierung mit Swift. Aufgrund der großen Beliebtheit steht nun der Swift Grundkurs auf LinkedIn Learning bereit. In über vier Stunden geht er auf die wichtigsten Konzepte von Swift ein. Neben den Basics behandelt er unter anderem auch Themen wie…