#compose_multiplatform

2026-01-12

Navigation3 + Koin в Compose Multiplatform

В этой статье я бы хотел поделиться своими наработками по тому, как можно удобно совмещать библиотеку Navigation3 и Koin в Compose Multiplatform проекте и какие подводные камни есть на текущий момент.

habr.com/ru/articles/984552/

#compose_multiplatform #kotlin_multiplatform #kmp #navigation3 #koin

2026-01-07

Анимация смены темы в Compose Multiplatform

Анимация смены темы в Android-версии Telegram на протяжении долгого времени вдохновляет разработчиков на попытки реверс-инжениринга этого красивого трюка: в сети немало подробных гайдов, как сделать подобную анимацию при помощи традиционных XML View и даже Flutter. Но реализаций этой элегантной (хоть и совершенно бесполезной) анимации на Jetpack Compose мне найти так и не удалось, что привело к созданию маленькой библиотеки для анимирования смены темы. Вера в будущее KMP также подтолкнула меня к тому, чтобы сделать ее из коробки готовой к установке в Compose-Multiplatform проекты, с поддержкой всех основных платформ (Android, iOS, Desktop JVM, Web WASM+JS). Хотя сама библиотека вышла крайне компактной, ее реализация оказалась довольно нетривиальной на мой субъективный взгляд и может быть интересна каждому, кто изучает Compose или ищет подобные решения для своего проекта. На старте написания библиотеки сами собой возникли ряд требований, которым она должна была отвечать:

habr.com/ru/articles/983488/

#compose_multiplatform #kotlin_multiplatform #jetpack_compose #android #animations

2025-08-07

Kick: Kotlin Inspection & Control Kit — единый модульный инструмент отладки прямо в приложении

При разработке и тестировании приложений порой требуется заглянуть под капот - проанализировать HTTP-трафик или проверить кэш данных в базе данных. Ранее для этих целей мы использовали Inspektify и Delight SQL Viewer . Но в какой-то момент нам понадобился еще и удобный доступ к логам приложения и тащить ещё одно отдельнее решение не хотелось. Был нужен один инструмент, который объединит всё самое необходимое в одном месте. Так появился Kick — расширяемый модульный набор инструментов, позволяющий разработчикам и тестировщикам легко инспектировать приложение.

habr.com/ru/articles/932992/

#multiplatform #kotlin_multiplatform #android #ios #desktop #compose #compose_multiplatform

2025-05-31

Индикация клика на стероидах в Compose: пишем свою IndicationNodeFactory

При работе с Jetpack Compose разработчики часто не замечают, как элементы Material и Material 3 дизайн систем вплетаются в их код. Один из таких элементов - это индикация клика, реализованная в Material как круги на воде (англ. ripple effect). В этой статье мы разберем, в чем недостатки дефолтной реализации риппл-эффекта в Compose и как сделать свою.

habr.com/ru/articles/914506/

#compose #compose_multiplatform #jetpack_compose #material_design #design_system

2025-05-24

Развеиваем мифы о Stability в Compose: оптимизации Strong Skipping

За последнее время Jetpack Compose и его кроссплатформенный собрат Compose Multiplatform прошел большой путь от ранних альфа релизов и скептического отношения комьюнити до статуса главного UI-фреймфорка под Android и production-ready состояния на iOS. Тем не менее одна из важных тем, касающихся runtime-производительности фреймворка, все еще остается полной темных пятен, и это тема stability. Как ни странно, ведь на эту тему сделано множество статей и докладов. Проблема заключается в том, что стремительное развитие фреймворка очень быстро делает эти статьи, доклады и даже документацию устаревшими, а новые посты на эту тему вторят старым, дальше распространяя ложную информацию о том, как работает рекомпозиция, пропускаемость (skippability) и перезапускаемость (restartability). Использование LLM для получения актуальной информации не очень поможет. Простой пример - спросим у ChatGPT, будет ли перезапущена Composable функция, если она имеет нестабильные аргументы, и получим неправильный ответ:

habr.com/ru/articles/912490/

#kotlin_multiplatform #compose_multiplatform #jetpack_compose

2025-05-07

Compose Multiplatform 1.8.0: поддержка iOS переходит в stable

Привет! Меня зовут Максим, я управляющий партнер и руководитель мобильной разработки в KTS . Мы разрабатываем приложения на KMP еще с 2021 года, а в прошлом году начали экспериментировать с Compose Multiplatform. Вчера JetBrains официально объявили о выходе CMP 1.8.0 , c которой поддержка iOS переходит в статус stable . Это важный этап, поскольку теперь CMP можно всерьез рассматривать как основу для кроссплатформенной мобильной разработки. В этой статье мы познакомимся с обновлением и рассмотрим заявленные фишки, а заодно поговорим о результатах наших опытов с CMP на ‭наших проектах.

habr.com/ru/companies/kts/arti

#compose_multiplatform #кроссплатформенность #кроссплатформенная_разработка #обновление #kotlin_multiplatform #kotlin #мобильная_разработка #мобильные_приложения

2025-03-28

Автоматизация версионирования в Kotlin Multiplatform: Решение для Android и iOS

Привет, Хабр! В этой статье я делюсь решением, как настроить версионирование приложения для Android и iOS с помощью Kotlin Multiplatform. Я рассказываю о том, как минимизировать человеческий фактор, автоматизировав процесс обновления версий, и как избежать дублирования информации в разных частях проекта. В статье представлен пример кода, который можно адаптировать под свой проект.

habr.com/ru/articles/895362/

#kmp #multiplatform #versioning #android #ios #compose_multiplatform #kotlin_multiplatform #kmm #mobile #kotlin

2025-03-03

Delight SQL Viewer: отладка SQLDelight-базы прямо в приложении

Привет! Хочу поделиться инструментом, который значительно упростит жизнь тем, кто использует SQLDelight для работы с базами данных в Kotlin Multiplatform-проектах. Этот инструмент называется Delight SQL Viewer .

habr.com/ru/articles/886214/

#kotlin_multiplatform #sqldelight #compose_multiplatform #sqlite

2024-09-21

Взаимодействие с клавиатурой в Compose: особенности и подводные камни

Привет, Хабр! На связи Глеб Гутник, мобильный разработчик из компании xStack. В этой статье мы рассмотрим, как можно эффективно кастомизировать взаимодействие с клавиатурой в Jetpack Compose и Compose Multiplatform для создания комфортного UX. Для того, чтобы пользователь мог полноценно взаимодействовать с интерфейсом, мы, мобильные разработчики, ежедневно решаем простую, казалось бы, задачу: поля ввода формы на экране всегда должны быть видны и находиться выше клавиатуры. На Android для этого предусмотрен флаг android:windowSoftInputMode="adjustResize" , но он сжимает окно приложения без учета анимации клавиатуры, поэтому пользователь видит пустое поле долю секунды, пока клавиатура открывается:

habr.com/ru/articles/845124/

#kmp #kotlin #kotlin_multiplatform #compose_multiplatform #jetpack_compose

2024-03-29

Telegram Desktop и Compose Multiplatform

Всем привет! В своей прошлой статье я рассказывал как можно запустить Telegram клиент в качестве backend-сервиса. В описываемой там библиотеке с тех пор были внесены некоторые оптимизации, и в целом, я остался доволен возможностями, которые получил. После чего возникло желание добавить визуальную часть к имеющемуся бэкенду и заодно изучить что-то новое для себя. Выбор пал на фреймворк Compose Multiplatform. Давайте сделаем десктопную версию Telegram!

habr.com/ru/articles/803987/

#kotlin #java #compose_multiplatform #jetbrains #telegram #tdlib #springboot #telegram_api #desktop

2024-01-24

Заводим Яндекс Карты в Compose Multipltform

Привет! Это мой первый пост на Хабре, буду рад услышать профессиональное и не очень мнение по поводу этой статьи. Реализуем Яндекс Карты в KMP проекте с использованием Compose Multiplatform. Нестандартное решение с интерфейсом на Swift и передачей кода через DI.

habr.com/ru/articles/788554/

#яндекс_карты #compose_multiplatform #kotlin_multiplatform_mobile #kotlin_multiplatform #yandex_maps

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst