Was ist SnapKit und warum wird es benötigt?
\n\nSnapKit ist eine leistungsstarke und elegante DSL-Bibliothek (Domain-Specific Language) für die Arbeit mit Auto Layout in iOS-, macOS-, tvOS- und watchOS-Anwendungen, die in Swift geschrieben sind. Wenn Sie jemals Einschränkungen (Constraints) manuell mit der standardmäßigen Apple-API geschrieben haben, wissen Sie, wie ausführlich und schwer lesbar das sein kann. SnapKit löst dieses Problem, indem es eine saubere, intuitiv verständliche Syntax bereitstellt, die den Layout-Code wie normale englische Sprache aussehen lässt.
\n\nWarum wird SnapKit benötigt?
\n- \n
- Lesbarkeit des Codes: Anstatt langer Aufrufketten von
NSLayoutConstraint(item:attribute:relatedBy:toItem:attribute:multiplier:constant:)schreiben Sieview.snp.makeConstraints { $0.center.equalToSuperview() }. \n - Entwicklungsgeschwindigkeit: Das Layouten wird schneller, da der Code kürzer und leichter verständlich ist. \n
- Typsicherheit: SnapKit verwendet die strenge Typisierung von Swift, was die Wahrscheinlichkeit von Laufzeitfehlern verringert. \n
- Flexibilität: Alle Funktionen von Auto Layout werden unterstützt: Prioritäten, Seitenverhältnisse, Aktualisierung und Überschreibung von Einschränkungen. \n
- Aktive Community: Die Bibliothek wird in der Industrie weit verbreitet genutzt, verfügt über eine hervorragende Dokumentation und eine große Anzahl von Beispielen. \n
Installation von SnapKit
\n\nSnapKit kann mit einem der gängigen Abhängigkeitsmanager für Swift installiert werden. Nachfolgend finden Sie Anweisungen für Swift Package Manager (SPM) und CocoaPods.
\n\n1. Swift Package Manager (empfohlene Methode)
\nSPM ist der in Xcode integrierte Paketmanager. Dies ist die einfachste und modernste Methode.
\n- \n
- Öffnen Sie Ihr Projekt in Xcode. \n
- Gehen Sie zu File → Add Packages... \n
- Geben Sie im Suchfeld die URL des SnapKit-Repositorys ein:
https://github.com/SnapKit/SnapKit.git\n - Wählen Sie die gewünschte Version aus (empfohlen wird die neueste stabile Version) und klicken Sie auf Add Package. \n
- Stellen Sie sicher, dass das Paket zu Ihrem Ziel (Target) hinzugefügt wurde. \n
2. CocoaPods
\nWenn Sie CocoaPods verwenden, fügen Sie die folgende Zeile zu Ihrer Podfile hinzu:
platform :ios, '12.0'\nuse_frameworks!\n\ntarget 'YourAppTarget' do\n pod 'SnapKit', '~> 5.6.0'\nend\nFühren Sie anschließend den Befehl pod install im Terminal im Ordner Ihres Projekts aus.
3. Carthage (weniger verbreitet)
\nFügen Sie zur Cartfile hinzu:
github "SnapKit/SnapKit" ~> 5.6.0\nFühren Sie carthage update aus und fügen Sie das Framework zum Projekt hinzu.
Schnellstart mit einem Codebeispiel
\n\nLassen Sie uns einen einfachen Bildschirm mit einem zentrierten roten Quadrat erstellen. Dies ist das klassische "Hello, World!" für das Layouten.
\n\nimport UIKit\nimport SnapKit\n\nclass ViewController: UIViewController {\n\n override func viewDidLoad() {\n super.viewDidLoad()\n setupUI()\n }\n\n private func setupUI() {\n // 1. View erstellen\n let redView = UIView()\n redView.backgroundColor = .red\n view.addSubview(redView)\n\n // 2. SnapKit für das Layout anwenden\n redView.snp.makeConstraints { make in\n make.center.equalToSuperview() // Zentriert relativ zum Eltern-View\n make.width.height.equalTo(100) // Breite und Höhe = 100\n }\n }\n}\n\nWas passiert hier?
\n- \n
redView.snp.makeConstraintsist der Einstiegspunkt in die SnapKit-DSL.snpist eine spezielle Eigenschaft, die SnapKit zu allen UIView hinzufügt. \n - Innerhalb des Closures erhalten wir das Objekt
make(ConstraintMaker), mit dem wir die Einschränkungen beschreiben. \n make.center.equalToSuperview()zentriert die rote View horizontal und vertikal in ihrem übergeordneten View. \n make.width.height.equalTo(100)setzt sowohl die Breite als auch die Höhe auf 100 Punkte. \n
Auch in der Bibliothek
Reaktive Programmierung in C++: Bibliotheken RxCpp und Boost.Signals2
Arbeit mit Kafka in Kotlin: Bibliotheken, Einrichtung und Beispiele
Logging in Go (Golang): Die besten Bibliotheken und Lösungen für die Produktion