Телеграм

Kotlin Adept Notes

@kotlin_adept Программирование и разработка
РКН: проверяем Иноагент: проверяем
Канал о разработке на Kotlin и обо всем, что с ним связано
По всем вопросам и рекламе: @ajiekcx

Статистика обновлена 12.11.2026 в 22:42 · 1 просмотр страницы · Хотите больше просмотров?

Подписчики2 438
Охват поста1 386 57% от подписчиков
ERR за месяц56,85%
ERR за 24 часа40,53%

Динамика за 30 дней

Рекламные публикации

Рекламных публикаций не найденоЗа последнее время мы не нашли на площадке ни одного рекламного поста.

Последние публикации

Все посты канала →
Kotlin Adept Notes tg2.4 тыс. подписчиков
Открыть пост ↗
Худи RYBE для Kotlin — это лаконичная, функциональная вещь

Мы добавили несколько фичей, чтобы тебе было классно и комфортно:

⚫️Карман на металлических кнопках
⚫️Салфетка для очков или экрана в кармане
⚫️Люверсы для пропуска
⚫️Удобный шнурок
⚫️Надпись на капюшоне и одна особенная внутри него
⚫️Карман внутри для наушников, чтобы они не болтались и не терялись 
 
Выбрать свой язык программирования и заказать толстовку можно на сайте: http://rybe.store/
Наш tg
👁 988 🥴 17💊 16❤ 7 ↻ 12 30 октября
Kotlin Adept Notes tg2.4 тыс. подписчиков
Открыть пост ↗
Как и обещал, поделюсь интересными инсайтами из докладов с прошедшего Mobius.

В этот раз конференция получилась для меня не совсем привычной для офлайн-формата: было, к сожалению, мало стендов. Тут, очевидно, сказывается общая экономическая ситуация, но зато я посетил большое количество докладов, так что и в этом есть свои плюсы.

Итак, что же интересного удалось вынести:

👉 SharedFlow использует под капотом кольцевой буфер, но по умолчанию создаётся без него, и это работает почти в 10 раз медленнее, чем с буфером. При этом в операторе shareIn буфер уже задаётся, так что рассмотрите возможность указания буфера по умолчанию, если создаёте SharedFlow через основной конструктор.

👉 Чтобы эффективно работать с большими изображениями, нужно читать их по частям с помощью BitmapRegionDecoder и использовать culling, чтобы убирать тайлы, которые не видны на экране. Также поможет субсэмплинг, позволяющий снижать разрешение тайла при низком зуме, и правильный выбор фазы отрисовки в Compose. Подробнее почитать об этом можно здесь.

👉 Работать с AGSL-шейдерами довольно просто на статических картинках, но как только в эту цепочку добавляется видео, всё становится значительно сложнее: придётся синхронизировать анимацию шейдеров с паузами в видео и решать другие проблемы. Подробнее посмотреть на реализацию таких шейдеров для Android и iOS можно здесь.

👉 Можно собрать собственного локального AI-ассистента на базе LLM с 2 миллиардами параметров и запустить его на телефоне. Но у слабой модели будут проблемы с самоидентификацией, а качество ответов в целом будет низким. Проблему самоидентификации можно исправить с помощью лаконичного JSON в системном промпте, а не длинного описания. Также по отдельности правила и примеры работают с такими моделями плохо, а вот их совместное использование даёт результат. Посмотреть пример такого AI-ассистента можно здесь.

Пишите в комментариях, если хотите еще разобрать какую-то тему с конференции 💬
👁 1.2 тыс. 👍 15👎 3 💬 4 ↻ 21 28 октября
Kotlin Adept Notes tg2.4 тыс. подписчиков
Открыть пост ↗
Помните, не так давно рассказывал вам, как мы решили перейти на state-based TextField и что из этого вышло? Так вот, это была ошибка, и я уже десять раз пожалел, что вообще затеял эту миграцию. Но ирония в том, что в Jetpack Compose 1.13.0-alpha03 старые текстовые поля уже пометили как deprecated, и рано или поздно всё равно придётся мигрировать.

Хочу поделиться проблемами, с которыми мы столкнулись, помимо тех, о которых я писал раньше.

1. Нам нужно было сохранить возможность использовать старый API с value и onValueChange, но решение в лоб с двумя LaunchedEffect оказалось нерабочим при быстром вводе символов. Пришлось реализовывать довольно муторную синхронизацию состояния.
2. Ограничение длины текста теперь нельзя реализовать только на уровне бизнес-логики, необходимо ещё и ограничивать текст через InputTransformation.
3. Нельзя использовать OutputTransformation для добавления каких-нибудь единиц измерения в текстовое поле с клавиатурой типа Decimal: это ломается, например, на устройствах Xiaomi. Для этого нужно использовать prefix или postfix как в Material TextField.
4. Также столкнулись с проблемами на iOS в Compose Multiplatform. Например, Saver крашил приложение, а при вводе символов появлялось контекстное меню.

В итоге на какой-то базовый компонент пришлось потратить много времени и сил. Так что на вашем месте я бы не спешил отказываться от старого доброго TextField и подождал, пока в новом наконец всё стабилизируется.
👁 2 тыс. 👍 23💯 5🔥 4 💬 3 ↻ 14 15 октября