SNAPKIT
SnapKit — DSL (предметно-орієнтована мова), яка спрощує роботу з Auto Layout та обмеженнями. Це інструмент для frontend розробників, що значно полегшує створення макета сторінок вашого Swift-додатку для iOS або MacOS.
Сам собою Auto Layout — крутий і потужний інструмент для опису взаємозв’язків між видами (View) та їх ієрархіями, але водночас досить складний і не інтуїтивний. Попри те, що починаючи з iOS 9, прив’язки макета постійно удосконалюються, SnapKit все ще залишається must-have інструментом для тих, кому важлива швидкість і зручність.
SnapKit робить код максимально подібним до звичайного англійського тексту. Його приємніше читати і простіше в ньому розібратися, у тому числі й тому, що новий синтаксис позбавляє розробників необхідності прописувати складні конструкції, скорочуючи їх декларативно.
Найкраща частина SnapKit — можливість вільно складати ланцюжки, комбінуючи елементи макета. Компонування прив’язок і обмежень виходить простим і виразним, а кількість коду буде меншою. З SnapKit стає набагато простіше налаштовувати зміну відображення при повороті екрана в альбомну орієнтацію, і загалом змінювати вид (View) так, як вам хочеться. Водночас, якщо розробник захоче змінити якийсь із ланцюжків, йому не потрібно буде переробляти всі — дві команди, і старий варіант автоматично замінюється на новий.
Перевірка коду на наявність конфліктів у SnapKit також реалізована набагато простіше, ніж у базовому Auto Layout. У виведенні налагодження з’являться інформативні покажчики на можливі проблеми й розробникам потрібно буде набагато менше часу, щоби знайти невідповідності та виправити їх.
SnapKit — DSL, мова, завдання якої розв’язувати конкретні проблеми в строго визначеному місці. Вона потрібна, щоби спростити синтаксис Auto Layout, який відповідає за опис залежностей та обмежень видів (View) вашої програми. Усе, що можна зробити зі SnapKit, можна зробити і без нього, стандартними інструментами. Найкращою практикою вважається комбінування класичних рішень із можливостями SnapKit. І саме так роблять наші Swift-розробники у всіх своїх проєктах.