Skip to content

Instantly share code, notes, and snippets.

@bugrayetkinn
bugrayetkinn / DisposableEffect.kt
Created April 22, 2022 16:24
DisposableEffect
val LocalBackPressedDispatcher =
staticCompositionLocalOf<OnBackPressedDispatcher> { error("No Back Dispatcher provided") }
@Composable
fun MyBackPressed(onBackPressed: () -> Unit) {
val backPressDispatcher = LocalBackPressedDispatcher.current
val backCallBack = remember {
object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
@Composable
fun SideEffectTest() {
val alphabets = arrayListOf("A", "B", "C", "D", "E", "F")
var clickCount by remember {
mutableStateOf(0)
}
/**
* todo
* composable ilk açılışta başarılı şekilde recompose olursa sideEffect çalışacaktır.
@Composable
fun ImageDownloader() {
val imageUrl = "http://my-image.profile.jpg"
val imageRepository = ImageRepository(imageUrl)
val imageLoadState by produceState(initialValue = "Start request", key1 = imageRepository) {
val imageResult = imageRepository.loadImage()
value = imageResult
}
Text(text = imageLoadState)
@bugrayetkinn
bugrayetkinn / LaunchedEffect.kt
Last active April 22, 2022 15:37
LaunchedEffect
LaunchedEffect(key1 = userClickCount) {
if (userClickCount > INITIAL_USER_CLICK_COUNT)
scaffoldState.snackbarHostState.showSnackbar(currentCounterText)
launchEffectControl(userClickCount)
}
fun CoroutineScope.launchEffectControl(userClickCount: Int) {
launch {
// 4 saniye öncesindeki tıklamaları yok sayar !
var name: String by remember {
mutableStateOf("")
}
var name: MutableState<String> = remember {
mutableStateOf("")
}
var name: String by rememberSaveable {
mutableStateOf("")
@bugrayetkinn
bugrayetkinn / LoginScreen.kt
Created April 20, 2022 09:21
DerivedStateOf
@Composable
fun LoginScreen() {
var name: String by remember {
mutableStateOf("")
}
var password: String by remember {
mutableStateOf("")
}
@Composable
fun StateLess(text: String, modifier: Modifier) {
Text(text = text, modifier = modifier)
}
@Composable
fun StateFullText(text: String) {
Text(
text = text,
modifier = Modifier
.background(Color.Black)
.blur(8.dp)
.alpha(0.3F)
.padding(16.dp),
fontSize = 24.sp,
@bugrayetkinn
bugrayetkinn / PasswordTextField.kt
Created December 12, 2021 11:17
PasswordTextField
@ExperimentalComposeUiApi
@Composable
fun PasswordTextField() {
val keyboardController = LocalSoftwareKeyboardController.current
var passwordText by remember {
mutableStateOf("")
}
var passwordVisibility by remember {
@bugrayetkinn
bugrayetkinn / LazyList.kt
Created December 8, 2021 20:58
LazyList
LazyColumn{
contacts().entries.forEach {
stickyHeader {
Text(text = "${it.key}")
}
items(it.value) { name ->
Text(text = name)