Hi all! It seems like material3-compose went to st...
# compose
a
Hi all! It seems like material3-compose went to stable (latest version is 1.0.1) But there are still stuff annotated with
ExperimentalMaterial3Api
like Scaffold, which makes it a little bit confusing. Is it safe to use Experimental api in prod? Are there going to be breaking changes for that api?
f
Is it safe to use Experimental api in prod
Should be, yes
Are there going to be breaking changes for that api?
Probably also yes. That's the point of experimental annotation
a
Usually, I would expect from production ready api's not to have an "experimental" annotations...
f
"production ready" could mean something else for different people. Some people consider API to be production ready only after it's been out for several years 🙂 Read the Android/Kotlin experimental annotations as "_Possibility of API change until stable_". It does not have other meaning as far as I know.
a
https://kotlinlang.org/docs/opt-in-requirements.html#opt-in-requirements-for-pre-stable-apis "Once your pre-stable API graduates and is released in a stable state, remove its opt-in requirement annotations from declarations." Based on Kotlin requirements to OptIn the experimental should be removed if version is stable.
f
Not if version is stable but if the API is stable.
a
Lol...is not it the same?
f
Depends on the context. By API you could mean the "whole API surface of a library" or "API of some class" or "API of package" or just API of some functionality that spans across several files/packages
a
Thanks @Filip Wiesner
d
Version can be stable as in it has been sufficiently tested to the point of not having any glaring bugs or runtime stability issues. API, as in the naming/architectural implementation is still up for debate and subject to possible change. The car runs and the engine is stable, but the doors might change to gull wing as opposed to classical or the media interface might change.
@Anton Afanasev ☝️