일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- compose
- 리스트
- jetpack
- android
- 자바리스트정렬
- nullpointerexception방지
- 파이썬문법
- Hilt
- Java
- 자료형
- 백준파이썬
- Provider
- 오블완
- ContentProvider
- 파이썬
- 티스토리챌린지
- composelifecycle
- 백준
- 배열
- filternotnull()
- 자바
- Dependency
- Kotlin
- 자바set
- Python
- 문자열
- programmers
- disposableeffect
- list
- 프로그래머스
Archives
- Today
- Total
study gomi
[Android/Kotlin] suspend fun, let vs apply 본문
728x90
반응형
1. suspend 함수
- 정의: suspend 함수는 비동기적으로 실행될 수 있는 함수다. 이 함수는 중단하고 나중에 다시 시작할 수 있어.
- 사용 이유: 긴 작업(예: 네트워크 요청)을 할 때 UI가 멈추지 않도록 하려고. 사용자가 앱을 계속 사용할 수 있도록 해준다.
예를 들어 API에서 데이터를 받아오는 함수를 suspend로 만들면 호출하는 동안 UI가 블로킹되지 않고 계속 작동함.
2. let vs apply
이 두 가지는 객체를 다룰 때 사용하는 함수들이다.
let
- 주요 특징: 주어진 객체를 안전하게 사용.
- 사용 예: null이 아닐 때만 작업을 수행하고 싶을 때 사용.
mService?.let { service ->
// service를 사용할 수 있음
service.setKorTime()
}
위의 코드는 mService가 null이 아닐 때만 service라는 이름으로 사용할 수 있도록 해줘서 null 안전성을 보장함.
apply
- 주요 특징: 객체의 속성을 수정하고, 그 객체를 반환함.
- 사용 예: 여러 속성을 설정하고 싶을 때 유용.
mService?.apply {
// 이 블록 안에서 'this'는 mService 가리킴
setHairColor(Color.Pink)
setMakeUp(MakeUpType.Type1)
}
위의 코드는 mService의 여러 속성을 쉽게 설정할 수 있도록 해준다.
this를 사용해서 현재 객체에 접근하는데 여러 메서드를 호출할 때 더 깔끔하게 작성할 수 있음.
요약
- suspend: 비동기 작업을 가능하게 해서 긴 작업을 수행할 때 UI가 멈추지 않도록 함.
- let: 안전하게 객체를 사용할 수 있더. null이 아닐 때만 작업을 수행.
- apply: 객체를 수정하는 데 유용. 여러 속성을 한 번에 설정 가능.
728x90
반응형
'App > Android' 카테고리의 다른 글
[Android/Kotlin] text를 표시하는 floating button (jetpack compose) + button 아래에 하얀색 공백이 보이는 문제 (0) | 2024.10.23 |
---|---|
[Android/Kotlin] expandable + moveable/draggable Floating button (jetpack compose) (3) | 2024.10.23 |
[Android] 뒤로가기 막기 (stop + preventing backspace) kotlin (1) | 2024.10.18 |
[Compose] longclick + longclick 안 될 때 (0) | 2024.10.14 |
[Compose] 연속 클릭 동작 composable (1) | 2024.10.14 |