Даже при использовании режима сильного пропуска (strong skipping mode) следует отдавать предпочтение стабильным типам.



Наибольший источник нестабильных параметров — это коллекции. 𝐋𝐢𝐬𝐭, 𝐒𝐞𝐭 и 𝐌𝐚𝐩 являются нестабильными. Существует три основных способа справиться с этим



1️⃣ Самый безопасный способ — использовать PersistentList, PersistentSet и PersistentMap из библиотеки kotlinx.collections.immutable. Эти структуры являются стабильными и гарантируют настоящую неизменяемость



2️⃣ Более простой способ — заставить Compose интерпретировать List, Set и Map как стабильные в вашем проекте. Это можно сделать через настройку стабильности (stability config). В такой конфигурации также можно указать другие типы, например, LocalDateTime. Однако этот вариант небезопасен, так как может привести к непредсказуемым последствиям.



3️⃣ Последний и наименее популярный способ — обернуть коллекцию в класс-обертку, помечая её как неизменяемую. В наши дни это, пожалуй, наименее привлекательное решение, так как оно лишь скрывает проблему, но не решает её 🙄



👉 @MobDevPortal | #tips