sergio250
05/21/2019, 9:27 AMaltavir
05/21/2019, 11:32 AMsergio250
05/21/2019, 11:44 AMaltavir
05/21/2019, 11:45 AMgildor
05/22/2019, 9:00 AMsergio250
05/22/2019, 9:02 AMaltavir
05/22/2019, 9:02 AMgildor
05/22/2019, 9:03 AMaltavir
05/22/2019, 9:04 AMgildor
05/22/2019, 9:04 AMaltavir
05/22/2019, 9:06 AMgildor
05/22/2019, 9:06 AMaltavir
05/22/2019, 9:06 AMgildor
05/22/2019, 9:06 AMfun ComponentContext.TextView()
?altavir
05/22/2019, 9:07 AMgildor
05/22/2019, 9:07 AMaltavir
05/22/2019, 9:08 AMgildor
05/22/2019, 1:03 PMI wish they were more open to explain those before@sergio250 Isn’t they are super opened? They explain each decision to anyone who has a particular question, even if a few people see the answer in some old thread in compose channel of semi-closed slack, they working on blog posts to explain to wider list of developers their plans and decisions, evaluate every proposal and they have a lot of things to do instead of explain anyone even basic things that you can find in existing samples, and so many do not appreciate their effort (“Compose sucks”) and expect full blown documentation and explanations of 1 year of research right now and writing hype blog posts with ridiculous opinions even do not figure out how it actually works now and I feel bad about Compose Team in this situation when they so opened and ready to discuss
This is all about lack of multi receivers then.@altavir Yes it would make decision different, but it’s just a proposal, they cannot hold project just because some language feature is not there and even not confirmed and do not have proper design
Starting functions with capital letter still looking terrible for meLike many builder functions, even kotlin stdlib, but I agree, case there is different.. It’s just current convention tho, but I see reasons there, it will look like View declarations, and works well with existing views interop
altavir
05/22/2019, 1:14 PMgildor
05/22/2019, 1:15 PMsergio250
05/22/2019, 1:16 PMgildor
05/22/2019, 1:17 PMRow {
Text("Title")
WebView(url = url)
}
and
row {
text("Title")
WebVeiew(url = url) // this is Android Framework view, not composable
}
from testing to lifecycle@sergio250 Exactly! This is available and was mentioned on the only talk about compose on IO, they had example on one of slides > a lot of features and docs missing This also was mentioned in talk, that many features are not there, it’s just a preview, not an alpha
holding state for componentsIt’s also possible and mentioned, but in a different way
altavir
05/22/2019, 1:20 PMgildor
05/22/2019, 1:21 PMaltavir
05/22/2019, 1:22 PMgildor
05/22/2019, 1:22 PMaltavir
05/22/2019, 1:23 PMgildor
05/22/2019, 1:23 PMaltavir
05/22/2019, 1:23 PMgildor
05/22/2019, 1:27 PMI think the blogpost already makes it clear that we understand the effort and the potential of such toolYes, mentions this once and also a lot of loud opinions without proper understanding or attempt to figureout some questions before publishing the article, especially when you can ask any question to any of authors of the library
sergio250
05/22/2019, 1:28 PMgildor
05/22/2019, 1:30 PMsergio250
05/22/2019, 1:34 PMgildor
05/22/2019, 1:37 PMlanguage design point of view@altavir I think from the language design point, the biggest thing is that it pushes compiler plugin API a lot, so we probably get it sooner now
altavir
05/22/2019, 1:37 PMsergio250
05/22/2019, 1:39 PMgildor
05/22/2019, 1:39 PMmaybe the project is lacking some documentationof course, they have some documentation during early stage of development, it’s already nice, also as they said, they will work on blog posts to explain how it works under the hood and to explain some decisions
altavir
05/22/2019, 1:41 PMgildor
05/22/2019, 1:41 PMand a form of feedbackI believe that loudly publishing article without enough research is not feedback
with
unscoped composable functionsWhy do you think it’s bad? it’s really similar to
suspend
functionsaltavir
05/22/2019, 1:54 PMCoroutineScope
, thus limiting the visibility of inner functions and enforcing correct structure.gildor
05/22/2019, 1:57 PMmost suspend functions are currently launched inside theBut suspend function itself has nothing to do with CoroutineScope, it’s for background jobs, you can call suspend function from another suspend function and they share context and have context of parent suspend function, exactly the same what Compose component doesCoroutineScope
altavir
05/22/2019, 1:58 PMgildor
05/22/2019, 1:59 PMBut you can’t just run suspend function from the plain codeYou can do this from another suspend function and you have primitves to create suspend lambda from the plain code, and stdlib even do not have concept of CoroutineScope, it’s an abstraction for launching coroutines in background
suspendCoroutine
(and more high-level runBlocking
) are things that can be called from the plain code and create suspend lambdaaltavir
05/22/2019, 2:02 PMgildor
05/22/2019, 2:08 PMhide everything in the compiler pluginit hides composition in the compiler plugin (same as suspend function continuation in the compiler) and tree diffing mechanism, but all rendering code is also just library, not a part of compiler plugin