Status Update
Comments
il...@google.com <il...@google.com> #2
Tentatively, the annotation should be something use-case-specific like @OutlinedNewApi
that allows alternative build systems (e.g. not R8/D8) to make their own decisions. We'll provide a default Proguard configuration for R8, but it's not guaranteed this will work as intended -- outlining is automatic in newer versions, but it may be disabled.
ap...@google.com <ap...@google.com> #3
Just as an FYI, this was enabled in AGP 2 years ago (AGP 7.3 as far as I remember), ag/18426192, so for AGP users it might fine to just remove the rule for @DoNotInline
. I like the @OutlinedNewApi
to make it clear what this is for other consumers to handle it as they see fit.
ap...@google.com <ap...@google.com> #4
Given the failure mode can include run-time crashes, that's not an acceptable level of usage.
jb...@google.com <jb...@google.com> #5
I think you can still include a top-level proguard.txt
, and it will be used by versions that do not support the com.android.tools
format. E.g.
Description
Using Compose within Fragments require setting a differenthttps://developer.android.com/jetpack/compose/interop/interop-apis#composition-strategy it is still a common 'gotcha' that developers frequently run into as per feedback we've received from partners ( b/229427938 ).
ViewCompositionStrategy
(DisposeOnViewTreeLifecycleDestroyed
) so that the composition follows the fragment's view lifecycle. While we do document this behavior inTo prevent developers from making this mistake, we can improve the DevEx by either:
ComposeView
in a fragment (preferred - works for existing implementations)ComposeFragment
(less preferred - requires awareness of this new component, also can be confused with fragment-in-compose use case)