Внимательные читатели заметили, что либа для реализации Shared Element Transition не делает никакой магии, а использует вполне себе стандартный compose api, а именно:



😀MovableContentOf - для изменения положения элементов без рекомпозиции с сохранением состояния функции



😀LookaheadLayout - для предварительного вычисления нового размера и положения дочерних узлов, чтобы в дальнейшем можно было анимировать эти изменения от начального до конечного состояния



Подробнее про устройство LookaheadLayout читайте в статье (EN, 10 мин), там вы узнаете:

😀 Где этот layout используется

😀 В чем отличие от SubcomposeLayout и Intrinsics measurements

😀 Какие методы предоставляет

😀 Как работает под капотом



P.S. LookaheadLayout уже deprecated, на замену ему пришел LookaheadScope



#under_the_hood @compose_broadcast