compose 4

[Android/Kotlin] Jetpack Compose 로 무한 롤링 배너(a.k.a Infinite loop/Infinite scroll) 를 쉽게 만들어보자

1. 들어가며 회사에서 Compose 마이그레이션을 반년째 진행중이다. (오래걸리는 이유는 시간을 잡고 한번에 바꾸는 게 아니라, 매 스프린트 마다 새로 들어가는 UI 를 컴포즈로 만들거나, 새로 들어가는 기능을 담은 화면을 리빌딩하는 방식을 채택했기 때문이다.) 최근에 홈화면을 개편하고 많은 앱에 들어가는 무한롤링 배너도 컴포즈로 갈아끼우는 작업을 하였다. 그리고 컴포즈로 구현하는 것의 장점을 또 한번 느꼈고, 많은 앱에 들어가는 기능이기도 하니 구현한 내용을 행복했던 감정과 함께 글로 정리하려고 한다. 각설하고 바로 구현만 보고싶으시다면 4번부터 보면 된다. *참고로 필자가 진행하는 컴포즈 버전은 1.4.2 이다. 아마 예에전 버전을 사용하시거나 accompanist 의 컴포넌트를 사용한다면 구현 내..

카테고리 없음 2023.05.28

[Android/Compose] 헷갈려서 딱 정리하는 Compose 정렬(Alignment)과 배치(Arrangement)

들어가며 필자는 최근에 사이드 프로젝트에 Compose 를 사용해보았는데 헷갈리는 것들이 많았습니다. Compose 공식문서에 왼쪽 카테고리에 있는 모든 글을 읽고 코딩을 시작해서 헷갈리면 금방금방 찾아갈 수는 있었지만 그조차 시간이 아까운 경우가 있습니다. 그 시간 아깝게 헷갈리는 것들 중 하나가 바로 방향에 따른 Alignment 와 Arrangement 입니다. xml 에서의 gravity, layout_gravity 의 개념으로 접근했다가 더욱 헷갈렸던 기억이있어 잠깐 내려놓아야할 거 같습니다. Alignment(정렬) 컨테이너의 수직 방향 정렬방식 일반적으로, 상위 컨테이너 내부에서 컴포저블을 정렬하기 위해 상위 컨테이너의 alignment 를 설정. 그렇다면 컨테이너의 모든 하위 요소가 동일한..

Android 2023.01.06

[Android/Compose] Composable 에서 Runtime permission 요청하기

최근에 처음으로 Notification 런타임 권한요청을 할 일이 생겨서 정리하는 시간을 가져보았다. (링크 첨부) 사이드 프로젝트는Jetpack Compose 100% 로 진행하고 있는데 Composable 함수에선 어떻게 런타임 권한요청을 할지 궁금해졌다. 직접 만들어 쓸 수도 있겠지만 권한처럼 필수적인 기능은 공식에 가까운 라이브러리가 있을 것 같았다. 찾아본 결과 google 레포의 accompanist 에 Permission 섹션이 있었다. 간단한 사용법과 구현 코드 그리고 주의점에 대해 알아보자. 사용방법 간단하게 정리 먼저 아래와 같이 권한을 추가해준다. 버전은 현재 프로젝트의 Compose 버전을 확인하여 리드미에 나와있는대로 accompanist 라이브러리의 버전을 설정한다. implem..

[Android/Kotlin] Jetpack Compose, Navigation component, BottomNavigation 사용하여 화면이동 세팅

사용하게된 계기 첫 회사 입사 후 일을 배우는 것에만 집중하다가, 더 많은 성창을 위해 사이드 프로젝트를 시작했다. 내 사이드 프로젝트의 목표는 기술 경험이 중점이었다. 그래서 회사에서 아직 활발하게 쓰지않는 새로운 기술스택을 사용하기로 했고, UI 툴킷으로 Jetpack Compose 는 내 사이드 프로젝트에서 필수 기술이 되었다. 초반에 컴포즈 공부하고 프로젝트 초반 세팅을 하던 와중에 네비게이션 가능인가? 였는데 역시나였다. 그렇게 Navigation - compose 를 사용하게 되었다. 단순 사용법 단순 사용법은 링크를 확인하는 게 좋을 것 같다. 아래 부터는 바텀 네이게이션을 통합하면서 했던 고민과, Destination 관리, 경로 관련 주의 점을 말하려고 한다. 공식문서 - Compose를..