반응형 이미지? 완성 이미지 예시 유튜브를 보다가 아래 영상을 보게 되었다. 해당 영상에서는 사용자가 클릭함에 따라 이미지가 기울어져 반응형 이미지를 만드는 법을 보여준다. https://youtu.be/YDCCauu4lIk?si=LiDetcR1AwOzSk-i 해당 영상에서 나오는 코드는 html로 설명되어 있다. 즉 웹 기반으로 만드는 방법을 설명한 영상이다. 이 영상을 보고, 그러면 Android에서 Compose를 통해 한 번 만들어보자 하고 도전해보았다. pointerInteropFilter 아마 가장 필요한 Modifier함수라고 생각한다. 사용자가 터치를 하였을 때 해당 위치를 어떻게 인식하느냐에서 해당 위치 알 수 있도록 터치 이벤트를 다룰 수 있게 해준다. 오늘 사용할 터치 이벤트는 크게 ..
Scroll Fade-InOut animation Scroll을 할 때, 각 item요소가 fade-in/out되면서 해당 위치로 이동하는 기능 구현을 해보았습니다. 미리보기 구현 구현 방법 LazyColumn을 이용하여 열을 생성하고, 사용자가 스크롤하여 화면에 아이템이 보이게 되면, LaunchedEffect를 통해 alpha값을 변경하여 투명도 효과를 적용한다. 코드 class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { FadeinscrollTheme { // A surface container u..
지난 포스팅에 이어서 개발을 진행하겠습니다. 아이콘 적용 기존에 텍스트 B가 적용되어 있는 스와이핑 버튼을 아이콘으로 변경하도록 하겠습니다. Icon(Icons.Outlined.KeyboardArrowRight, "", tint = Color.White, modifier = Modifier.align( Alignment.Center )) 기존의 Text를 Icon으로 바꾸어주었습니다. 드래그가 완료가 되면 배경색을 바꾸기 드래그가 완료가 되면, 기존의 배경색을 바꾸도록 하겠습니다. 기존의 노랑으로 적용되어 있던 배경색을 Gary -> LightGray로 변경되게끔 바꾸어보도록 하겠습니다. 드래그가 중간 이상에 도착을 했을 때 색상을 LightGray로 바뀌도록 하기 위해, animateColorAsSta..
Slide-Unlock 기능이 무엇인가? 요즘 잠금 해제 기능은 다들 지문 인식 또는 페이스 아이디를 통해 잠금 해제를 하는데, 몇 년 전에는 밀어서 잠금 해제를 많이 쓰곤 했다. 대충 이런 느낌인데, 최근에 AnchoredDraggable에 대해 학습한 김에, 다음 기능을 구현해보고자 한다. 오늘의 완성본 구현 enum class 가장 먼저 상태를 표현할 enum class를 생각해보자. 잠금 해제의 상태는 처음 - 끝 으로 표현이 가능하다. enum class Position{ Start,End } state 구현 다음은 가장 중요하다고 생각하는 컴포저블의 드래그 상태를 저장하는 state의 구현이다. val state = remember { AnchoredDraggableState( initialV..
반짝임 애니메이션 앱을 사용하다보면, 화면이 로딩되는 과정에서 이미지나, 텍스트가 보여지는 공간에 반짝임 애니메이션이 보이며 로딩중이라는 느낌을 주는 경우가 많다. 과연 이런건 어떻게 구현할까? 반짝임 애니메이션 만들기 확장 함수 만들기 Modifier클래스의 확장 함수를 만들어 반짝임 이미지를 생성하도록 하겠습니다. Modifier의 확장 함수를 만들기 위해, 다음과 같이 작성해줍니다. fun Modifier.shimmerEffect(): Modifier = composed { } 함수 내부의 값은 가장 먼저 상태 값을 저장할 변수를 정의해줍니다. var size by remember { mutableStateOf(IntSize.Zero) } val transition = rememberInfinit..
본 게시글은 '헤드퍼스트-디자인 패턴 (개정판)'을 기준으로 작성된 글입니다. 옵저버 패턴이란? 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체에게 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다 의존성을 정의한다. 간단하게 말하면, 신문사와 구독자가 있을 때, 신문사를 주제 / 구독자를 옵저버라고 부른다. 주제 객체는 주제에서 중요한 데이터를 관리하고, 옵저버 객체의 경우에는 주제를 구독하며, 주제의 데이터가 바뀔 때 마다 갱신 내용을 전달 받는다. 핵심은 1대다 이다. 어떤 객체가 변화할 때 이와 연관된 여러 객체에게 직접 통보하지 않고, 중간 관리자(옵저버)를 두어 변화의 감지와 통보를 대신하게 한다 옵저버 패턴은 다양한 방식으로 구현할 수 있다. 보통은 주제 인터페이스와 옵저버 인터페..