Обновить
8K+
1
Влад@vdggrtff

Kotlin Multiplatform & Android Developer

2
Рейтинг
Отправить сообщение

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

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели8.1K

Когда я разрабатывал GhostGram - экспериментальный клиент Telegram на Kotlin Multiplatform, - со стикерами пришлось повозиться.

Сначала всё выглядело относительно просто: получить файл TGS, передать его проигрывателю и показать анимацию в интерфейсе. Но на Android обнаружились две проблемы. Некоторые стикеры воспроизводились заметно быстрее, чем в официальном Telegram, а при отображении нескольких анимаций график HWUI показывал серьёзные задержки.

Я пробовал оптимизировать существующую реализацию, затем сменил библиотеку и в итоге пришёл к другому подходу: предварительно отрисовывать кадры в Bitmap и воспроизводить их как последовательность изображений.

Расскажу, почему я выбрал этот подход, что пришлось дорабатывать после первой реализации и почему проблема быстрого скролла пока осталась открытой.

Читать далее

Анатомия клиента Telegram на Compose Multiplatform: матрешки TDLib 1.8, стеганография словами и грабли первой альфы

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели6.7K

Решил написать свой Telegram на KMP за 30 дней. Что может TDLib и с чем у меня возникли проблемы

Пока искал работу, решил ради инженерного эксперимента написать альтернативный клиент Telegram на Kotlin Multiplatform (Android + Desktop)(Мог бы ещё на Ios но у меня нету ни мак бука, ни денег на него). Уделял проекту по 2–3 часа под ночь. Думал, что TDLib возьмет на себя всю грязную работу, но вместо этого ловил бесконечные рекомпозиции, падения от нехватки памяти (OOM) и загадочные ошибки файловой системы. В итоге всё‑таки допилил клиент со встроенным ИИ, Anti‑Revoke и антиспамом. В статье разбираю, какие были трудности, баги и т.д, как я их чинил, ну и оставляю ссылку на готовый APK.

Читать далее

Информация

В рейтинге
1 465-й
Дата рождения
Зарегистрирован
Активность

Специализация

Разработчик мобильных приложений
Средний
Android SDK
Android studio
Kotlin
Jetpack Compose
Kotlin Multiplatform
Coroutines
Retrofit
Room
Clean Architecture
MVVM