2024/07 19

[Kotlin] Coroutines - 한 Scope 내에서의 계층 관계

#1 이전 글 [Kotlin] Coroutines - Coroutine builder#1 Coroutine builder kotlinx-coroutines-coreCore primitives to work with coroutines. Coroutine builder functions: Coroutine dispatchers implementing CoroutineDispatcher: More context elements: Synchronization primitives for coroutines: Top-level suspendinkenel.tistory.com위 게시글의 CoroutineScope의 생략에 대해 다룬 #6-4에서 이어지는 글이다. 이전 글에선 CoroutineScope을 생략하는 게..

[Android] Jetpack Compose - ViewModel에서 State 사용하기

#1 개요Jetpack Compose에서 ViewModel을 사용해본다. Jetpack Compose를 사용하지 않는 전통적인 방식에서의 ViewModel과 크게 다를 게 없다. Jetpack Compose에 ViewModel을 구현함으로써 State Hoisting 패턴을 극대화시키는 효과도 확인해본다. #2 코드#2-1 MainActivity.kt...class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { Box( modifi..

[Android] Jetpack Compose - State Hoisting

#1 개요 상태를 호이스팅할 대상 위치  |  Jetpack Compose  |  Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 상태를 호이스팅할 대상 위치 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Compose 애플리케이션에서developer.android.comState Hoisting(상태 호이스팅) 패턴을 적용해 코드의 잠재적 유지보수성을 높혀본다. #2 코드#2-1 State Hoisting 패턴이 적용되지 않은 코드...class MainActivity : ComponentActivity() {    override fun onCreate(savedInstanceState: Bundle?) {  ..

[Android] Jetpack Compose - State Remembering

#1 개요 상태 및 Jetpack Compose  |  Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 상태 및 Jetpack Compose 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 앱의 상태는 시간이 지남에 따라developer.android.comState가 가지는 위치 제약 그리고 해당 제약을 해소하는 방법에 대해 살펴본다. #2 코드#2-1 에러가 발생하는 코드 (State object의 위치 제약)@Composablefun ButtonExample(modifierParam: Modifier = Modifier) {    val count = mutableStateOf(0)    Button(     ..

[Kotlin] 위임 프로퍼티 (Delegated properties)

#1 Delegated properties#1-1 개요 Delegated properties | Kotlin kotlinlang.org위임 프로퍼티는, getter와 setter 로직을 다른 클래스에 위임(delegate)하는 코틀린 프로퍼티를 의미한다. 본 게시글에서는 위임 프로퍼티의 기제에 대해 탐구하고 또 위임 프로퍼티를 간단히 구현해본다. #1-2 위임(delegate)의 의미 [Kotlin] 프로퍼티(Property)#1 필드와 프로퍼티 #1-1 프로퍼티의 개념 // Java String name = "steve"; // Field System.out.println("my name is" + name); name = "kevin"; --- // Kotlin var name : String = "..

[Android] Jetpack Compose - State 기초

#1 개요 상태 및 Jetpack Compose  |  Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 상태 및 Jetpack Compose 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 앱의 상태는 시간이 지남에 따라developer.android.comJetpack Compose의 State 개념에 대해 살펴본다. #2 일반적인 개념으로서의 State먼저, State라는 용어 자체에 대한 이해가 필요하다. Jetpack Compose에서 쓰이는 State가 아니라 일반적인 개념으로서의 State 말이다. 상태라는 말로 번역되는 State는 말 그대로 상태, 즉 시간이 흐름에 따라 변할 가능성이 있는 값으로 다름..

[Android] Jetpack Compose - Lazy Column

#1 Lazy Column#1-1 개요 목록 및 그리드  |  Jetpack Compose  |  Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 목록 및 그리드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 많은 앱에서 항목의 컬렉션을 표시해developer.android.comLazy lists는 Jetpack Compose 버전에서의 RecyclerView다. Lazy lists는 가로로 아이템이 정렬되는 Lazy Row와 세로로 아이템이 정렬되는 Lazy Column이 있는데, 주로 후자가 쓰인다. 본 게시글에서 Lazy Column을 구현해본다. #1-2 구조LazyColumn { // Add a s..

[Android] Jetpack Compose - Button

#1 개요 Jetpack Compose  |  Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Button 버튼은 사용자가 정의된 버튼을 트리거하도록 하developer.android.comJetpack Compose에서 기본으로 제공되는 Composable 중 하나인 Button에 대해 살펴본다. #2 코드#2-1 Filled Button@Composablefun FilledButtonExample(textParam: String, modifierParam: Modifier = Modifier) { val context = LocalContext.current ..

[Android] Jetpack Compose - Layout, Arrangement, Alignment

#1 Layout#1-1 개요 Compose 레이아웃 기본사항  |  Jetpack Compose  |  Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. Compose 레이아웃 기본사항 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Jetpack Compose를 사용하면 앱의developer.android.com기본 XML 방식에서 사용했던 LinearLayout과 같은 Layout은 Jetpack Compose에서도 Composable의 형태로 존재한다. 이 Layout에 대해서 살펴본다. #1-2 종류Jetpack Compose의 기본 Layout은 Column, Row, Box로 구성된다. Column은 an..

[Android] Jetpack Compose - Modifier

#1 Modifier#1-1 개요 Modifier  |  Android Developersandroidx.compose.desktop.ui.tooling.previewdeveloper.android.comJetpack Compose를 사용하지 않는 전통적인 방식의 안드로이드 프로젝트에서 우리는 XML 속성과 값을 사용하여 텍스트의 너비, 높이, 표시할 텍스트, 크기, 스타일 및 색상, 배경 색상 및 패딩을 지정했다. 이와 같은 UI 꾸밈 요소를 Jetpack Compose에서는 Modifier라는 클래스가 담당한다. Composable 함수들은 매개변수로 modifier: Modifier = Modifier를 가지고 있는데, 이 Modifier를 함수 외부에서 인수로서 전달하는 방식으로 UI를 꾸민다. ..