깨알 개념/Android 73

[Android] Jetpack Compose - Navigation의 Destination 간 데이터 전달 (NavBackStackEntry.arguments)

#1 이전 글 [Android] Jetpack Compose - Navigation 기초#1 개요#1-1 전통적인 안드로이드 프로젝트에서의 Navigation [Android] Navigation - 기초#1 이전 글 [Android] Navigation - 환경 설정 #1 Navigation#1-1 액티비티 및 프래그먼트 구성의 트렌드요즘 안드로이드 개발kenel.tistory.com본 게시글에선 위 게시글의 완성된 앱을 일부 수정하여, Destination끼리 서로 데이터를 전달하게 만들어본다. 이를 위해서 먼저 NavBackStackEntry에 대해 알아야 한다. 이름에서 보듯, NavBackStackEntry은 백 스택을 관리하는 객체다. 따라서, Back Stack(백 스택)이 뭔지 알아야 Na..

[Android] Jetpack Compose - Navigation 기초

#1 개요#1-1 전통적인 안드로이드 프로젝트에서의 Navigation [Android] Navigation - 기초#1 이전 글 [Android] Navigation - 환경 설정 #1 Navigation#1-1 액티비티 및 프래그먼트 구성의 트렌드요즘 안드로이드 개발의 트렌드는 하나의 액티비티, 여러 개의 프래그먼트다. 이는 구글의 권장사항kenel.tistory.com위 게시글은 Jetpack Compose가 쓰이지 않은 전통적인 구조의 안드로이드 프로젝트에서의 Navigation에 대해 다룬 게시글이다. #1-2 Jetpack Compose 구조의 안드로이드 프로젝트에서의 Navigation Compose를 사용한 탐색  |  Jetpack Compose  |  Android Developers이..

[Android] Jetpack Compose - 객체 지향적 UI 레이어 설계

#1 개요 UI 레이어 | Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. UI 레이어 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. UI의 역할은 화면에 애플리케이션 데이터를 developer.android.com안드로이드 UI 설계에 대한 공식 가이드에 기반해, 샘플 Jetpack Compose 앱을 만들어본다. #2 앱 미리보기#2-1 작동 화면국가, 대륙 별로 다른 신발 사이즈를 상호 변환할 수 있는 간단한 앱이다. 4개의 TextField 중 아무 TextField에 값이 입력되면 "변환" 버튼이 활성화되어 클릭이 가능해진다. 4개의 TextField 중 오직 하나에만 값 입력이 가능하기에, 예를 들어 한..

[Android] Jetpack Compose - Side-effects

#1 개요 Compose의 부수 효과  |  Jetpack Compose  |  Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. Compose의 부수 효과 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 부수 효과는 구성 가능한 함수의 범developer.android.comJetpack Compose는 굉장히 선언적이기 때문에, 세심하고 복잡한 동작 구현이 쉽지 않다. Side-effects는 그 구현을 쉽게 만들어준다. Side effects를 번역하면, '부작용'이라는 말이 되는데, 이 사실은 마치 Side effects가 에러 및 그 처리와 관련되어있다는 늬앙스를 연상케한다. 하지만 Jetpack Compos..

[Android] Jetpack Compose - Scaffold

#1 개요#1-1 Scaffold의 사전적 의미Scaffold는 비계((건설) 높은 곳에서 공사를 할 수 있도록 임시로 설치한 가설물)라는 단어로 번역된다. #1-2 Scaffold in Jetpack Compose Jetpack Compose  |  Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Scaffold 머티리얼 디자인에서 스캐폴드는 스캐폴드로developer.android.comJetpack Compose에도 Scaffold라는 이름의 객체가 존재한다. 이 Scaffold에 대해 누군가 무엇을 위한 가설물이냐고 묻는다면, 바로 다양한 UI 요소를 위한 가설..

[Android] LiveData - Flow로 마이그레이션

#1 이전 글 [Kotlin] Coroutines Flow - StateFlow#1 개요 StateFlowA SharedFlow that represents a read-only state with a single updatable data value that emits updates to the value to its collectors. A state flow is a hot flow because its active instance exists independently of the presence of collectokenel.tistory.comStateFlow에 대해 다룬 이전 글에서 이어진다. LiveData가 쓰인 XML 기반 View 프로젝트를 수정해, LiveData를 StateFlow로..

[Android] Jetpack Compose - StateFlow와 SharedFlow

#1 이전 글 [Kotlin] Coroutines Flow - StateFlow#1 개요 StateFlowA SharedFlow that represents a read-only state with a single updatable data value that emits updates to the value to its collectors. A state flow is a hot flow because its active instance exists independently of the presence of collectokenel.tistory.comStateFlow에 대해 다룬 이전 글에서 이어진다. State가 쓰인 Jetpack Compose 프로젝트를 수정해, State 대신 StateFlow를..

[Android] Coroutines Flow - Jetpack Compose에서 사용하기

#1 개요 [Kotlin] Coroutines Flow - 기초#1 Coroutines Flow#1-1 개요 FlowFlow An asynchronous data stream that sequentially emits values and completes normally or with an exception. Intermediate operators on the flow such as map, filter, take, zip, etc are functions that are applied to the upstkenel.tistory.com위에서 다룬 Coroutines Flow를 Jetpack Compose에 적용시켜본다. 여기서 말하는 '적용'이란, 단순한 사용이 아니라 Flow 객체를 State로서 ..

[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?) {  ..