RunLoop на главном потокеТехнологии iOS
До мобильной разработки занимался системами управления электростанциями, где цена ошибок в коде слишком высока, чтобы их допускать. После перехода на платформы Apple, сосредоточился на слое представления. Разрабатывал библиотеку визуальных компонентов в СберТехе, участвовл в разработке приложения Яндекс.Карты. В настоящий момент разрабатыват приложение Вконтакте. Периодически выступает на митапах и конференциях с докладами о различных компонентах UIKit.
Для платформ Apple плавность интерфейса - это не опция. UIKit и AppKit не являются потокобезопасными и все операции с интерфейсом могут выполняться только на главном потоке. Таких операций приходится делать крайне много. Учитывая это, возникает потребность планировать задачи главного потока таким образом, чтобы пользователь воспринимал интерфейс отзывчивым.
В докладе мы рассмотрим механизмы, заложенные в RunLoop, позволяющие решать поставленную задачу. Разберемся каким образом устроена работа UIScrollView с RunLoop, которая позволила сделать скролл плавным. Научимся добиваться схожего поведения в своих компонентах. Рассмотрим другие примеры использования RunLoop стандартными компонентами системы.