Большинство разработчиков пишут на Auto Layout. Но не все знают, что есть альтернатива и не всегда Auto Layout подходит. В редких кейсах это просто необходимо
Frame-Based Development — это ручной layout через frame/layoutSubviews/layoutSublayers, в противоположность Auto Layout.
Вы скажите что так никто не делает и это уже не нужно. А я скажу что немаленькое кол-во компаний пишут лайаут вручную.
🛍 Авито почти всю верстку, особенно в коллекциях главной и BDUI, считает через frame based
✈️ Телеграм работал со сложным движком AsyncDisplayKit. Где он вообще рассчитывался в фоне. Сейчас они просто перешли на ручной расчет.
💙 ВК Лента также пишется на ручном лайауте. В этих всех приложениях важен перфоманс.
Тот же auto layout работает через constraints и систему уравнений. При большом кол-ви view'шек это все перерассчитывается на главном потоке.
На картинках свежие бенчмарки iPhone 16. В процентных сравнениях даже на новых устройствах auto layout сильно медленее.
Нужно ли это в 2026к? Вы недооцениваете глубину вложенных вьюшек в том же бдуи. Я сделал небольшой эксперимент, о котором напишу в следующем посту.
Полезные ссылки:
• Layout Framework Benchmark

