Press "Enter" to skip to content

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

Zugriff auf die Foto-Library in SwiftUI via PHPickerViewController – Teil 2

Auf Fotoauswahl reagieren Im ersten Teil dieser Artikelreihe befassten wir uns mit der grundlegenden Implementierung eines PHPickerViewController in SwiftUI. Diese bisherige Umsetzung erweitern wir nun um eine funktionierende Auswahlmöglichkeit eines Fotos, welches wir im Anschluss in unserer Beispiel-App präsentieren. Analog zum Einsatz des UIImagePickerController zum Zugriff auf die iPhone-Kamera nutzt auch PHPickerViewController für die Steuerung der Fotoauswahl einen Delegate. Grundlage dieses Delegates ist das PHPickerViewControllerDelegate-Protokoll. Um die Konfiguration unserer SwiftUI-View also fortsetzen zu können, benötigen wir einen Coordinator, der konform…

Zugriff auf die Foto-Library in SwiftUI via PHPickerViewController – Teil 1

Grundlegende Konfiguration Ergänzend zur Artikelreihe, die den Zugriff auf die Systemkamera mit SwiftUI behandelte, möchte ich euch nun an dieser Stelle zeigen, wie ihr auf die Foto-Library zugreifen und Fotos für die weitere Bearbeitung innerhalb einer App auswählen könnt. Auch beim Zugriff auf die Foto-Library gibt es (noch) keinen (mir bekannten) direkt in SwiftUI integrierten Weg. Stattdessen nutzt man eine Klasse namens PHPickerViewController und bindet diese als Representable in SwiftUI ein. Die Klasse PHPickerViewController steht seit iOS 14 zur Verfügung…

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…

Mac Studio: Der Mac, entfesselt

Eine meiner ersten Artikelreihen hier auf dem Blog beschäftigte sich mit den unterschiedlichen Mac-Modellen und welche davon speziell für Entwickler geeignet sind. Das scheint eine Ewigkeit zurückzuliegen, damals gab es noch nicht einmal Apple Silicon. Und heute? Heute gibt es kaum noch Macs mit Intel-Prozessoren. Und das offenkundig aus sehr gutem Grund. Das Apples hauseigene Prozessoren mehr als nur konkurrenzfähig sind, bewies bereits die erste Iteration in Form des M1. Ich erinnere mich noch gut, wie ich damals gleichermaßen begeistert…

Kamerazugriff via SwiftUI – Teil 4

Mac Catalyst-Support Die Klasse UIImagePickerController, die wir in den vorangegangenen Artikeln dieser Reihe (siehe Linksammlung am Ende des Artikels) in SwiftUI eingebunden haben, ist bekanntermaßen Teil des UIKit-Frameworks und so ausschließlich für iOS- und iPadOS-Apps relevant. Dank der Einführung von Mac Catalyst gibt es aber auch die Möglichkeit, unser Representable für den Kamerazugriff in macOS-Apps zu nutzen. Wie geschrieben müssen diese macOS-Apps aber eben auf Mac Catalyst basieren. In den Projekteinstellungen des bestehenden Targets lässt sich in den Deployment Infos…

Kamerazugriff via SwiftUI – Teil 3

Funktionsfähigkeit prüfen Die in Teil 1 und Teil 2 dieser Artikelreihe erzeugte TSCameraView ist bereits weit fortgeschritten. Über sie lässt sich auf die Kamera eines iPhone zugreifen, ein Bild aufnehmen sowie jenes Bild weiter verarbeiten. In diesem Artikel stelle ich euch eine kleine aber feine Optimierung vor, die den Einsatz von TSCameraView weiter verbessert. Eine neue Type Property namens canCaptureImages prüft, ob die Hardware-Voraussetzungen zur Aufnahme von Fotos auf dem zugrundeliegenden Endgerät erfüllt sind. Solch eine Prüfung war früher vor…

Kamerazugriff via SwiftUI – Teil 2

Bild aufnehmen und verarbeiten Im ersten Teil dieser Reihe begannen wir mit der Integration eines UIImagePickerController in SwiftUI. Diese bestehende Integration erweitern wir nun um einen Coordinator, mit dessen Hilfe wir ein aufgenommenes Bild auslesen und an SwiftUI weiter reichen können. Betrachten wir zunächst einmal die Ausgangslage aus dem ersten Teil der Artikelreihe. Hier kommt das UIViewControllerRepresentable-Protokoll zum Einsatz, um eine UIImagePickerController-Instanz in SwiftUI zu integrieren. Um ein aufgenommenes Bild auswerten zu können, braucht es zusätzlich eine Implementierung des UIImagePickerControllerDelegate-Protokolls.…

Zu TextEditor in Form-View scrollen

Im Zuge eines Projekts stießen meine Kollegen und ich auf das folgende Problem: Ist ein TextEditor Teil einer Form-View, scrollt jene Form-View nicht automatisch zum TextEditor, wenn dieser den Fokus erhält. Das führt dazu, dass die virtuelle Bildschirmtastatur sich unter iOS über den aktiven TextEditor legt, wenn dieser sich als Teil einer Form-View am unteren Bildschirmrand befindet. Ein Beispiel, mit dem ihr diese Problematik nachvollziehen könnt, zeigt das folgende Listing. Wechselt ihr darin in die Zelle des Text-Editors, überlagert die…

Kamerazugriff via SwiftUI – Teil 1

Grundlagen Bis heute fehlt SwiftUI (leider) ein direkter Zugriff auf die Kamera des iPhone. Erfreulicherweise ist es aber ein überschaubarer Aufwand, mittels Representable die UIKit-Elemente zum Kamerazugriff auch in SwiftUI verfügbar zu machen. Die Grundlage stellt diesbezüglich die Klasse UIImagePickercontroller dar. Diese Klasse ist bereits seit iOS 2 Teil von UIKit und ermöglicht es in wenigen Schritten, die Kamera eines iPhone aufzurufen, ein Bild zu erstellen und dieses im Anschluss weiter zu verarbeiten. Da es sich bei UIImagePickerController um eine…

Winterpause 2021: Rückblick und Ausblick

Passend mit der Veröffentlichung der zweiten Auflage meines Swift-Handbuchs verabschiedet sich der Sillmann für dieses Jahr in die Winterpause. In den kommenden Wochen arbeite ich noch ausschließlich an meinen verschiedenen App-Projekten und genieße im Anschluss zwischen den Jahren ein paar freie Tage. Anfang Januar geht es dann mit der Arbeit direkt wieder weiter. Inzwischen hat der Let’s Code-Blog sage und schreibe drei Jahre (!) auf dem Buckel und verzeichnet jährlich über 10.000 Besucher. Die Community rund um den Blog 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