https://kotlinlang.org logo
Title
l

Luis Daivid

06/07/2022, 3:45 AM
Anyone using
@ExperimentalMaterialApi
in product apps? I need to use
ModalBottomSheetLayout
or
BottomSheetScaffold
, but I’m afraid because it’s ExperimentalMaterialApi. I need reviews from people who have been using this. Additionally, does the meaning of
@ExperimentalMaterialApi
mean that the API can be mutable as well as error-prone?
j

james

06/07/2022, 4:28 AM
we're using
@ExperimentalMaterialApi
quite a bit in a large production app (>200,000 daily active users) without any major issues however.. I would recommend really heavily testing your use cases for
ModalBottomSheetLayout
(especially if you need animations) before you commit to using it, because we have found that particular component is a bit of a tough one to use stably at the moment I have tested it on and off with each release of Compose since January and it's just not suitable for production for our use cases at this time, whereas most of the other components have been fine for us
l

Luis Daivid

06/07/2022, 4:36 AM
@james thank you. So, Are you using ModalBottomSheetLayout by implementing it yourself?
j

james

06/07/2022, 4:53 AM
not at this stage - simply de-prioritising updating the older piece of UI, doing other things first, and hoping
ModalBottomSheetLayout
is in a better state in a few months time 😅
👍 1
👀 1
c

Colton Idle

06/07/2022, 11:18 AM
We have
@Experimental*Api
everywhere. 3 prod apps. Thousands of users. No issues.
l

Luis Daivid

06/07/2022, 11:33 AM
@Colton Idle
@Experimental*Api
is literally a buggy experimental API. But why did you apply it to the prod app? What if there is a bug?
c

Colton Idle

06/07/2022, 11:34 AM
Nothing buggy about it for us.
l

Luis Daivid

06/07/2022, 11:36 AM
@Colton Idle Is that an unproven belief?
c

Colton Idle

06/07/2022, 11:37 AM
I need reviews from people who have been using this.
I'm just answering your question. Thousands of users. 3 apps. None of the crashes we've gotten are due to any experimental api.
👍 1
m

Marcin Wisniowski

06/07/2022, 12:25 PM
An API being marked as experimental doesn't mean it's any less stable or unsafe to use. It means it will likely change, or could even be removed in the future, requiring migration steps for you.
1
l

Luis Daivid

06/07/2022, 12:47 PM
@Marcin Wisniowski wow Really?? I figured there could be a bug because of word “experimental”. Are you sure what you’re saying?
c

Colton Idle

06/07/2022, 12:49 PM
stable products have bugs. i dont see your point.
sounds like you already have an opinion on this though and want to stick to it.
l

Luis Daivid

06/07/2022, 12:54 PM
@Colton Idle I thought that experimental API is in the development stage and there is a high probability of bugs, so I thought it meant not to use it in the prod app. But if that’s not true, I think it’s fine to use it.
c

Colton Idle

06/07/2022, 1:09 PM
Nope.
@Experimental
is just experimental
m

Marcin Wisniowski

06/07/2022, 1:11 PM
It means the API, the concept, the solution is experimental and is likely to be updated, breaking API stability. Not that the code itself is unstable. But of course any code, and especially new code, can have bugs.
☝️ 2
1
a

Adam Powell

06/07/2022, 1:44 PM
Yep, @Marcin Wisniowski has the idea. It doesn't signal something is more or less buggy than anything else, but the API contract isn't stable so it can change in source or binary incompatible ways when you update the library it's contained in. As such it's unsafe to publish a library that depends on those APIs since a developer who updates the transitive dependency can encounter breakages
👍🏼 1
👍 3
j

jossiwolf

06/09/2022, 7:48 PM
+1 to all of this. However, these two specific components are actively being worked on to address issues we are aware of. We are also still evaluating the API shape we want to offer for these, so overall they haven't been in a good enough state to be promoted to stable yet. We would love to hear about your use cases to make sure we can factor them in🙂
j

james

06/09/2022, 11:48 PM
thanks Jossi! I’ve already bugged you enough (& filed/starred issues) about my use cases 😄 we appreciate your work 🙏
🙏 2