
Даже при использовании режима сильного пропуска (strong skipping mode) следует отдавать предпочтение стабильным типам.
Наибольший источник нестабильных параметров — это коллекции.
1️⃣ Самый безопасный способ — использовать
2️⃣ Более простой способ — заставить Compose интерпретировать
3️⃣ Последний и наименее популярный способ — обернуть коллекцию в класс-обертку, помечая её как неизменяемую. В наши дни это, пожалуй, наименее привлекательное решение, так как оно лишь скрывает проблему, но не решает её 🙄
👉 @MobDevPortal | #tips
Наибольший источник нестабильных параметров — это коллекции.
𝐋𝐢𝐬𝐭
, 𝐒𝐞𝐭
и 𝐌𝐚𝐩
являются нестабильными. Существует три основных способа справиться с этимPersistentList
, PersistentSet
и PersistentMap
из библиотеки kotlinx.collections.immutable
. Эти структуры являются стабильными и гарантируют настоящую неизменяемостьList
, Set
и Map
как стабильные в вашем проекте. Это можно сделать через настройку стабильности (stability config). В такой конфигурации также можно указать другие типы, например, LocalDateTime
. Однако этот вариант небезопасен, так как может привести к непредсказуемым последствиям.