Наткнулся на статью "38 ошибок в Compose" и возникло строгое ощущение, что статью писало ChatGPT, ибо ошибок и неточностей там огромное количество, даже начиная с самых первых пунктов.



1. Нам предлагают написать такой код за место обычной лямбды:





@Composable

fun MyComponent() {

var counter by remember { mutableStateOf(0) }

val clickAction = rememberUpdatedState { counter++ }



Button(onClick = { clickAction.value.invoke() }) {

Text("Clicked $counter times")

}

}





При том, что rememberUpdatedState в целом используется для другого, в примере с обычной лямбдой было бы все окей, так как Compose умеет мемеизировать лямбды со стабильным типами.



В большинстве случаев вам не нужно ничего оптимизировать – это задача команды Compose. Но если все же нужно:

🔵оберните лямбды с нестабильными типами в remember

🔵передавайте часто меняющиеся параметры как Sate или лямбду



2. Далее нам предлагают заменить вложенные layout на Box или ConstraintLayout 🤡



Тут даже комментировать не хочется, ибо в Compose есть правило одного прохода, вьюшки не меряются два раза, соответственно проблем с производительностью не будет.



Разумеется это не все проблемы в статье, так что не верьте всему, что написано в интернете (мне тоже), а лучше читайте официальную документацию🗿