Understand your Mac and iPhone more deeply by tracing the evolution of Mac OS X from prelease to Swift. John Siracusa delivers the details.
You've got two main options:
| import android.os.Bundle | |
| import androidx.activity.ComponentActivity | |
| import androidx.activity.compose.setContent | |
| import androidx.activity.enableEdgeToEdge | |
| import androidx.compose.animation.AnimatedVisibility | |
| import androidx.compose.animation.AnimatedVisibilityScope | |
| import androidx.compose.animation.EnterTransition | |
| import androidx.compose.animation.ExitTransition | |
| import androidx.compose.animation.expandIn | |
| import androidx.compose.animation.fadeIn |
| import androidx.compose.animation.core.RepeatMode | |
| import androidx.compose.animation.core.VectorConverter | |
| import androidx.compose.animation.core.animateValue | |
| import androidx.compose.animation.core.infiniteRepeatable | |
| import androidx.compose.animation.core.keyframesWithSpline | |
| import androidx.compose.animation.core.rememberInfiniteTransition | |
| import androidx.compose.foundation.Image | |
| import androidx.compose.foundation.layout.Box | |
| import androidx.compose.foundation.layout.BoxWithConstraints |
| package com.amarland.simplesvgdsl | |
| import androidx.compose.foundation.Image | |
| import androidx.compose.runtime.Composable | |
| import androidx.compose.runtime.Immutable | |
| import androidx.compose.ui.Modifier | |
| import androidx.compose.ui.geometry.Offset | |
| import androidx.compose.ui.geometry.Size | |
| import androidx.compose.ui.graphics.Brush | |
| import androidx.compose.ui.graphics.Color |
| @Composable | |
| fun <T> T.useDebounce( | |
| delayMillis: Long = 300L, | |
| // 1. couroutine scope | |
| coroutineScope: CoroutineScope = rememberCoroutineScope(), | |
| onChange: (T) -> Unit | |
| ): T{ | |
| // 2. updating state | |
| val state by rememberUpdatedState(this) | |
| import android.os.Bundle | |
| import androidx.activity.ComponentActivity | |
| import androidx.activity.compose.setContent | |
| import androidx.compose.animation.core.Animatable | |
| import androidx.compose.animation.core.Spring | |
| import androidx.compose.animation.core.VectorConverter | |
| import androidx.compose.animation.core.spring | |
| import androidx.compose.foundation.BorderStroke | |
| import androidx.compose.foundation.gestures.awaitFirstDown | |
| import androidx.compose.foundation.gestures.forEachGesture |
| @Composable | |
| fun ParallaxScreen(modifier: Modifier = Modifier) { | |
| val context = LocalContext.current | |
| val scope = rememberCoroutineScope() | |
| var data by remember { mutableStateOf<SensorData?>(null) } | |
| DisposableEffect(Unit) { | |
| val dataManager = SensorDataManager(context) | |
| dataManager.init() |
| package des.c5inco.material3 | |
| import android.graphics.Matrix | |
| import android.graphics.Path | |
| import androidx.compose.animation.core.* | |
| import androidx.compose.foundation.Canvas | |
| import androidx.compose.foundation.layout.Box | |
| import androidx.compose.foundation.layout.Column | |
| import androidx.compose.foundation.layout.fillMaxSize | |
| import androidx.compose.foundation.layout.size |
| sudo iptables -t nat -L | |
| sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8000 |