iOSではリストの一部をスワイプして削除、マーキングする等アクションを発生させることができますが、Androidも同じ機能を実装する場合は自作するかGoogle非公式ライブラリを使うことが多かったと思います。マテリアルデザイン3でもリストのガイドラインでもスワイプについての言及があります。

https://m3.material.io/components/lists/guidelines#79546d3e-e897-4cfe-b842-664f6ad8750b

まだベータ版ですが、JetpackComposeでSwipeToDismissBoxが追加されたのでこれでiOSに近いUIを提供できます。

https://developer.android.com/reference/kotlin/androidx/compose/material3/package-summary#SwipeToDismissBox(androidx.compose.material3.SwipeToDismissBoxState,kotlin.Function1,androidx.compose.ui.Modifier,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean,kotlin.Function1)

import android.widget.Toast
import androidx.compose.animation.animateColorAsState
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.ListItem
import androidx.compose.material3.OutlinedCard
import androidx.compose.material3.SwipeToDismissBox
import androidx.compose.material3.SwipeToDismissBoxValue
import androidx.compose.material3.Tex
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.ui.graphics.RectangleShape
import androidx.compose.ui.platform.LocalContext

@OptIn(ExperimentalMaterial3Api::class)
@Composable
internal fun SwipeToDismissBoxScreen() {
    val context = LocalContext.current
    val firstDismissState = rememberSwipeToDismissBoxState()
    val firstTargetColor by animateColorAsState(getColor(firstDismissState.targetValue), label = "firstTargetColor")
    val secondDismissState = rememberSwipeToDismissBoxState()
    MaterialTheme {
        Column {
            if (firstDismissState.currentValue != SwipeToDismissBoxValue.Settled) {
                LaunchedEffect(key1 = "first") {
                    Toast.makeText(context, firstDismissState.currentValue.toString(), Toast.LENGTH_SHORT).show()
                    firstDismissState.reset()
                }
            }

            SwipeToDismissBox(
                state = firstDismissState,
                backgroundContent = {
                    Box(Modifier.fillMaxSize().background(firstTargetColor))
                }
            ) {
                OutlinedCard(shape = RectangleShape) {
                    ListItem(
                        headlineContent = { Text("FirstItem") },
                        supportingContent = { Text("Swipe me left or right!") }
                    )
                }
            }

            if (secondDismissState.currentValue == SwipeToDismissBoxValue.Settled) {
                SwipeToDismissBox(
                    state = secondDismissState,
                    backgroundContent = {
                        val color by animateColorAsState(getColor(secondDismissState.targetValue), label = "second")
                        Box(Modifier.fillMaxSize().background(color))
                    }
                ) {
                    OutlinedCard(shape = RectangleShape) {
                        ListItem(
                            headlineContent = { Text("SecondItem") },
                            supportingContent = { Text("Swipe me left or right!") }
                        )
                    }
                }
            }
        }
    }
}

@OptIn(ExperimentalMaterial3Api::class)
fun getColor(value: SwipeToDismissBoxValue): Color =
    when (value) {
        SwipeToDismissBoxValue.Settled -> Color.LightGray
        SwipeToDismissBoxValue.StartToEnd -> Color.Green
        SwipeToDismissBoxValue.EndToStart -> Color.Red
    }

2024年5月時点ではまだ正式版ではないので@OptIn(ExperimentalMaterial3Api::class)が必要です。今回の実装ではスワイプして項目を維持する場合と消えてなくなる場合のコードになります。アニメーション使ってキレイに消したり、背景にアイコンを表示したり、LazyColumnで実装してもできると思います。

"androidx.compose.material3:material3のライブラリは2023年あたりだと使えないので最新のバージョンを使いましょう。