본문 바로가기

compose6

[Android] SnackBar 디자인시스템 구현기 (Material 뜯어보기) 지난 포스팅에 있었던 BottomSheet에 이어, SnackBar도 디자인시스템을 구현하면서 공부했던 것을 기록하고자 한다.스낵바도 바텀시트와 동일하게 컴포즈로 작성이 되어 있으며 Material3 라이브러리를 사용하지 않는다. 사실 스낵바 관련 포스팅은 여러 번 올렸었다.📍스와이프 이벤트 처리: https://comyou.tistory.com/130📍LineBreak 속성: https://comyou.tistory.com/131📍단어 단위 개행: https://comyou.tistory.com/136  그래서 이번 글에서는 Material 속성에 기반한 구현방식에 집중해서 작성할 것이다. SnackBarHostStateSnackBarHostState는 스낵바의 상태를 관리하는 클래스이다.Mate.. 2025. 1. 30.
[Android] BottomSheet 디자인시스템 구현기 (Material 뜯어보기) BottomSheet를 디자인시스템으로 구현하면서 Material의 동작 방식을 공부했던 것에 대해 기록하고자 한다.해당 디자인시스템은 컴포즈로 작성이 되어 있으며 Material3 라이브러리를 사용하지 않는다. BottomSheetType우선, Maeterial과는 상관 없는 바텀시트의 디자인이다. 내가 만드려는 디자인시스템의 바텀시트 타입은 두 가지였다. 버튼이 한 개 있는 OneButton 타입버튼이 두 개 있는 TwoButton 타입 각 타입에 대한 각 버튼의 텍스트를 무조건 작성해 줘야 되기 때문에 Sealed Class로 묶어 작성했다.sealed class BottomSheetType { data class OneButton( val buttonText: String .. 2025. 1. 29.
[Android] Compose Compiler Metrics로 성능 측정하기 RecompositionJetpack Compose로 안드로이드를 개발하다보면 Recomposition을 경험하게 된다.Recomposition이란, 상태가 변경될 때마다 Composable을 다시 그리는 현상을 의미한다. 만약 컴포즈가 stable한 상태가 아니라면 컴포즈는 불필요한 Recomposition을 자주 발생시킨다.이를 방지하고자 나는 현재 상태가 stable인지 혹은 unstable인지 알 수 있는 방법을 찾아보았다.그러다 Compose Compiler Metrics를 알게 되어 이에 대해 설명해보고자 한다.Compose Compiler Metrics컴포즈 컴파일러는 composable 함수를 컴파일할 때 function(함수)과 type(타입)에 대해 몇몇 태그를 작성한다.이 태그를 통해.. 2024. 12. 27.
[Android] 단어 단위의 개행하기 (Compose) 지난번 나는 Jetpack Compose로 단어 단위의 개행을 하기 위해 LineBreak 속성에 대해 알아보았었다.정리한 내용: https://comyou.tistory.com/131 [Android] LineBreak 속성 알아보기Compose의 Text에 있는 LineBreak 속성에 대해 알아보자! Text( text = "터닝에서 내 계획에 딱 맞는 대학생 인턴 찾기를 도와드릴게요", style = TerningTheme.typography.title1, modifier = Modifier .padding(bottom = 36.dp) .bacomyou.tistory.com 그러나, LineBreak의 경우, 한국어는 제대로 반영이 되지 않았다.LineBreak의 Simple, Paragraph .. 2024. 11. 22.
[Android] LineBreak 속성 알아보기 Jetpack Compose의 Text에 있는 LineBreak 속성에 대해 알아보자! Text( text = "터닝에서 내 계획에 딱 맞는 대학생 인턴 찾기를 도와드릴게요", style = TerningTheme.typography.title1, modifier = Modifier .padding(bottom = 36.dp) .background(Color.LightGray),) 위처럼 작성 시 나오는 기본 화면은 아래와 같다. 기본적으로 텍스트가 한 글자씩 잘려 줄바꿈 되는 것을 볼 수 있다. 하지만 나는 내가 원하는대로 개행을 하고 싶었고, 이를 위해 Text의 속성 중 하나인 LineBreak에 대해 알아보았다.LineBreak와 관련된 공식문서도 같이 첨.. 2024. 11. 8.
[Android] 스와이프 이벤트 AnchoredDraggable로 처리하기 (Compose) 디자인 시스템을 개발하던 중, 내가 구현한 스와이프 기능에 대해 소개해보고자 한다.AnchoredDraggable스와이프 기능이 들어가는 컴포넌트는 스낵바이다.화면에 띄워진 스낵바를 아래로 스와이프 했을 때 사라지도록 해야 하는 것이다. 처음에 나는 Modifier에서 제공하는 swipeable 속성을 사용하고 싶었다.하지만 이는 Deprecated 되었다고 한다ㅜㅜ그래서 찾아보니, swipeable을 대신해줄 AnchoredDraggable라는 속성이 있어서 이를 활용해주고자 했다.  아래는 AnchoredDraggable에 대해 설명하는 공식문서 링크이다!https://developer.android.com/develop/ui/compose/touch-input/pointer-input/migrate.. 2024. 10. 31.