Anyone using `@ExperimentalMaterialApi` in product...
# compose
l
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
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
@james thank you. So, Are you using ModalBottomSheetLayout by implementing it yourself?
j
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
We have
@Experimental*Api
everywhere. 3 prod apps. Thousands of users. No issues.
l
@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
Nothing buggy about it for us.
l
@Colton Idle Is that an unproven belief?
c
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
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
@Marcin Wisniowski wow Really?? I figured there could be a bug because of word “experimental”. Are you sure what you’re saying?
c
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
@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
Nope.
@Experimental
is just experimental
m
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
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
+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
thanks Jossi! I’ve already bugged you enough (& filed/starred issues) about my use cases 😄 we appreciate your work 🙏
🙏 2
194 Views