깨알 개념 121

[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를 꾸민다. ..

[Android] Jetpack Compose - Surface

#1 개요 androidx.compose.material3  |  Android Developersandroidx.compose.desktop.ui.tooling.previewdeveloper.android.comSurface는 Composable들의 컨테이너로, Composable의 집합을 시각적으로 표현하기 쉽게 도와준다. #2 구조@Composable@ComposableInferredTargetpublic fun Surface( modifier: Modifier, // Surface에 적용될 Modifier shape: Shape, // Surface의 모양 정의 color: Color, // 배경색 contentColor: Color, // Surface 속 Composabl..

[Android] Jetpack Compose - 기초

#1 Jetpack Compose#1-1 개요 Jetpack Compose UI 앱 개발 도구 키트 - Android 개발자  |  Android Developers앱 작성 속도를 높이는 데 도움이 되는 Android의 UI 앱 개발 도구 키트와 리소스인 Jetpack Compose를 살펴보세요.developer.android.com전통적인 방식을 사용하는 기존의 안드로이드 프로젝트에서 UI 구현 방법은 명령적 프로그래밍이었다. XML 레이아웃과 해당 레이아웃을 참조하는 Java 및 Kotlin 코드로 분리되어 있다. 이 때, 새롭게 출범한 Jetpack Compose는 선언적 프로그래밍으로, XML 파일 없이 모든 UI를 Kotlin 코드로 작성한다 (UI와 로직의 통합).Jetpack Compose가..

[Android] Dagger2 - Hilt로 마이그레이션

#1 Hilt 개요 Hilt를 사용한 종속 항목 삽입  |  Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. Hilt를 사용한 종속 항목 삽입 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Hilt는 프로젝트에서 종속developer.android.comHilt는 Dagger2의 복잡한 부분을 더 쉽고 효율적으로 사용할 수 있게 만들어주는 추상화 계층이다. 그런 면에서 Dagger2 - Hilt 관계는 SQLite - Room의 관계와도 같다. Hilt을 사용하면 Dagger2를 생으로 사용하는 것보다 세세한 설정은 불가능하다. 하지만, 상용구 코드를 많이 줄여준다. 말 그대로 추상화 계층이니 말이다. #2 Hil..

[Android] Data Binding - View Binding

#1 View Binding#1-1 개요 뷰 결합  |  Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 뷰 결합은 뷰와 상호작용하는 코드를 더 쉽게 작성할developer.android.com뷰 바인딩은 데이터 바인딩의 부분집합으로, XML에서 @{ ... } 및 @={ ... }가 없는 데이터 바인딩이라고 보면 된다. 즉, View Binding은 findViewById의 암시적 선언만을 수행하는 작업이다. #1-2 View Binding의 장점 1. 프로젝트 컴파일 시간이 짧음 2. xml 코드를 태그로 감쌀 필요가 없음 (= Binding할 View(XML 코..