Flow는 코루틴을 기반으로 빌드되며 비동기로 계산되는 데이터 스트림이다. 데이터베이스에서 실시간 업데이트를 수신할 수 있다.리액티브 프로그래밍이란 데이터가 변경될 때 이벤트를 발생시켜 데이터를 계속해서 전달하도록 하는 프로그래밍 방식이다. 리액티브 프로그래밍에는 하나
비동기 프로그래밍을 하기 위해 코틀린에서 지원하는 라이브러리. 단일 스레드에서 많은 작업이 가능하여 메모리를 절약하고 스레드를 더 잘게 쪼개 사용하기 위한 개념이다.코루틴은 작업 하나하나에 Thread 를 할당하는 것이 아닌 'Object' 를 할당해주고, 이 Obje
Thread : 동시 작업을 위한 하나의 실행 단위Handler : Thread 간의 통신을 하기 위한 클래스안드로이드의 UI는 Main Thread 라는 하나의 스레드에서 동작한다.메인 스레드에서 네트워크나 DB 작업 등 무거운 작업을 하게되면 작업이 완료되기 전까지
앱 축소와 난독화를 위해 shrinkResources true 와 minifyEnabled true 를 추가한다.app.gradle이대로 앱을 release 모드에서 테스트 할 경우 몇 라이브러리에서 난독화로 인한 충돌이 생긴다.때문에 해당 라이브러리에 대한 예외처리를
appCompat 최신 버전에서 onActivityResult 가 deprecate 되어Compose 에서 rememberLauncherForActivityResult() 라는 메소드를 사용하게 되었다.Compose 에서 rememberLauncherForActivit
MaterialDatePicker 의 setCalendarConstraints() 메소드CalendarConstraints 의 setValidator() 메소드를 사용한다.DateValidatorPointBackwardDateValidatorPointForward달력의
implementation("com.google.accompanist:accompanist-coil:0.15.0")rememberImagePainter()
Implement Library implementation "com.google.accompanist:accompanist-pager:0.12.0" Tab Layout + View Pager SpaceBetween 잠깐 팁. Row()에서 horizontalArra
메모리에 로컬 상태를 저장한다mutableStateOf() 에 전달된 값이 업데이트 될 때마다 이 state를 사용하는 컴포저블과 하위 요소는 재구성(recomposition) 한다.장문의 텍스트를 ellipsis로 숨겼다가 보여주는 토글 버튼 만들기.boolean 값
composable() 메소드로 시작 경로와 라우트를 정의한다.'slug' 라는 string 타입의 argument 를 사용하여 HomeDetail로 이동하는 예제BottomBar() 의 네비게이션과 상세 화면으로 이동하기 위한 예제.네비게이션 규모가 커질수록 NavG
build.gradle\[app] 에 runtime-livedata 추가observableAsState() 로 state 를 관찰하여 가져온다.
Jetpack Compose ui.theme 패키지에서 컬러와 쉐입, 타이포그라피를 정의해놓고 쓸 수 있다.isSystemDarkTheme() 이라는 boolean 값으로 dark theme을 판별하여 테마를 적용 할 수 있다.MaterialTheme.(colors,