Link
Mit Link
(nein, nicht dem aus der The Legend of Zelda-Reihe; sorry, den konnte ich mir einfach nicht verkneifen!) steht uns eine weitere neue SwiftUI-View ins Haus. Darüber ist es erstmals möglich, URLs direkt aus SwiftUI heraus aufzurufen. Erfreulicherweise sind diese URLs nicht einzig auf Websites beschränkt, auch andere Apps können darüber hinaus geöffnet werden (sofern die gewünschten Apps ein passendes URL-Schema unterstützen).
Link
gehört zu den Neuerungen in SwiftUI, die über die kommende Version 12 von Xcode zur Verfügung stehen. Heute lassen sich diese Neuerungen bereits mithilfe einer entsprechenden Beta von Xcode 12 testen und einsetzen, die über Apples Developer-Website zum Download bereitsteht.
Um eine Link
-View zu erzeugen, benötigt man zwei Informationen:
- Die Ziel-URL, die über die
Link
-View aufgerufen werden soll. - Einen Titel bzw. eine View, die den Link repräsentiert.
Ein Beispiel für die einfachste Variante zum Erzeugen eines Links findet ihr im folgenden Listing. Der Link trägt darin den Titel „Let’s Code“ und verweist auf den Let’s Code-Blog.
struct ContentView: View {
private var letsCodeURL = URL(string: "https://letscode.thomassillmann.de")!
var body: some View {
Link("Let's Code", destination: letsCodeURL)
}
}
Link
fungiert als Button. Wird er betätigt, wird die zugrundeliegende URL aufgerufen. Unter iOS bedeutet das bei einer Website-URL, dass der Browser geöffnet und die zugehörige Adresse geladen wird.
Wichtig hierbei: Zwar wird die Link
-View in der Preview von Xcode 12 korrekt dargestellt, nach Betätigung des Links in der Live Preview kommt es aber zu keiner Aktion. Dazu muss die zugrundeliegende App im Simulator oder auf einem Endgerät ausgeführt werden.
Womöglich ändert Apple dieses Verhalten noch in einer der kommenden Beta-Versionen (meine Tests erfolgten unter Beta 3), allerdings gehe ich nicht davon aus. Die Preview soll schließlich schlicht und einfach eine View-Vorschau darstellen, nicht eine Navigation zu Websites oder anderen Apps ermöglichen.
Fazit
Bei Link
mag es sich im Grunde nicht um ein wahnsinnig komplexes neues View-Element in SwiftUI handeln. Es rüstet aber eine wichtige Funktionalität nach und erlaubt es, aus SwiftUI-Views heraus Websites und andere Apps mithilfe passender URLs zu öffnen (was bisher nur über Umwege möglich war). Und oft sind es genau solche kleinen Details, die den Unterschied ausmachen und uns Entwicklern den Alltag angenehm erleichtern.
Euer Thomas
Bisherige Artikel in dieser Serie
- Teil 1: TextEditor: https://letscode.thomassillmann.de/neue-views-in-swiftui-teil-1/
- Teil 2: ProgressView: https://letscode.thomassillmann.de/neue-views-in-swiftui-teil-2/
- Teil 3: Label: https://letscode.thomassillmann.de/neue-views-in-swiftui-teil-3/
Schreibe einen Kommentar