Skip to content

PLASMA-7887: fix(sdds-acore/uikit-compose): Wheel performance was improved - #870

Merged
raininforest merged 3 commits into
developfrom
bugfix/wheel-perf-problem
Aug 4, 2026
Merged

PLASMA-7887: fix(sdds-acore/uikit-compose): Wheel performance was improved#870
raininforest merged 3 commits into
developfrom
bugfix/wheel-perf-problem

Conversation

@raininforest

@raininforest raininforest commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator

sdds-uikit-compose

Wheel

  • Исправлена проблема производительности Wheel.

MaskedTextField

  • Исправлен крэш в PhoneMask при вводе минуса

What/why changed

  • Исправлена проблема производительности Wheel.
  1. Метрики текста вынесены в WheelTextMetrics / rememberWheelTextMetrics — считаются один раз на набор данных, а не на каждый проход измерения.
  2. Для выбора кандидата вместо полного TextMeasurer.measure() используется ParagraphIntrinsics.maxIntrinsicWidth (без построения MultiParagraph/StaticLayout). Точные размеры ячейки по-прежнему берутся из probe-измерения реального Item.
  3. Ширины дедуплицируются по строке через HashMap.
  4. Метрики ленивые: если ширина колеса задана снаружи (constraints.hasFixedWidth, типовой случай fillMaxWidth в шторке), самый широкий элемент не нужен — вместо него используется синтетический heightProbeItem, а O(N)-проход не запускается вовсе.
  5. labelOffsetFromCenter передаётся лямбдой и читается в draw-фазе (drawSeparator), колбэки размеров вынесены в SideEffect — убрана лишняя рекомпозиция Wheel с пересборкой набора данных.
  • Исправлен крэш в MaskedTextField при вводе минуса
Было Стало
https://github.com/user-attachments/assets/4e209c67-4805-498a-907e-77714a1a58af https://github.com/user-attachments/assets/28e380a3-53db-4c93-9f45-c612310ad0da

@raininforest raininforest self-assigned this Aug 4, 2026
@raininforest raininforest added bug Something isn't working compose labels Aug 4, 2026
@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 90496ae9-9b13-46f9-9e5d-bc606110d1da

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@raininforest raininforest changed the title Bugfix/wheel perf problem PLASMA-7887: fix(sdds-acore/uikit-compose): Wheel performance was improved Aug 4, 2026
@raininforest
raininforest force-pushed the bugfix/wheel-perf-problem branch from f25b905 to e712c3a Compare August 4, 2026 08:10
@salutedevs

salutedevs commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator

📦 Собранные Debug APK

📲 Как установить APK на Android-устройство:

  1. Распакуйте архив.
  2. Скопируйте нужный .apk на устройство (через USB, Telegram, Google Drive и т.д.).
  3. Откройте .apk на устройстве и подтвердите установку.
    Если потребуется, включите Разрешение на установку из неизвестных источников в настройках устройства.

💻 Установка через USB (ADB):

  1. Включите Отладку по USB на устройстве (Настройки → Для разработчиков).
  2. Подключите устройство к компьютеру по USB.
  3. Убедитесь, что устройство отображается:
    adb devices
  4. Установите .apk:
    adb install path/to/your.apk
    Если приложение уже установлено и нужно обновить:
    adb install -r path/to/your.apk

@salutedevs

Copy link
Copy Markdown
Collaborator

📘Артефакты документации опубликованы:

@raininforest
raininforest merged commit 5d09155 into develop Aug 4, 2026
54 checks passed
@raininforest
raininforest deleted the bugfix/wheel-perf-problem branch August 4, 2026 15:10
@salutedevs salutedevs mentioned this pull request Aug 5, 2026
raininforest added a commit that referenced this pull request Aug 5, 2026
* chore: Bump versions for changed modules (#859)

* feat(sdds-acore/uikit-compose): sdds-uikit-compose multiplatform (#849)

* feat(sdds-acore/icons-compose): kmp icons (#847)

* feat(sdds-acore/theme-builder): theme-builder now supports cmp (#851)

* feat(sdds-acore/docs): different docs modules were merged in single module (#852)

* feat(sdds-sandbox): cmp sandbox was created (#855)

* homeds detekt issues were fixed. composableCodeSnippet import was fixed

* fix(sdds-acore/cmp): OverlayHost clicks were fixed

* fix(sdds-acore/cmp): Popover position was fixed for ios

* fix(sdds-acore/uikit-compose): different bugs were fixed after review (#867)

* fix(sdds-acore/uikit-compose): RectSkeleton shimmer coordinates were fixed.

* PLASMA:7898: test(sdds-acore/testing): Added plugin themebuilder GenerateThemeTask test (#863)

* test(sdds-acore/testing): Added plugin themebuilder GenerateThemeTask tests

* test(sdds-acore/testing): Added ThemebuilderExtension unit tests

* feat(docs): Агрегатор документации для Android. (#865)

* feat: unify design system builder plugin

* feat(docs): package core documentation templates

* feat: aggregate user documentation layer

---------

Co-authored-by: Малышев Александр Александрович <20959665@cab-wsm-0194334.sigma.sbrf.ru>

* feat(sdds-acore/uikit): View api meta mechanism was created (#864)

* fix(sdds-acore/theme-builder): wrap Android icon refs into resourceImageSource

* add .kotlin to gitignore

* feat(sdds-acore/theme-builder): universal view generator was implemented

* fix(sdds-acore/uikit-compose): Wheel performance was improved (#870)

* feat(sdds-alibs/homeds): HomeDS Theme tokens were updated.

---------

Co-authored-by: Alexander Malishev <alex.malishev270896@gmail.com>
Co-authored-by: Sergey Velesko <53015097+raininforest@users.noreply.github.com>
Co-authored-by: Nikita Melnikov <162089237+SerraMorec@users.noreply.github.com>
Co-authored-by: Sergey Velesko <s.velesko@yandex.ru>
Co-authored-by: angirb <119584718+angirb@users.noreply.github.com>
Co-authored-by: Малышев Александр Александрович <20959665@cab-wsm-0194334.sigma.sbrf.ru>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working compose

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants