News

Würdest du lieber mit SwiftUI oder UIKit arbeiten?

DATE:
December 30, 2022
READING TIME:
10min

UI-Frameworks sind die Schlüsselkomponente der Architektur mobiler Apps. Als Apple begann, das neue SwiftUI-Framework mit iOS 13 zu verwenden, nimmt es schnell den Platz von UIKit ein, das einst ausgiebig genutzt wurde. SwiftUI, das verspricht, das kompliziertere UIKit schnell und vollständig zu ersetzen, hat seit seiner Veröffentlichung viel Aufmerksamkeit erregt. Beide Frameworks haben viele Vorteile, aber jedes hat seine eigenen Nachteile. Obwohl jedes Projekt SwiftUI oder UIKit möglicherweise anders verwendet, wird Apple wahrscheinlich anfangen, UIKit abzulehnen, wenn man bedenkt, dass SwiftUI effektiver für moderne Geräte optimiert ist und stärkere Codekomponenten bietet.

Wie bereits erwähnt, ist jedes dieser UI-Frameworks einzigartig. Der entscheidende Punkt ist, dass beide Entwickler bei der Erstellung robuster Anwendungen unterstützen.

UIKit — KLASSISCH

Mithilfe des UIKit-Frameworks können Sie Benutzeroberflächen (UI) erstellen, die Benutzer-, System- und App-Interaktionen verwalten und gleichzeitig Berührungsereignisse und Eingaben verarbeiten können. Viele der wichtigsten Objekte Ihrer App, z. B. diejenigen, die mit dem Betriebssystem kommunizieren, die Hauptereignisschleife steuern und Ihre Inhalte auf dem Bildschirm präsentieren, werden von UIKit bereitgestellt. Die meisten dieser Elemente werden direkt oder mit sehr geringen Änderungen verwendet. Um Ihr Programm zu implementieren, müssen Sie wissen, welche Elemente bearbeitet werden müssen und wann sie geändert werden müssen. Viele der grundlegenden Typen, die Sie zur Definition der Modellobjekte in Ihrer App verwenden, werden von den UIKit- und Foundation-Frameworks bereitgestellt. Für die Anordnung der Datenstrukturen, die zu einer festplattenbasierten Datei gehören, bietet UIKit ein UIDocument-Objekt. Die grundlegenden Objekte, die Texte, Zahlen, Arrays und andere Datentypen darstellen, werden durch das Foundation-Framework definiert. Viele dieser im Foundation-Framework enthaltenen Typen sind auch in der Swift Standard Library verfügbar.


UIKit wurde mit der Programmiersprache Objective-C erstellt und veröffentlicht. Noch heute, wenn Sie für die iOS-Plattform programmieren, stoßen Sie häufig auf Objective-C-Code. Obwohl Swift von immer mehr Programmierern verwendet wird, wurde das UIKit-Framework immer noch unter Berücksichtigung von Objective-C erstellt.

SwiftUI — AUFGEWECKT

Apple verblüffte alle Entwickler auf der WWDC 2019 mit der Vorstellung eines brandneuen Frameworks namens SwiftUI. Es beeinflusst mehr als nur die Art und Weise, wie Sie iOS-Apps erstellen. Seit der Veröffentlichung von Swift war dies die bedeutendste Änderung im Apple-Entwickler-Ökosystem (zu dem iPadOS, macOS, tvOS und watchOS gehören).


Obwohl SwiftUI brandneu ist, hat es ein vertrautes Erscheinungsbild, obwohl sich die Konzepte, die SwiftUI zugrunde liegen, erheblich von denen von UIKit und AppKit unterscheiden. Das Framework enthält alle Elemente, die Sie zum Erstellen von Benutzeroberflächen benötigen, einschließlich Listen, Stacks, Buttons, Pickern und vielen anderen Funktionen, die Sie bereits von UIKit und AppKit gewohnt sind. Darüber hinaus bietet es Ihnen die Ressourcen, die Sie zum Hinzufügen von Animationen, Gestenintegration und benutzerdefinierten Ansichten benötigen.


Xcode-Benutzer können jetzt die Benutzeroberfläche einer App mit der deklarativen Swift-Syntax erstellen, was bedeutet, dass das Schreiben von UI-Code einfacher und natürlicher ist. Im Vergleich zu UI-Frameworks wie UIKit können Sie dieselbe Benutzeroberfläche mit weitaus weniger Code erstellen.


Mit Hilfe von SwiftUI können Sie Benutzeroberflächen mit weniger Code erstellen. Im Gegensatz zu UIKit, das häufig mit Storyboards kombiniert wird, ist es vollständig softwarebasiert. Die Syntax von SwiftUI ist jedoch relativ einfach zu verstehen, und wenn Sie ein SwiftUI-Projekt schnell überprüfen möchten, können Sie die automatische Vorschau verwenden. SwiftUI hat mehrere Einschränkungen und funktioniert unter iOS 14 und iOS 15 besser. Auf der anderen Seite können Sie mit UIKit iOS 9.0 unterstützen. Infolgedessen ist UIKit anpassungsfähiger. Wenn es um Abwärtskompatibilität geht, besiegt es SwiftUI zweifellos.

EIN PAAR UNTERSCHIEDE ZWISCHEN DIESEN BEIDEN FRAMEWORKS

Sie können Interface Builder oder Code verwenden, um Ihre gesamte Benutzeroberfläche mit UIKit zu definieren, und Sie können eine Benutzeroberfläche entwerfen, indem Sie zahlreiche UIKit-UI-Komponenten mit dem Interface Builder von Xcode ziehen und ablegen.


Apple hat den Interface Builder jedoch zugunsten von Live Preview mit SwiftUI aufgegeben. Während Sie Ihren SwiftUI-Code bearbeiten, wird eine Live-Vorschau generiert. Ihr UI-Code kann mithilfe der Live-Vorschauen visuell überprüft werden, und alle Änderungen, die Sie an Ihrem Code vornehmen, werden sofort in der Live-Vorschau angezeigt.


Wie bereits erwähnt, erfordert UIKit, dass Sie angeben, was angezeigt wird, wann es aktualisiert wird und wie zwischen verschiedenen Benutzeroberflächenzuständen gewechselt werden soll. Dies funktioniert reaktiv mit SwiftUI: Was der Benutzer auf dem Bildschirm sieht, ist eher ein Nebenprodukt der Aktualisierung der View-Struktur und der Tatsache, dass das System festlegt, was getan werden muss, um den Bildschirm an diesen neuen Status anzupassen. Für Entwickler, die von UIKit zu SwiftUI wechseln, ist dies eine der schwierigsten Schwierigkeiten, die es zu überwinden gilt, da sie eine andere Perspektive erfordert.


Im Vergleich zu SwiftUI sind viel mehr UIKit-Inhalte zugänglich. Dies ändert sich jedoch stetig, da immer mehr Teams SwiftUI verwenden. Die Anzahl der UIKit-basierten Codebasen, die derzeit existieren, muss berücksichtigt werden. Viele dieser Codebasen können SwiftUI aufgrund der unterstützten Versionsbeschränkungen unter iOS 13 einfach nicht unterstützen. Aus diesem Grund wird UIKit auf absehbare Zeit weiterhin den Großteil der laufenden, praktischen Entwicklungsarbeit erhalten.


Mit SwiftUI können Sie viele schöne Animationen und Übergänge kostenlos erhalten. Bei UIKit müssen Sie, abgesehen von einigen grundlegenden Änderungen, aktiv Animationen in Ihrem Code definieren. UIKit erfordert mehr Arbeit als SwiftUI, um eine butterglatte Benutzeroberfläche zu erreichen.


Sie müssen SwiftUI verwenden, wenn Sie Widgets für iOS erstellen möchten. Beim Erstellen eines Widgets kann UIKit nicht verwendet werden, und eine UIKit-basierte App kann ein SwiftUI-basiertes Widget enthalten. Achten Sie nur auf die Verbindung zwischen Widgets und SwiftUI. Widgets bieten auch in diesem Bereich eine Chance: Ein Widget kann ein großartiger Ausgangspunkt sein, um mit der Implementierung von SwiftUI in einer ansonsten ausschließlich UIKit-basierten App zu beginnen. Wenn ein Widget erforderlich ist, ist eine SwiftUI-Codierung erforderlich.

ALSO, WELCHES WÜRDEST DU WÄHLEN?

Abhängig von Ihrem Geschmack und Ihren Prioritäten als Entwickler hat jedes Framework seine Vorteile und bietet eine Reihe von Vorteilen. Wenn Sie eher an die moderneren und grafikorientierteren Workflows anderer Plattformen gewöhnt sind, fällt es Ihnen schwer, Ansichten manuell zu codieren. Wenn ja, könnte Ihnen gefallen, was SwiftUI bietet.


Aber was ist, wenn Sie nach einem Tool suchen, das Ihnen die Flexibilität und Fähigkeit bietet, komplexe Lösungen zu entwickeln, mit denen erfahrene Entwickler umgehen können? Dann könnte UIKit Ihre beste Wahl sein. Möglicherweise benötigen Sie Hilfe, um mit SwiftUI das gleiche Maß an Kontrolle zu erreichen, während Sie mit Storyboards oder auch nur mit Nib-Dateien arbeiten. Und das ist einer der Hauptgründe, warum es manchen Menschen schwer fällt, es loszulassen.


SwiftUI kann in Bezug auf die Langlebigkeit einen Vorteil gegenüber UIKit haben, aber SwiftUI fügt auch täglich aktiv neue Funktionen hinzu. Zum Glück können Sie diese beiden Frameworks kombinieren, um bei der Erstellung von Apps einen Mehrwert zu bieten. Apropos wertvolle Apps: Wenn Sie großartige Entwickler benötigen, können Sie sich gerne an uns wenden. Wir bei SnapStack sind stolz darauf, dass wir mit vielen talentierten und leidenschaftlichen Menschen zusammenarbeiten, die maßgeschneiderte Lösungen anbieten.

Frohe Feiertage wünscht das Team von SnapStack Solutions. Wir wünschen Ihnen ein glückliches und erfolgreiches Jahr, herzliche Gedanken und beste Wünsche!

READ MORE ON OUR BLOG
Discover similar posts
How Did Python Become So Popular?

Have you ever wondered how did Python become so popular? All of a sudden, this programming language is used everywhere and the demand for Python developers is on the rise by the day.

Read More
Swift gegen Objective-C: Welches ist besser zu wählen?

Eine entscheidende Entscheidung, die das Schicksal des Produkts beeinflusst, ist die Auswahl der besten Entwicklungsumgebung. Falsche Entscheidungen können zum Scheitern der Entwicklung führen. Wir werden über zwei Branchengrößen sprechen, die heute Apps für Apple-Geräte anbieten, und herausfinden, welche Apps 2022 vorteilhafter sein werden: Objective-C oder Swift. Lassen Sie sich all Ihre Fragen beantworten, indem Sie dieses Handbuch lesen.

Read More
Warum ist es wichtig, als Programmierer auf dem neuesten Stand der Technik zu bleiben?

Hallo, ich bin Jordan von SnapStack Solutions und ich habe einen weiteren wöchentlichen Beitrag über die neuesten IT-Trends, Top-IT-Lösungen und alles, was für Sie relevant ist, unabhängig davon, ob Sie eine Einzelperson und Ihr Unternehmen sind. Wir haben letzte Woche über das Thema selbstheilende Software gesprochen oder genauer gesagt, was ist das und was sind die wichtigsten Prinzipien? Wenn Sie unsere Geschichte versehentlich verpasst haben, folgen Sie bitte diesem Link, um sie sich anzusehen. Lassen Sie uns ohne weitere Umschweife in den Artikel dieser Woche eintauchen.

Read More