Depository of News

Как я оптимизировал TGS-стикеры в Compose Multiplatform: от Compottie к Frame Baking

newsdepo.com · world

Когда я разрабатывал GhostGram - экспериментальный клиент Telegram на Kotlin Multiplatform, - со стикерами пришлось повозиться. Сначала всё выглядело относительно просто: получить файл TGS, передать его проигрывателю и показать анимацию в интерфейсе. Но на Android обнаружились две проблемы. Некоторые стикеры воспроизводились заметно быстрее, чем в официальном Telegram, а при отображении нескольких анимаций график HWUI показывал серьёзные задержки. Я пробовал оптимизировать существующую реализацию, затем сменил библиотеку и в итоге пришёл к другому подходу: предварительно отрисовывать кадры в Bitmap и воспроизводить их как последовательность изображений. Расскажу, почему я выбрал этот подход, что пришлось дорабатывать после первой реализации и почему проблема быстрого скролла пока осталась открытой. Читать далее

Read full article →