Navigation은 애플리케이션 내에서 화면 간 이동을 쉽게 관리할 수 있는 라이브러리이다. 네비게이션 그래프를 사용하여 화면 전환, 매개변수 전달 등을 손쉽게 관리할 수 있다. 네비게이션은 기본적으로 Jetpack Compose 기반의 네비게이션과 xml기반의 네비게이션 두 가지가 있다. 1. Jetpack Compose NavigationCompose 기반의 네비게이션을 살펴보자 CODEimport android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.* import androidx.compo..
1. ScaffoldScaffold는 Jetpack Compose에서 머티리얼 디자인의 기본 레이아웃 구조를 제공하는 컴포저블 함수이다. Scaffold를 사용하면 상단바(TopBar), 하단바(BottomBar), 플로팅 액션 버튼(FloatingActionButton), 스낵바(Snackbar) 등을 쉽게 배치할 수 있다. Scaffold 함수 주요 파라미터:topBar: 상단바를 정의하는 컴포저블bottomBar: 하단바를 정의하는 컴포저블floatingActionButton: 플로팅 액션 버튼을 정의하는 컴포저블snackbarHost: 스낵바를 호스트하는 컴포저블content: Scaffold의 주요 콘텐츠를 정의하는 컴포저블 CODEimport android.os.Bundle import and..
1. LazyColumnLazyColumn은 Jetpack Compose에서 큰 데이터 목록을 효율적으로 표시할 수 있게 해주는 컴포저블이다. 즉 흔히 사용하던 RecyclerView와 같이 재사용이 가능한 Composable 함수인 것이다. 눈에 보이는 항목만 구성하고 배치하여 Column보다 성능이 뛰어나다. Composable 함수: LazyColumn은 컴포저블 함수이므로 @Composable 범위 내에서 사용된다.항목: items, item, itemsIndexed와 같은 함수를 사용하여 LazyColumn에 표시할 항목 목록을 지정할 수 있다.지연 로딩: 화면에 보이는 항목만 구성되어 성능이 향상된다.(재사용성) CODEimport android.os.Bundle androidx.activit..
Synchronize와 AtomicBoolean은 Java에서 멀티스레딩 프로그래밍에서 자주 사용된다. 각각의 용도와 사용방법을 알아보도록 하자. 1. Synchronizesynchronize 키워드는 특정 블록이나 메서드에 대해 스레드가 동시에 접근하지 못하도록 동기화한다. 이는 주로 임계 영역(critical section)을 보호하는 데 사용된다. synchronized 키워드를 사용하면 한 번에 하나의 스레드만 해당 블록을 실행할 수 있다. (1) SynchronizedExample.javapublic class SynchronizedExample { private int count = 0; public synchronized void increment() { count++; } public in..
1. 행사시간09:30 ~ 17:20 (점심시간 12:35 ~ 13:55) 2. 행사 목차(1) Compose 성능 최적화를 위한 Stability 마스터하기 - 엄재웅(2) 앱 성능 영혼까지 끌어올리기 - 배필주(3) Compose UI 컴포넌트 설계와 테스트 - 김수현(4) compose-video 오픈소스 라이브러리 개발기 (배포까지) - 이상훈(5) 플레이어 SDK 개발자의 Kotlin Multiplatform 도입기 - 모진섭(6) Compose Material3 커스텀 디자인 시스템 구축기 - 권대원 3. 내용 전날부터 어떤 사람이 있을지 궁금한 나머지 들뜬 마음으로 잠을 잘 이루지 못하고 갔다. 조금 피곤하긴 했지만 역시나 많은 사람이 모여 있었다. 줄을 오래기다릴까봐 40분정도 일찍 도착했..