Size: a a a

Kotlin Community

2020 May 09

ЮП

Юрий Петров... in Kotlin Community
Может английские статьи кто нибудь видел? Эту
я читал)
источник

AN

Alexander Nozik in Kotlin Community
Max Gusev
Я кстати так и не понял, почему Гугл не сделали "flutter" на котлине
гугл сделал компоуз
источник

I

Ilmir in Kotlin Community
Iaroslav Orlov
проблема в том, что зарепродьюсили без compose
Кидайте ссылку на гист с репродьюсером, посмотрю.
источник

IO

Iaroslav Orlov in Kotlin Community
Alexander Nozik
гугл сделал компоуз
но это же так или иначе нативные ui андроида. а флаттер вообще сам рендерит вроде
источник

IO

Iaroslav Orlov in Kotlin Community
Ilmir
Кидайте ссылку на гист с репродьюсером, посмотрю.
я думаю, что вы его уже видели https://gist.github.com/CommanderTvis/17155bbb6f40cd7293f0d52eacbf95aa
источник

AM

Andrew Mikhaylov in Kotlin Community
Iaroslav Orlov
но это же так или иначе нативные ui андроида. а флаттер вообще сам рендерит вроде
Нет, компоузу, ровно как и флаттеру, от андроида нужны только Canvas и MotionEvent-ы. Остальное он делает сам.
источник

AM

Andrew Mikhaylov in Kotlin Community
(ладно, не только, конечно, но компоненты у него целиком свои)
источник

IO

Iaroslav Orlov in Kotlin Community
они не могли переиспользовать даже кнопочку?
источник

AM

Andrew Mikhaylov in Kotlin Community
У них совершенно другие цели были.
источник

IO

Iaroslav Orlov in Kotlin Community
Iaroslav Orlov
они не могли переиспользовать даже кнопочку?
это нарушает composition over inheritance?
источник

AM

Andrew Mikhaylov in Kotlin Community
Iaroslav Orlov
это нарушает composition over inheritance?
Давайте компоуз не тут обсуждать, к котлину его суть отношение довольно посредственное имеет. Посмотрите вышеприведенный доклад, дальше можете вопросы в @android_declarative позадавать, к примеру.
источник

QH

Quantum Harmonizer in Kotlin Community
Iaroslav Orlov
они не могли переиспользовать даже кнопочку?
Не хотели. Чтобы можно было обновлять UI-фреймворк с приложением, а не с ОС.
источник

IO

Iaroslav Orlov in Kotlin Community
Quantum Harmonizer
Не хотели. Чтобы можно было обновлять UI-фреймворк с приложением, а не с ОС.
поддерживаю, что лучше потом перейти в чат по теме
источник

AM

Andrew Mikhaylov in Kotlin Community
Iaroslav Orlov
поддерживаю, что лучше потом перейти в чат по теме
@angmarr кроме прочего ведёт @jetpack_compose, где можно поискать материалы. Хороших подборок для кик-старта пока не видел, но оно и логично, там постоянно всё меняется.
источник

I

Ilmir in Kotlin Community
Information:Kotlin: kotlinc-jvm 1.4-M1 (JRE 1.8.0_201-b09)
Information:09.05.2020, 15:34 - Build completed successfully with 1 warning in 17 s 773 ms
источник

I

Ilmir in Kotlin Community
Видимо, cannot reproduce.
источник

IO

Iaroslav Orlov in Kotlin Community
но 1.4 с компоузом не завести. я M1 пробовал. впрочем, это уже проблемы компоуза
источник

I

Ilmir in Kotlin Community
Ну тогда, подождать новой версии компоуза, на 1.4
источник

s

sykat in Kotlin Community
Hi, could anyone explain what the diff between also and apply is? like, I have this code

fun main() {
   println("Hello, world!!!")
   var a = 3
   var b = 5
   var c = 0
   c = a.apply { a to c}
   b = a.also { a to b }
   
   print("$a $b $c")
}


but both of them result in c = 3
источник

AL

Alexander Levin in Kotlin Community
sykat
Hi, could anyone explain what the diff between also and apply is? like, I have this code

fun main() {
   println("Hello, world!!!")
   var a = 3
   var b = 5
   var c = 0
   c = a.apply { a to c}
   b = a.also { a to b }
   
   print("$a $b $c")
}


but both of them result in c = 3
Hi. Documentation for that here: https://kotlinlang.org/docs/reference/scope-functions.html
In short: both are scope function and both will return original object (a in your case)
Technical difference is in lambda:  receiver parameter ( this ) will be in apply lambda scope and usual parameter (implicitly can be called as it ) will be in also lambda.

In terms of practical difference - apply usually used to change object itself if that not possible in the constructor. Bad and outdated example is:
val list = mutableListOf<Int>().apply {
   add(1) //can be this.add(1)
   add(2)
}


also is usually used to do something with object (store it, print it, etc):
val something = foo().also { println(it) }
источник