Hello all, i have very general question that is it...
# announcements
k
Hello all, i have very general question that is it safe to use
inline
classes in production android app ?,because its in experimental
g
What is “safe”?
l
I think he is referring to the compiler warning that discourages production usage.
g
I mean what “safe” means for @Kulwinder Singh? Yes, this is experimental and under active development and compiler warns you about it
k
i want to know that how stable it is and does people using it ?
h
I can only speak for myself an my company, but 👌, people are using it, also in production.
g
What is “stable” than?
k
i know nothing is perfect, but i have generally asked if there is something that i don't know about inline classes so i can know from here
g
Maybe make sense than check issue tracker or at least ask “does anyone know any critical issues or problems with inline classes”
g
I believe that's what he is asking. There are different levels of "experimental",
@Parcelize
is experimental but it's basically ready for release.
Channels
are truly experimental and under a heavy development, with half of the API marked as obsolete. So it's an understandable desire to estimate the amount of refactoring if everything goes ballistic. I believe inline classes are more on the safe side here and I'd afford the risk.
👍 1
g
Channels
are truly experimental and under a heavy development, with half of the API marked as obsolete
This is library feature, not a language so at some point it’s much more “safe” to use Obsolete channels than new experimental language feature that involves a lot of compiler changes. Also Channels work fine and production ready, but yeah, API will be probably changed and will definitely moved to another package (which is not a problem by itself) My point that “safe”, “stable” and “production ready” are not absolute definitions and those terms has any sense only in context of your particular project, requirements and personal preferences And some experimental feature maybe “safe” and “stable” in one release and get some critical bugs in another and exactly the same may happen with any stable feature
k
@ghedeon is right,that is what i am asking ,you are correct there are different levels of experimental
g
there are different levels of experimental
Yes, but in terms of Kotlin there is pretty clear definition of what “experimental” is
c
I just want to make sure that everyone understands what's going on here and not dismiss skeptical comments as offensive. "Android app" is just not enough context to answer the posed question. When it comes to "production readiness" a lot of context is necessary. Android app which is a game of popping balloons for example has wildly different stability requirements than one used to manage a heart pacemaker. Of course people here could assume the app is something mundane and if it doesn't crash a lot, it could be considered stable. But that would've been irresponsible, so many people prefer not to do it and point out the problem with the question formulation or just remain silent because frequently suggestions to improve the question are considered being arrogant and critiqued on the internet. Take away is: when stability (or any other requirement really) is concerned, one has to formulate one's validation framework and if they want to use someone's opinion instead of or in parallel with other types of research, one has to provide enough context to make it possible for others to answer the question meaningfully. Sorry, a bout of graphomania, happens to me sometimes :D
💯 2
k
yes, i also think that my question not have enough information provided, i feel sorry for that and for next time i will keep in mind your suggestions and will try to provide more info while asking.
👍 1
j
I’ve used it in production.