Swift package для расчёта координаты по velocity



Вышел Xcode 11, а значит Swift Package теперь легко писать и подключать. Я попробовал, мне понравилось. Делюсь пакетом с правильный расчётом координаты жеста: https://github.com/akaDuality/VelocityProjection



Стандартно, от UIPanGestureRecognizer вы получаете координату касания отдельно от скорости. Если объединить эти значения, то интерфейс станет отзывчивей. Мы поймём намерение пользователя: может он сдвинул мало, но быстро; или далеко, но поменял направления жеста в последний момент и хочет отменить.



Использовать легко:



let projectedTranslation = recognizer.projectedTranslation(decelerationRate: .fast)



По такому смещению уже можно принимать решение. Например, если сместили больше 200 точек, то можно закрыть экран.



В приложении мы используем это для закрытия карточек и в свайпах внутри переключателей теста: