728x90
반응형

2025/03 16

LaunchedEffect란?

LaunchedEffect는 Jetpack Compose에서 사용되는 Side Effect API 중 하나로, 특정 키(key) 값이 변경될 때마다 비동기 작업을 실행하는 Composable 함수Composable 내에서 안전하게 코루틴 실행 가능화면이 처음 그려질 때(Composition이 시작될 때) 자동 실행키 값이 변경될 때마다 다시 실행Composable이 사라지면(Composition이 해제되면) 실행 중인 코루틴도 자동 취소됨 기본 문법LaunchedEffect(key1, key2, ...) { // 실행할 비동기 코드 (ex. 네트워크 요청, 데이터 로드, 애니메이션 시작)}key1, key2, ...: key값이 변경될 때마다 LaunchedEffect 내부 코드가 다시 실행Laun..

현 위치 표시하기

5. 위치 정보 연동하기앱의 메인홈화면에 사용될 현 위치 정보를 가져오고 표시하도록 작업을 진행하려고 한다.아래와 같이 단계별로 진행할 예정위치 정보 연동을 위한 권한 설정FusedLocationProvider를 이용한 위치 정joyshu93.tistory.com이전 프로젝트에서는 LocationProvider와, LocationDataStore 클래스를 만들어 사용했었다Compose 프로젝트에 사용할 수 있도록 수정한다LocationProvider.ktpackage com.example.composeweatherappimport .../*** * Activity 의존성 제거 * 권한 요청 방식 변경 */class LocationProvider(private val context: Context, pri..

Jetpack Compose로 앱을 재구성하기위한 검토 단계

1. 간단한 날씨 앱 개발을 위한 설계 - Main Home안드로이드 기능과 기술 스택 정리 언어: KotlinIDE: Android StudioMain Home위치 기반 서비스와 기상청 API를 이용해 현재 위치의 날씨 정보를 표시한다. 1. UI 구성 (예상)기능UI 요소 (예상)추가 요소현joyshu93.tistory.com Compose 실습을 위해 간단히 진행했던 날씨 앱을 활용 UI 구성activity_main.xml, activity_search.xml, item_city_card.xml  XML은 불필요 Compose 함수 기반으로 UI 구성ConstraintLayout, LinearLayout, RelativeLayout >> Column, Row, BoxXML에 정의된 layout_wi..

버튼을 아이콘으로 대체, 문자열 리소스 사용

LazyColumn, LazyRow의 특징 및 사용LazyColumn, LazyRow 특징스크롤 가능한 리스트내부적으로 Cloumn, Row과 비슷, 스크롤 기능이 내장됨별도의 ScrollView 없이 리스트 생성 가능지연(Lazy) 로딩 최적화화면에 보이는 항목만 렌더링 하며, 보joyshu93.tistory.com이 글에는 위 포스팅의 내용이 포함되어 있습니다버튼을 아이콘으로 대체Icon과 함께 IconButton 컴포저블 사용Icons.Filled.ExpandLess와 Icons.Filled.ExpandMore를 사용 material-icons-extended 아티팩트를 종속 추가implementation("androidx.compose.material:material-icons-extended")..

목록에 애니메이션 적용

LazyColumn, LazyRow의 특징 및 사용LazyColumn, LazyRow 특징스크롤 가능한 리스트내부적으로 Cloumn, Row과 비슷, 스크롤 기능이 내장됨별도의 ScrollView 없이 리스트 생성 가능지연(Lazy) 로딩 최적화화면에 보이는 항목만 렌더링 하며, 보joyshu93.tistory.com지난번에 만든 목록에 UI 애니메이션을 추가하려고 한다  animateDpAsStateanimateDpAsState 컴포저블은 애니메이션이 완료될 때까지 애니메이션에 의해 객체의 value가 계속 업데이트되는 상태 객체를 반환한다 적용 코드@Composablefun Greeting(name: String, modifier: Modifier = Modifier, names: List = lis..

기기 회전과 상태 유지

화면 회전 시 상태 손실기기에서 앱을 실행하고 회전하면 온보딩 화면이 다시 표시된다remember 함수는 컴포저블이 컴포지션에 유지되는 동안에만 작동한다기기를 회전하면 전체 활동이 다시 시작되므로 모든 상태가 손실된다이 현상은 구성이 변경되거나 프로세스가 중단될 때도 발생한다 해결 방법remember를 사용하는 대신 rememberSaveable을 사용rememberSaveable  함수는 구성 변경과 프로세스 중단에도 각 상태를 저장한다 import androidx.compose.runtime.saveable.rememberSaveable ... var shouldShowOnboarding by rememberSaveable { mutableStateOf(true) }

728x90
반응형