Mac 공유 모드 + rsync로 환경설정을 통째로 새 맥에 옮기는 절차
- 두 맥 모두 Apple Silicon (M1 이상)
- 데이터 전송 가능한 USB-C 케이블 (10Gbps 이상 권장)
- 새 맥 초기 설정 완료
| 여러분 안녕하세용 지난 번 행사에서 말씀드렸던 것처럼 내일 오전 중에 성빈랜드를 닫을 예정입니다! | |
| 못 오신 분들도 계실테니 다시 말하자면, 2~3년 동안 블로그 글을 써오면서 제 개인적인 기준이 많이 성장했는데요. | |
| 지금 성빈랜드에 쓰여진 글은 모두 글 퀄리티가 제 기준에 매우 못 미치기도 하고, 대부분 오래된 내용이라 현재와는 달라진 내용이 많더라구요. | |
| 그리고 글 내용 자체가 너무 어려워서…😂😂 지금 있는 글도 제대로 읽히지 않고 있을 확률이 커요! (읽다가 포기할 가능성 큼) | |
| 이런 것들이 저의 입장에서는 너무 아쉬웠습니다. | |
| 근데 모든 글을 제 기준에 맞게 최신 내용으로 수정하는 건 현실적으로 어려우니 성빈랜드를 닫고, 새롭게 개인 블로그를 시작하려고 합니다. |
Tracking and tracing are terms that are often used interchangeably, but they have distinct meanings and are used in different contexts:
Definition: Tracking refers to the continuous monitoring or following of the progress or movement of an object, person, or process over time.
Contexts and Usage:
| import androidx.compose.runtime.Composable | |
| import androidx.compose.runtime.InternalComposeApi | |
| import androidx.compose.runtime.NonRestartableComposable | |
| import androidx.compose.runtime.RememberObserver | |
| import androidx.compose.runtime.currentComposer | |
| import androidx.compose.runtime.remember | |
| import kotlin.coroutines.CoroutineContext | |
| import kotlinx.coroutines.CancellationException | |
| import kotlinx.coroutines.CoroutineScope | |
| import kotlinx.coroutines.Job |
| @Stable | |
| fun Modifier.dropShadow( | |
| borderRadius: Dp, | |
| spreadRadius: Dp = 3.dp, | |
| blurRadius: Dp = spreadRadius, | |
| color: Color = Color.DarkGray.copy(alpha = 0.1f), | |
| offsetX: Dp = 0.dp, | |
| offsetY: Dp = 0.dp, | |
| ) = | |
| drawBehind { |
| @Stable | |
| fun Modifier.drawHorizontalFadingEdges( | |
| target: Color = Color.White, | |
| width: Dp = 10.dp, | |
| scrollState: ScrollableState, | |
| ) = | |
| if (!scrollState.canScrollForward && !scrollState.canScrollBackward) this | |
| else drawWithCache { | |
| val gradientWidth = width.toPx() |
| /* | |
| * Designed and developed by "옴마야" Team 2023. | |
| * | |
| * Licensed under the MIT. | |
| * Please see full license: https://github.com/mash-up-kr/WeQuiz-Android/blob/main/LICENSE | |
| */ | |
| package team.ommaya.wequiz.android | |
| import android.os.Bundle |
| @file:OptIn(ExperimentalComposeUiApi::class) | |
| @file:Suppress("unused") | |
| @file:NoLiveLiterals | |
| package land.sungbin.androidplayground.extension | |
| import androidx.compose.animation.core.Animatable | |
| import androidx.compose.animation.core.AnimationSpec | |
| import androidx.compose.animation.core.AnimationVector2D | |
| import androidx.compose.animation.core.Spring |
| @file:OptIn( | |
| ExperimentalComposeUiApi::class, | |
| ExperimentalMaterialApi::class | |
| ) | |
| package land.sungbin.androidplayground.snippet.animation | |
| import androidx.compose.foundation.layout.Box | |
| import androidx.compose.foundation.layout.fillMaxSize | |
| import androidx.compose.foundation.layout.navigationBarsPadding |
| /** | |
| * Boolean | |
| * | |
| * The most basic datatype is the simple true/false value, | |
| * which JavaScript and TypeScript (as well as other languages) call a 'boolean' value. | |
| */ | |
| var isDone: boolean = false; | |
| /** | |
| * Number |