Skip to content

Instantly share code, notes, and snippets.

View fvilarino's full-sized avatar

Francesc Vilariño Güell fvilarino

View GitHub Profile
@fvilarino
fvilarino / stability_sample_code.kt
Last active November 30, 2023 01:48
Stability - Sample Code
View stability_sample_code.kt
// 1
data class State(
val value: Int,
val prompt: String,
val values: Set<Int>,
val prompts: List<String>,
)
// 2
@Composable
@fvilarino
fvilarino / stability_stable_composables.txt
Created November 29, 2023 23:15
Stability - Stable Composables
View stability_stable_composables.txt
restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun SampleUi(
stable state: State
)
restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun PrimitivesMethod(
stable value: Int
stable prompt: String
stable modifier: Modifier? = @static Companion
)
restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun CollectionsMethod(
stable values: Set<Int>
@fvilarino
fvilarino / stability_stable_classes.txt
Created November 29, 2023 23:14
Stability - Stable Classes
View stability_stable_classes.txt
stable class State {
stable val value: Int
stable val prompt: String
stable val values: Set<Int>
stable val prompts: List<String>
<runtime stability> =
}
@fvilarino
fvilarino / stability_adding_stability_argument.kts
Created November 29, 2023 23:10
Stability - Adding Stability Argument
View stability_adding_stability_argument.kts
kotlinOptions {
val composeReportsDir = "compose_reports"
// 1
freeCompilerArgs += listOf(
"-P",
"plugin:androidx.compose.compiler.plugins.kotlin:stabilityConfigurationPath=$rootDir/stability-config.txt"
)
freeCompilerArgs += listOf(
"-P",
@fvilarino
fvilarino / stability_unstable_composables.txt
Last active November 29, 2023 23:00
Stability - Unstable Composables
View stability_unstable_composables.txt
restartable scheme("[androidx.compose.ui.UiComposable]") fun SampleUi(
unstable state: State
)
restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun PrimitivesMethod(
stable value: Int
stable prompt: String
stable modifier: Modifier? = @static Companion
)
restartable scheme("[androidx.compose.ui.UiComposable]") fun CollectionsMethod(
unstable values: Set<Int>
@fvilarino
fvilarino / stability_unstable_classes.txt
Created November 29, 2023 22:55
Stability - Unstable Classes
View stability_unstable_classes.txt
unstable class State {
stable val value: Int
stable val prompt: String
unstable val values: Set<Int>
unstable val prompts: List<String>
<runtime stability> = Unstable
}
@fvilarino
fvilarino / stability_reports_compiler_flag.kts
Created November 29, 2023 22:32
Stability - Reports Compiler Flag
View stability_reports_compiler_flag.kts
kotlinOptions {
// 1
val composeReportsDir = "compose_reports"
// 2
freeCompilerArgs += listOf(
// 3
"-P",
"plugin:androidx.compose.compiler.plugins.kotlin:reportsDestination=" +
project.layout.buildDirectory.get().dir(composeReportsDir).asFile.absolutePath,
@fvilarino
fvilarino / loading_button_final.kt
Last active November 24, 2023 17:53
Loading Button Final
View loading_button_final.kt
enum class AnimationType {
Bounce,
LazyBounce,
Fade,
}
private const val NumIndicators = 3
private const val IndicatorSize = 12
private const val BounceAnimationDurationMillis = 300
private const val FadeAnimationDurationMillis = 600
@fvilarino
fvilarino / animiated_drawer_final.kt
Created November 24, 2022 22:56
Animated Drawer - Final
View animiated_drawer_final.kt
@Stable
interface AnimatedDrawerState {
var density: Float
val drawerWidth: Dp
val drawerTranslationX: Float
val drawerElevation: Float
val backgroundTranslationX: Float
val backgroundAlpha: Float
@fvilarino
fvilarino / draggable_content_final.kt
Created June 22, 2023 18:56
Draggable Contente - Final
View draggable_content_final.kt
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
PlaygroundTheme {
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background,
) {
Box {