Android/AAC(11)
-
Navigation
- 구성요소 Navigation Graph : navigation 정보를 담은 xml 파일 NavHost : Navigation Graph의 목적지를 보일 빈 컨테이너 NavController : NavHost 안에서 navigation을 관리 - Navigation Graph 설계 1. Destination 추가 1-1. Fragment 1-2. DialogFragment ... ... 1-3. Activity : 기본적으로 Navigation Graph는 ActivityScope에서 유효하므로, Activity Destination 추가는 현재 그래프의 endpoint로 사용됨 - startActivity()와 같은 맥락 - 암시적 Intent와 같은 맥락 : 찾지 못한 경우, ActivityNotF..
2022.04.19 -
Kotlin Flow
flow : coroutine에서 여러 데이터를 순차적으로 내보낼 수 있는 데이터 스트림(지속적으로 데이터를 발행) 형식 * suspend function은 하나의 데이터만 반환 가능 cold : collect() 호출 없이는 데이터 방출하지 않음 cancellation : 자체 취소는 불가능하지만, coroutine을 취소하면 자동으로 됨 구성요소 Producer : 데이터를 생산해 stream에 추가 비동기적 실행 가능 해당 포지션은 UI에서도 가능함(ex> user input events) Intermediary : 데이터 혹은 stream 자체를 가공 Consumer : stream의 데이터를 소비 Producer - Flow builder flow{} : emit()을 호출하여 수동적으로 flo..
2022.03.25 -
Kotlin Coroutine
coroutine : 동시성 설계 패턴 coroutine 특징 경량화 : 하나의 스레드에서 쪼개서 실행이 되므로 가볍다 memory leak 최소화 : scope 내에서 구조화된 동시성을 제공한다 내장된 cancellation 지원 : scope이 사라지면 자동으로 취소된다 Jetpack 통합 : 다수의 Jetpack 라이브러리에서 코루틴을 지원한다 coroutine scope : 코루틴 실행 범위 GlobalScope : 프로그램 전반에 걸쳐 백그라운드에서 동작하는 기본 정의 코루틴 스콥 coroutine context : 코루틴을 어떻게 처리할지에 대한 정보의 집합으로, 주요 요소는 Dispatcher와 Job이 있음 Dispatchers.IO : 네트워크 처리, db, 파일 처리 등에 최적화된 백그..
2022.03.24 -
Compose의 State
- remember : 메모리에 composable의 상태를 저장할 수 있게 해주는 composable val mutableState = remember { mutableStateOf(default) } var value by remember { mutableStateOf(default) } val (value, setValue) = remember { mutableStateOf(default) } - rememberSaveable : 자동적으로 bundle() 형태의 저장을 통해 configuration change에 대응할 수 있는 composable cf> bundle() 형태로 저장될 수 없는 객체 저장 방법 Parcelize MapSaver ListSaver - 지원하는 observable ty..
2022.03.03 -
Compose 감잡기
- Material component composable : Compose built-in으로 기본 제공하는 composable -> 결국 우리가 만드는 custom composable은 이것을 이용하는 것 https://developer.android.com/reference/kotlin/androidx/compose/material/package-summary?hl=ko#components androidx.compose.material | Android Developers androidx.car.app.managers developer.android.com - 필수로 알아두면 좋은 Material component composable 1. MaterialTheme : App의 Theme을 설정할 수 ..
2022.02.24 -
Jetpack - Compose
- Compose : 선언형 UI 툴킷으로, 처음부터 화면 전체를 개념적으로 재생성한 후 필요한 변경사항만 적용하는 방식으로 작동 - Compose 특징 @Composable 주석을 이용하여 Compose Compiler에게 UI로 반환되는 요소임을 알림 함수의 파라미터로 필요한 data를 받을 수 있음 => 동적인 처리가 가능(not xml, written in kotlin) 함수 내부에서 다른 Compose 함수를 불러 UI 계층화를 이룸 반환값이 없음 빠르고, 부수효과가 없이 멱등적(input이 같으면 output도 동일) => 즉, random() 혹은 global 변수 변경 작업 등을 포함하지 않아야 함 React와 유사한 UI 패러다임으로 계층 구조를 따라 data는 아래 방향을 따라 even..
2021.10.28